Build Log
Arcade Cartridge Grammar — from shells to primitives to a playable prototype
July 16, 2026
Designed a generative game grammar for Arcade, pressure-tested it through the Crucible, and proved the first primitive set with a real playable game — Solar Drift, tuned live against Zeb's feedback.
Timeline
What shipped
ignition.md §4 DEPLOY PATH synced to all 9 actual npm run deploy:* scripts
Anvil + Strike logged for the shells-vs-primitives and description-vs-execution-language reframes
experiments/arcade/docs/cartridge-grammar-draft.md — v3 GameCartridge grammar (primitive vocabulary, TypeScript schema, 5 example cartridges, diversity audit, Crucible synthesis)
experiments/arcade/lib/cartridge/types.ts — GameCartridge TypeScript types matching the v3 schema
experiments/arcade/lib/cartridge/runtime.ts — minimal generic interpreter (entities, orbit/linear behaviors, flick control, collision/threshold/timer interactions, lose-life/end-round/apply-modifier effects)
experiments/arcade/lib/cartridge/cartridges/solar-drift.ts — hand-authored, live-tuned cartridge data (not hand-coded game logic)
experiments/arcade/app/cartridge-lab/page.tsx — standalone proving-ground route (not yet in the game registry), canvas render + pointer input wired to the runtime
“How do we get to runtime/renderer with any confidence until I play the actual game?”