- mrpgi-core: ureq/tiny_http/threads are native-only deps; the AI lane
compiles to an always-off stub on wasm32 (deterministic parser stays).
- World::from_memory + assets::cel_from_bytes — boot a game with no
filesystem.
- mrpgi GUI on wasm: embeds games/lost-fuse via include_dir, boots
straight into Play (Tab still opens the editor; saving needs a disk,
so web is play + paint-only for now).
- web/: index.html shell + macroquad JS loader + build.sh producing a
self-contained static web/dist (1.1 MB total, game included).
- .cargo/config.toml: --allow-undefined for miniquad's JS imports.
Verified in-browser: renders, typed commands reach the parser,
click-to-walk works, zero console errors.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The handover plan (docs/HANDOVER.md), P0-P6, in one pass. One insight
powers it: CLI/HTTP/MCP/Python is one feature, not four — a headless
core driven by Commands in, Events out, with every surface a thin
adapter.
- mrpgi-core: the whole sim as a library with zero macroquad (the
workspace boundary is the guardrail). GameState::apply/tick, fixed
1/20s cycles, deterministic replays, headless RGBA/PNG rendering.
- mrpgi-headless: JSONL stdio REPL, --script replay (AI lane off =
byte-identical), --render-room PNG, --serve HTTP (state/command/
events cursor/frame.png), --mcp JSON-RPC stdio server whose
render_frame returns a real PNG so a model sees its own moves.
- Games are folders: game.json manifest (all fields default — legacy
dirs still load), data-driven verb table feeding both the parser and
the AI whitelist, flags with requires_flag/sets_flag gating on
objects and dialogue choices, live UpsertRoom lore ingestion with
validation.
- mrpgi (GUI): now one consumer of the bus; editor commits through the
same commands MCP uses; audio became core events with per-game
sfx/ music/ file overrides beating the chiptune synth.
- Tests: parser goldens + a full win-path playthrough asserting
byte-identical transcripts across runs.
Deleted: the old fused src/ (root is now a virtual workspace), the
dead demo Scene/Assets path.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>