--- id: kw-public name: public category: structure kind: keyword tokens: public sig: scene Name start public { … } tip: Expose a declaration's lifecycle on the public event bus. order: 11 --- public marks a scene, layer, or event as part of the game's public surface, so its lifecycle is emitted as named events other systems and mods can react to with @On. A public scene fires scene_<Name>_enter and scene_<Name>_exit; a public layer fires layer_<Name>_show / _hide. It is the declaration-level counterpart to the @Public annotation that promotes a model or handler's lifecycle hooks. Keep it off by default and add it only where the modding surface genuinely needs the hook. ```ludic program Flow { @On(scene_Menu_enter) handler Greet { print(1) } scene Menu start public { on enter { print(10) } # entering Menu prints 10, then fires scene_Menu_enter on exit { print(20) } } } ```