Files
settled-reach/content/_meta
jpmschweitzerandClaude Opus 4.6 56ed2c8810 fix(content): PR #59 review — stale moods, orphaned IDs, tenure, fact_id
Address review comments from Hoshe, Paula, and Miri:
- Update mood vocabulary in 3 docs (line-pool-format.md §6.5,
  style-guide §11, content-directory-structure.md Appendix B) from
  pre-Sprint 14 values to current D-035 enum
- Fix worked example IDs in line-pool-format.md §3.5 to match
  actual the-last-shift kael-davan sequence (_015, _024, _026)
- Fix Section 5.1 restart note to describe multi-location continuity
- Fix style-guide §16 worked example: dock-worker_d_071 → kael-davan_d_076
- Fix stale mood reference in style-guide §16 Step 3
- Fix orphaned the-terminal_d_040 in maintenance-tech.yaml comment
- Fix orphaned the-terminal_d_008/018 in smuggler-inventory.yaml
- Fix Lera tenure: twelve → eighteen years (bar-owner_d_018)
- Fix fact_id: location.surveillance_gaps → investigation.surveillance_gaps
  in ring-operative.yaml (2 occurrences)
- Fix NPC name: Lera Osk → Lera Sessik in bar-owner.yaml comment
- Fix mood line format example in style-guide §5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 22:35:12 +01:00
..

Content Infrastructure

Directories prefixed with _ are infrastructure, not game content. The server content loader skips directories starting with _ when scanning for content files.

  • _meta/ — Infrastructure metadata (this directory)
  • _schema/ — JSON Schema validation files (draft 2020-12)

Directory Hierarchy

Content is organized hierarchically to match the game universe:

content/
  content.yaml              # Manifest: campaign list, glob discovery patterns
  global/                   # Cross-campaign shared content (factions, enums, knowledge)
  campaigns/
    {campaign}/             # e.g., "main"
      campaign.yaml
      systems/
        {system}/           # e.g., "krenn"
          system.yaml
          stations/
            {station}/      # e.g., "sova"
              station.yaml
              districts/
                {district}/ # e.g., "transit"
                  district.yaml
                  npcs/
                  locations/
                  triangles/
                  dialogue/
                  monologue/
                  routines/
                  templates/

Canonical ID Derivation

Identity is derived from directory path at load time — no redundant ID fields in YAML.

  • District: {system}.{station}.{district} (e.g., krenn.sova.transit)
  • NPC (within district): npc:{slug} (e.g., npc:kael-davan)
  • NPC (cross-district): npc:{district}.{slug} (e.g., npc:transit.kael-davan)
  • Location: {system}.{station}.{district}.location.{slug}

Content Discovery

The loader reads content.yaml for enabled campaigns and their glob patterns. District discovery uses systems/**/districts/*/district.yaml — no per-district manifest entry needed. Adding a district = creating a directory with district.yaml.