@startuml titlescreen onScreenChange event !theme materia-outline skinparam DefaultFontName Courier skinparam Shadowing false participant usc participant "titlescreen.lua" as main collections screens collections pages activate main activate screens activate pages hnote across Screen loaded and page displayed endhnote pages -> screens : change screen event\n(eg. goes out of scope) deactivate pages screens --> main : onDeactivation(obj) deactivate screens main -> main : handle replacing screen\nby inspecting `obj` main -> screens : call current screen's init() activate screens screens -> usc : set current screen as last screen value screens -> pages : init() activate pages @enduml