Interactive screen surfaces fire interaction.hooks with action payloads.
"interaction": {
"hooks": {
"on_click": "close",
"on_hover_enter": { "type": "ui_sfx", "name": "hover" }
}
}
| Payload | Example |
| Verb string | "close", "new_game", "screen:settings" |
| Command object | { "type": "set_flag", "values": { "seen": true } } |
| Array | [ "close", { "type": "app_action", "name": "resume" } ] |
| Form | Examples |
| String verb | "close", "start", "continue", "save", "load", "save_slot:1", "load_slot:1", "new_game", "new_game:ep2" (early multi-story), "quit", "title", "screen:save", "screen:load", "screen:pause", "cursor:push:inspect", "url:https://…" |
| Command object | set_flag, app_action, ui_sfx, ui_transition, jump, ui_advance, cursor, ui_animate |
| Array | Mix of the above |
| Surface | Events |
| Background | on_click |
| Buttons / chrome | on_click, on_focus, on_blur, on_hover_enter / exit, on_show, on_hide |
| Slider / toggle | on_change, on_commit, focus/hover/show/hide |
| Sprites | click / hover / focus / show / hide |
hooks_override with null removes an inherited event. Shape: Interaction hooks. Concept: Buttons and actions.