ejlewis
bbea3f4473
feat(mystery): migration script and produced markdown content
...
Adds scripts/migrate-mystery-content.ts which reads rooms, items,
encounters, and endings from TypeScript source and emits byte-identical
markdown files under src/mystery/world/{rooms,items,encounters,endings}/.
Installs tsx as a devDep to support .ts imports across src/ during the
one-shot run.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 09:26:02 -05:00
ejlewis
d3a2f4e1d7
feat(mystery): narration() helper and encounter narration registry
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 09:23:37 -05:00
ejlewis
bf8a693949
feat(mystery): parseEncounterNarration — phase and transition prose
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 09:21:29 -05:00
ejlewis
e60844a937
feat(mystery): parseEnding — markdown to typed Ending
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 09:17:11 -05:00
ejlewis
e108ca16e0
feat(mystery): parseItem — markdown to typed Item
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 09:13:51 -05:00
ejlewis
cf257c040a
fix(mystery): handle aliased wikilinks; symmetric locked-exit validation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 09:09:38 -05:00
ejlewis
5f3356ffb5
feat(mystery): parseRoom — markdown to typed Room
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 09:00:35 -05:00
ejlewis
da7b6fac83
feat(mystery): add Zod schemas for markdown frontmatter
...
Defines runtime validation schemas (roomFrontmatterSchema,
itemFrontmatterSchema, endingFrontmatterSchema, encounterFrontmatterSchema)
and their inferred TypeScript types. All 8 TDD tests pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 08:56:44 -05:00
ejlewis
d8c9b44058
feat(mystery): sample 3-room world for engine validation
2026-05-08 23:26:45 -05:00
ejlewis
7ee5cf96f6
feat(mystery): define engine and world type contracts
2026-05-08 22:31:36 -05:00