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>
This commit is contained in:
26
content/origins/README.md
Normal file
26
content/origins/README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# /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`](../../docs) (design under
|
||||
[`/docs/superpowers/specs`](../../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`.
|
||||
Reference in New Issue
Block a user