Files
code_of_conquest_dnd/content/origins
Phillip Tarrant a9d9eedb7e feat(currency): copper/silver/gold replace the coin
The three denominations are move tokens, not stored buckets — there is one
integer, so change-making never arises. The deserter is down to 47c: under a
silver, so he cannot cover a bed and the player sees it on turn one.

A parity test guards the code-side ratios against the content-side ids.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QYa9u7Kdxv5gX4AnwWexy8
2026-07-12 18:36:08 -05:00
..

/content/origins — starting-state seeds

Thin authored files, one per starting point. An origin is an initial-state overlay on the static shared world (/content/world): where the player begins, the opening situation, and seeds for dispositions, inventory, starting quest, and character-creation constraints. Values and id references — never maps or personas.

At new-game the player picks an origin; code constructs the runtime canon log from origin + world content + character creation. See the spec in /docs/canon-log.md (design under /docs/superpowers/specs).

Scope (§17)

Schema supports N origins; the POC authors one. One world, one map, fixed NPCs — origins change only the player's starting point and situation. More replayability, flat authoring cost.

Fields (summary)

id · display_name · description · start_location_id · situation[] · opening_facts[] · disposition_overrides{} · inventory_grants[] · start_quest_id · build_constraints{}

humiliations are never seeded — they are earned in play (§7/§9). Validated against origin.schema.json; every id must resolve in /content/world.