Point --game at a directory that is not itself a game but contains game
folders, and the GUI boots into a title screen: the collection's name in
gold (optional collection.json {"name": ...}, else the folder name), a
shelf of games sorted by folder with display names from each game.json,
a dimmed live preview of the selected game's start room baked by the
headless renderer, arrow-key selection, Enter to play, and Esc from
inside a game returning to the shelf instead of the desktop.
Shelf names strip a shared "Series — " prefix when every game has one —
the collection title already names the series, and it also sidesteps the
em-dash glyph missing from macroquad's default font.
Core grows world::is_game_dir / scan_collection / collection_name with a
unit test; the GUI grows Mode::Title. --shot pointed at a collection
captures the title screen (that is how the screenshots in this commit's
review were taken). Sample/kit scaffolding is skipped for collection
dirs so a shelf never gets a stray sprites/ folder written into it.
Closes the "title screen / world picker" roadmap item in MANUAL §20.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- MANUAL.md brought up to the workspace era: game folders + manifest,
flags & gated puzzles, hidden dialogue choices, audio file
overrides, a Programmatic control section (CLI/HTTP/MCP/Python),
and the new two-crate architecture map.
- games/lost-fuse: three rooms that demonstrate every mechanic in one
chain — item, needs-lock, object sets_flag, a dialogue choice hidden
behind requires_flag, dialogue sets_flag, and a flag-locked wins
finale. Verified winnable headlessly, gate included.
- games/lost-fuse/expansion/roof.jsonl: a live lore drop that upserts
a fourth room into a running game and rewires an exit — the "drop
JSON lore in" workflow, runnable as a one-liner.
- games/README.md: the guided tour — mechanic-to-JSON map, the live
expansion demo, and how to prompt an LLM (or point Claude's MCP at
the engine) to write valid lore.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>