Files
settled-reach/content/_meta
jpmschweitzerandClaude Opus 4.6 e8263e209e refactor(data): rename Krenn to Van Maanen's Star
System S-057 assigned to real star GJ 35 (Van Maanen's Star, DG white
dwarf at 13.9 ly). Renamed across all content, server code, docs,
decisions, wiki lore, and config files. 224 files updated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 00:23:26 +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., "van-maanens-star"
          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., van-maanens-star.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.