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>
51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
# 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.
|