@startuml titlescreen startup skinparam DefaultFontName Courier skinparam Shadowing false participant usc participant "titlescreen.lua" as main participant pageview collections pages usc -> main : load titlescreen.lua activate main group construct screens main -> pageview : create main -> pageview : set callbacks main -> pages : create main -> pages : set callbacks main -> usc : get persistent states main <-- usc end main -> usc : get last screen value main <-- usc main -> main : set last screen value as current screen main -> pageview : set current screen as rootPage pageview --> main : onNavigated() event activate main main -> usc : set current screen as last screen value deactivate main main -> pages : init() activate pages pages --> main : onInit() event fired activate main deactivate main loop main render loop main -> pageview : render() pageview -> pages : render() activate pages deactivate pages end @enduml