Files
Phillip Tarrant 800811dac2 docs: canon log schema + origin seed design
Design spec for the §11 canon log, plus origin seeds as thin initial-state
overlays over a single static world. Three layers (world content / origin seed /
runtime canon log), the in/out boundary (numeric Luck never enters the AI
payload, §7), field-level schemas, new-game construction order, turn-to-turn
maintenance, and JSON storage validated on both client and api.

Folds content/npcs and content/quests under content/world/; adds
content/world/{locations,items} and content/origins. fallback/ kept outside
world/ (authored prose, not id-referenced).

Spec: docs/superpowers/specs/2026-07-09-canon-log-schema-design.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 12:03:37 -05:00

1.2 KiB

/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.