feat(docs): restructure wiki taxonomy with templates and Krenn System entry (#301, #319)

Move wiki from docs/wiki/ to root wiki/. Add 14 category templates with
YAML frontmatter, governance model, hierarchical spatial structure
(system > station > district > location). Populate Krenn System entry
as first concrete star system. Update cross-references in workshop and
sprint docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-13 00:58:45 +01:00
co-authored by Claude Opus 4.6
parent baa348a70a
commit b672b9c269
82 changed files with 2600 additions and 221 deletions
+12 -12
View File
@@ -18,7 +18,7 @@ This document defines:
- Canonical ID format and naming conventions - Canonical ID format and naming conventions
- Schema file inventory and purpose - Schema file inventory and purpose
- Validation pipeline (3-tier) - Validation pipeline (3-tier)
- Migration path from the current wiki (`docs/wiki/`) - Migration path from the current wiki (`wiki/`)
The directory structure is designed so that a district is the atomic content pack unit. Districts can be added, removed, or replaced independently. The structure supports future mod overlay without v0.1 implementation. The directory structure is designed so that a district is the atomic content pack unit. Districts can be added, removed, or replaced independently. The structure supports future mod overlay without v0.1 implementation.
@@ -422,10 +422,10 @@ Load-time validation runs in sequence:
### Current State ### Current State
Game content currently lives in `docs/wiki/`, organized as human-readable Markdown files: Game content currently lives in `wiki/`, organized as human-readable Markdown files:
``` ```
docs/wiki/ wiki/
npcs/ # NPC profile pages (Markdown) npcs/ # NPC profile pages (Markdown)
factions/ # Faction descriptions factions/ # Faction descriptions
knowledge/ # FactId catalog, entity attributes knowledge/ # FactId catalog, entity attributes
@@ -439,11 +439,11 @@ docs/wiki/
### Migration Strategy ### Migration Strategy
The wiki (`docs/wiki/`) remains the authoring source during v0.1. Authors write and edit in the wiki. The `content/` directory is the runtime format — what the server loads. The wiki (`wiki/`) remains the authoring source during v0.1. Authors write and edit in the wiki. The `content/` directory is the runtime format — what the server loads.
The conversion from wiki Markdown to runtime YAML is a **manual process** during v0.1, tracked as ticket #398 (future). The process: The conversion from wiki Markdown to runtime YAML is a **manual process** during v0.1, tracked as ticket #398 (future). The process:
1. Author writes/edits NPC profile in `docs/wiki/npcs/kael-davan.md`. 1. Author writes/edits NPC profile in `wiki/npcs/kael-davan.md`.
2. Author (or tooling) converts the profile to `content/districts/sova-transit/npcs/kael-davan.yaml`, conforming to `_schema/npc-profile.schema.json`. 2. Author (or tooling) converts the profile to `content/districts/sova-transit/npcs/kael-davan.yaml`, conforming to `_schema/npc-profile.schema.json`.
3. `make validate-content` confirms the YAML is valid. 3. `make validate-content` confirms the YAML is valid.
4. Server loads from `content/`. 4. Server loads from `content/`.
@@ -452,13 +452,13 @@ The conversion from wiki Markdown to runtime YAML is a **manual process** during
| Wiki Source | Content Target | Notes | | Wiki Source | Content Target | Notes |
|---|---|---| |---|---|---|
| `docs/wiki/npcs/*.md` | `content/districts/sova-transit/npcs/*.yaml` | One-to-one mapping. Wiki profile is the human-readable source; YAML is the machine-readable runtime format. | | `wiki/npcs/*.md` | `content/districts/sova-transit/npcs/*.yaml` | One-to-one mapping. Wiki profile is the human-readable source; YAML is the machine-readable runtime format. |
| `docs/wiki/factions/*.md` | `content/global/factions/*.yaml` | Faction profiles converted to structured YAML. | | `wiki/factions/*.md` | `content/global/factions/*.yaml` | Faction profiles converted to structured YAML. |
| `docs/wiki/knowledge/fact-catalog.md` | `content/global/knowledge/*.yaml` | Single Markdown catalog splits into per-category YAML files. | | `wiki/knowledge/fact-catalog.md` | `content/global/knowledge/*.yaml` | Single Markdown catalog splits into per-category YAML files. |
| `docs/wiki/knowledge/entity-attributes.md` | `content/global/knowledge/entity-attributes.yaml` | EntityKnowledge key definitions. | | `wiki/knowledge/entity-attributes.md` | `content/global/knowledge/entity-attributes.yaml` | EntityKnowledge key definitions. |
| `docs/wiki/contraband/*.md` | `content/global/contraband/*.yaml` | Contraband item profiles. | | `wiki/contraband/*.md` | `content/global/contraband/*.yaml` | Contraband item profiles. |
| `docs/wiki/locations/*.md` | `content/districts/sova-transit/locations/*.yaml` | Location metadata extracted from descriptions. | | `wiki/locations/*.md` | `content/districts/sova-transit/locations/*.yaml` | Location metadata extracted from descriptions. |
| `docs/wiki/world/*.md` | `content/global/regions/*.yaml` | System/station metadata. | | `wiki/world/*.md` | `content/global/regions/*.yaml` | System/station metadata. |
| (new content) | `content/districts/sova-transit/dialogue/**/*.yaml` | Dialogue pools are new content authored directly in YAML. No wiki source. | | (new content) | `content/districts/sova-transit/dialogue/**/*.yaml` | Dialogue pools are new content authored directly in YAML. No wiki source. |
| (new content) | `content/districts/sova-transit/monologue/**/*.yaml` | Monologue pools are new content authored directly in YAML. No wiki source. | | (new content) | `content/districts/sova-transit/monologue/**/*.yaml` | Monologue pools are new content authored directly in YAML. No wiki source. |
| (new content) | `content/districts/sova-transit/routines/*.yaml` | Routine schedules are new content authored directly in YAML. No wiki source. | | (new content) | `content/districts/sova-transit/routines/*.yaml` | Routine schedules are new content authored directly in YAML. No wiki source. |
+1 -1
View File
@@ -626,7 +626,7 @@ In a world where everyone is hiding something, the one person who isn't becomes
**End Pattern Specification.** **End Pattern Specification.**
**Files referenced:** **Files referenced:**
- `/var/home/jeroenschweitzer/Projects/settled-reach/copy/docs/wiki/npcs/naia-tamm.md` — Reference implementation - `/var/home/jeroenschweitzer/Projects/settled-reach/copy/wiki/npcs/naia-tamm.md` — Reference implementation
- `/var/home/jeroenschweitzer/Projects/settled-reach/copy/decisions/content.md` — D-024 (10-axis model), D-028 (dialogue architecture), D-029 (entanglement ratio), D-032 (separate monologue pools), D-034 (THE FRIEND pattern), D-035 (tag taxonomy) - `/var/home/jeroenschweitzer/Projects/settled-reach/copy/decisions/content.md` — D-024 (10-axis model), D-028 (dialogue architecture), D-029 (entanglement ratio), D-032 (separate monologue pools), D-034 (THE FRIEND pattern), D-035 (tag taxonomy)
- `/var/home/jeroenschweitzer/Projects/settled-reach/copy/docs/workshops/v01-content-scoping/round2-gestalt.md` — Pattern definitions and NPC mapping - `/var/home/jeroenschweitzer/Projects/settled-reach/copy/docs/workshops/v01-content-scoping/round2-gestalt.md` — Pattern definitions and NPC mapping
- `/var/home/jeroenschweitzer/Projects/settled-reach/copy/docs/workshops/v01-gap-analysis/round2-gestalt.md` — Unified observation system, character identity integration - `/var/home/jeroenschweitzer/Projects/settled-reach/copy/docs/workshops/v01-gap-analysis/round2-gestalt.md` — Unified observation system, character identity integration
+1 -1
View File
@@ -570,7 +570,7 @@ The smuggler can approach and talk to the detective-NPC. The detective-NPC respo
## Appendix B: EntityKnowledge Key Reference ## Appendix B: EntityKnowledge Key Reference
The 16 canonical keys used throughout this document (from `docs/wiki/knowledge/entity-attributes.md`): The 16 canonical keys used throughout this document (from `wiki/knowledge/entity-attributes.md`):
| Category | Keys | | Category | Keys |
|----------|------| |----------|------|
+5 -5
View File
@@ -59,7 +59,7 @@ This ticket is HIGH PRIORITY and blocks server work. Complete early in sprint.
Add 4 new role-perspective keys to entity-attributes.md: `risk_assessment`, `loyalty_assessment`, `position_integrity`, `moral_weight`. Rename `secret_held``leverage_held` (broader scope: secrets, debts, promises, obligations). Rename `secret_confidence``leverage_confidence`. Update `trust_level` description to absorb trust_read scope. All keys are observer→target relationships. Total after update: 16 canonical keys. Add 4 new role-perspective keys to entity-attributes.md: `risk_assessment`, `loyalty_assessment`, `position_integrity`, `moral_weight`. Rename `secret_held``leverage_held` (broader scope: secrets, debts, promises, obligations). Rename `secret_confidence``leverage_confidence`. Update `trust_level` description to absorb trust_read scope. All keys are observer→target relationships. Total after update: 16 canonical keys.
**Files:** `docs/wiki/entity-attributes.md` **Files:** `wiki/entity-attributes.md`
**#380 (THE MIRROR pattern spec):** **#380 (THE MIRROR pattern spec):**
@@ -91,13 +91,13 @@ Add smuggler decision fork to Triangle 1 (Hub Power): side with Nils (louder sig
**Blocked by #376** (Nils Davan stub profile — currently referenced in 5+ NPC profiles but has no wiki page). **Blocked by #376** (Nils Davan stub profile — currently referenced in 5+ NPC profiles but has no wiki page).
**Files:** `docs/wiki/triangles/triangle-1-hub-power.md` **Files:** `wiki/triangles/triangle-1-hub-power.md`
**#396 (Apply Round 2 NPC pattern/motivation mapping):** **#396 (Apply Round 2 NPC pattern/motivation mapping):**
Apply the Round 2 finalized NPC pattern/motivation mapping (Gestalt-Paula synthesis from workshop) to wiki and content files. 17 NPCs × (pattern + motivation). Includes Harek structural role formalization (Paula Gap 7 resolution). Apply the Round 2 finalized NPC pattern/motivation mapping (Gestalt-Paula synthesis from workshop) to wiki and content files. 17 NPCs × (pattern + motivation). Includes Harek structural role formalization (Paula Gap 7 resolution).
**Files:** All NPC wiki pages in `docs/wiki/npcs/` **Files:** All NPC wiki pages in `wiki/npcs/`
**#397 (Drin Tier 2 expansion):** **#397 (Drin Tier 2 expansion):**
@@ -105,7 +105,7 @@ Drin confirmed promoted to Tier 2 (A-01 consensus). Expand wiki profile to full
**Blocked by #396** (pattern/motivation must be applied first). **Blocked by #396** (pattern/motivation must be applied first).
**Files:** `docs/wiki/npcs/drin-rosta.md` **Files:** `wiki/npcs/drin-rosta.md`
### Specifications and Documentation ### Specifications and Documentation
@@ -145,7 +145,7 @@ Fix hub_m_ → terminal_m_ inconsistency in monologue-guide.md. Canonical shortc
Minimal off-stage profile: Core Identity, relationship to Kael (siblings), role in ring (upstream pressure), known attributes by other NPCs. Referenced in 5+ NPC profiles but has no wiki page. Minimal off-stage profile: Core Identity, relationship to Kael (siblings), role in ring (upstream pressure), known attributes by other NPCs. Referenced in 5+ NPC profiles but has no wiki page.
**Files:** `docs/wiki/npcs/nils-davan.md` (new, stub) **Files:** `wiki/npcs/nils-davan.md` (new, stub)
## Dependency Chain ## Dependency Chain
@@ -10,21 +10,21 @@
| # | File | Change Type | Details | | # | File | Change Type | Details |
|---|------|-------------|---------| |---|------|-------------|---------|
| 1 | `docs/wiki/npcs/hael.md` | **Rename + rewrite** | File becomes `docs/wiki/npcs/naia-tamm.md`. All internal references change. Header becomes "Naia Tamm — THE MIRROR". Pattern assignment changes from implicit to explicit MIRROR. | | 1 | `wiki/npcs/hael.md` | **Rename + rewrite** | File becomes `wiki/npcs/naia-tamm.md`. All internal references change. Header becomes "Naia Tamm — THE MIRROR". Pattern assignment changes from implicit to explicit MIRROR. |
| 2 | `docs/wiki/npcs/index.md` | Content update | Roster table row 9: "Hael" → "Naia Tamm". Triangle 4 diagram: all 3 "Hael" labels. Bridge NPCs table: not listed (Naia isn't a bridge NPC). Social site listing for The Last Shift: "Hael (Teacher)" → "Naia Tamm (Teacher)". | | 2 | `wiki/npcs/index.md` | Content update | Roster table row 9: "Hael" → "Naia Tamm". Triangle 4 diagram: all 3 "Hael" labels. Bridge NPCs table: not listed (Naia isn't a bridge NPC). Social site listing for The Last Shift: "Hael (Teacher)" → "Naia Tamm (Teacher)". |
| 3 | `docs/wiki/index.md` | Content update | NPC listing under Tier 2: `[Hael](npcs/hael.md) — Kael's partner``[Naia Tamm](npcs/naia-tamm.md) — Kael's partner`. | | 3 | `wiki/index.md` | Content update | NPC listing under Tier 2: `[Hael](npcs/hael.md) — Kael's partner``[Naia Tamm](npcs/naia-tamm.md) — Kael's partner`. |
| 4 | `docs/wiki/npcs/kael-davan.md` | Content update | **Heaviest single file.** 20+ occurrences. Axis 1 secondary Want, Axis 2 (deep secret), Relationship 2 (full section), Axis 4 tolerance, Axis 5 routine, Axis 6 information inventory, Axis 7 contentment, Voice sample (Mood: Protective), Dual-lens smuggler notes, Triangle 4 role notes, Secret section, Contradiction arc Phase 1 through 5, Authoring notes. Every "Hael" → "Naia" in dialogue/casual references (Krenn first-name-primary convention). Every "Hael" → "Naia Tamm" in formal/profile references. | | 4 | `wiki/npcs/kael-davan.md` | Content update | **Heaviest single file.** 20+ occurrences. Axis 1 secondary Want, Axis 2 (deep secret), Relationship 2 (full section), Axis 4 tolerance, Axis 5 routine, Axis 6 information inventory, Axis 7 contentment, Voice sample (Mood: Protective), Dual-lens smuggler notes, Triangle 4 role notes, Secret section, Contradiction arc Phase 1 through 5, Authoring notes. Every "Hael" → "Naia" in dialogue/casual references (Krenn first-name-primary convention). Every "Hael" → "Naia Tamm" in formal/profile references. |
| 5 | `docs/wiki/npcs/sera-venn.md` | Content update | ~15 occurrences. Relationship 2 (full section), Axis 4 tolerance, Axis 5 routine, Axis 6 information inventory, Axis 7 contentment, Tell system, Voice sample, Dual-lens notes, Triangle 4 role notes, Secret section, Contradiction arc, Authoring notes. Same casual/formal distinction as Kael's file. | | 5 | `wiki/npcs/sera-venn.md` | Content update | ~15 occurrences. Relationship 2 (full section), Axis 4 tolerance, Axis 5 routine, Axis 6 information inventory, Axis 7 contentment, Tell system, Voice sample, Dual-lens notes, Triangle 4 role notes, Secret section, Contradiction arc, Authoring notes. Same casual/formal distinction as Kael's file. |
| 6 | `docs/wiki/npcs/lera-sessik.md` | Content update | Axis 6 information inventory: "Hael's worry about Kael" → "Naia Tamm's worry about Kael". | | 6 | `wiki/npcs/lera-sessik.md` | Content update | Axis 6 information inventory: "Hael's worry about Kael" → "Naia Tamm's worry about Kael". |
| 7 | `docs/wiki/npcs/maret-korr.md` | Content update | Axis 5 routine: "goes for Hael's company sometimes" → "goes for Naia's company sometimes". | | 7 | `wiki/npcs/maret-korr.md` | Content update | Axis 5 routine: "goes for Hael's company sometimes" → "goes for Naia's company sometimes". |
| 8 | `docs/wiki/authoring/monologue-guide.md` | Content update | Any monologue examples referencing Hael. | | 8 | `wiki/authoring/monologue-guide.md` | Content update | Any monologue examples referencing Hael. |
| 9 | `docs/wiki/locations/krenn-system/the-last-shift.md` | Content update | NPC presence list, social dynamics references. | | 9 | `wiki/locations/krenn-system/the-last-shift.md` | Content update | NPC presence list, social dynamics references. |
| 10 | `docs/wiki/world/sova-transit-district.md` | Content update | Any district NPC references. | | 10 | `wiki/world/sova-transit-district.md` | Content update | Any district NPC references. |
| 11 | `docs/wiki/factions/the-ring.md` | Content update | Likely references Hael as collateral/vulnerability for Kael. | | 11 | `wiki/factions/the-ring.md` | Content update | Likely references Hael as collateral/vulnerability for Kael. |
| 12 | `docs/wiki/knowledge/relationship-states.md` | Content update | Any example entries using Hael as a relationship target. | | 12 | `wiki/knowledge/relationship-states.md` | Content update | Any example entries using Hael as a relationship target. |
| 13 | `docs/wiki/knowledge/entity-attributes.md` | Content update | Scan for Hael in example EntityKnowledge entries. | | 13 | `wiki/knowledge/entity-attributes.md` | Content update | Scan for Hael in example EntityKnowledge entries. |
| 14 | `docs/wiki/knowledge/fact-catalog.md` | Content update | FactId entries referencing Hael (e.g., `npc.hael.worry`, `relationship.kael.hael`). IDs change to `npc.naia_tamm.*` and `relationship.kael.naia_tamm`. | | 14 | `wiki/knowledge/fact-catalog.md` | Content update | FactId entries referencing Hael (e.g., `npc.hael.worry`, `relationship.kael.hael`). IDs change to `npc.naia_tamm.*` and `relationship.kael.naia_tamm`. |
| 15 | `docs/wiki/world/krenn-system.md` | Content update | NPC naming examples list. | | 15 | `wiki/world/krenn-system.md` | Content update | NPC naming examples list. |
| 16 | `decisions/content.md` | Content update | D-034 references Hael twice (Kael's partner, Triangle 4). D-036 references Hael in the naming examples list. | | 16 | `decisions/content.md` | Content update | D-034 references Hael twice (Kael's partner, Triangle 4). D-036 references Hael in the naming examples list. |
#### Naming convention for the rename #### Naming convention for the rename
@@ -360,7 +360,7 @@ These are load-bearing for the dual-lens experience. The smuggler player should
#### Gap 2: Monologue Content Pool — Zero Authored Lines #### Gap 2: Monologue Content Pool — Zero Authored Lines
The wiki profiles contain example monologue lines (embedded in contradiction arc descriptions), but there is no monologue content file. The authoring guide (`docs/wiki/authoring/monologue-guide.md`) defines the format, but no actual pool exists. Mellanie needs a minimum viable pool before the monologue system can be tested. The wiki profiles contain example monologue lines (embedded in contradiction arc descriptions), but there is no monologue content file. The authoring guide (`wiki/authoring/monologue-guide.md`) defines the format, but no actual pool exists. Mellanie needs a minimum viable pool before the monologue system can be tested.
**Blocks:** Monologue system integration testing, client UI monologue display. **Blocks:** Monologue system integration testing, client UI monologue display.
@@ -382,7 +382,7 @@ Triangle 1's fork is designed above (1c). But Triangles 2-5 also need player dec
#### Gap 5: FactId Catalog — Smuggler Path Entries Sparse #### Gap 5: FactId Catalog — Smuggler Path Entries Sparse
The fact catalog (`docs/wiki/knowledge/fact-catalog.md`) likely has detective-oriented entries (manifest discrepancies, behavioral observations). Smuggler-path FactIds need equivalent coverage: operational facts (who handles what), risk assessments, loyalty intelligence. The fact catalog (`wiki/knowledge/fact-catalog.md`) likely has detective-oriented entries (manifest discrepancies, behavioral observations). Smuggler-path FactIds need equivalent coverage: operational facts (who handles what), risk assessments, loyalty intelligence.
**Blocks:** Knowledge graph population for smuggler character, monologue prerequisite checking. **Blocks:** Knowledge graph population for smuggler character, monologue prerequisite checking.
@@ -62,7 +62,7 @@ These existing tickets need status changes based on workshop context:
| ID | Title | Current Status | Action | | ID | Title | Current Status | Action |
|----|-------|---------------|--------| |----|-------|---------------|--------|
| #368 | Knowledge vocabulary for v0.1 content | in_progress (Sprint 2) | **Close when wiki review is accepted.** The wiki at `docs/wiki/` is the output. Workshop is the review. | | #368 | Knowledge vocabulary for v0.1 content | in_progress (Sprint 2) | **Close when wiki review is accepted.** The wiki at `wiki/` is the output. Workshop is the review. |
| #369 | Wiki Review Workshop Outputs (epic) | backlog | **Repurpose** as parent epic for v0.1 content scoping tickets. Update description to reflect this workshop's scope. | | #369 | Wiki Review Workshop Outputs (epic) | backlog | **Repurpose** as parent epic for v0.1 content scoping tickets. Update description to reflect this workshop's scope. |
| #301 | Wiki taxonomy and structure | backlog | **Assign to copy team.** Downscope for v0.1: focus on Sova district structure only. Full 500+ world taxonomy is a generator-era concern. | | #301 | Wiki taxonomy and structure | backlog | **Assign to copy team.** Downscope for v0.1: focus on Sova district structure only. Full 500+ world taxonomy is a generator-era concern. |
| #319 | Krenn System wiki entry | backlog | **Merge with A3.** Expanded scope: wiki page + seed.yaml reference implementation. Assign to copy. | | #319 | Krenn System wiki entry | backlog | **Merge with A3.** Expanded scope: wiki page + seed.yaml reference implementation. Assign to copy. |
@@ -139,7 +139,7 @@ The changes are ordered by dependency — later items reference earlier items' o
Below is the exact content change needed for each file. I'm specifying what to find and what to replace so this can be executed mechanically. Below is the exact content change needed for each file. I'm specifying what to find and what to replace so this can be executed mechanically.
#### File 1: `docs/wiki/npcs/hael.md` → rename to `docs/wiki/npcs/naia-tamm.md` #### File 1: `wiki/npcs/hael.md` → rename to `wiki/npcs/naia-tamm.md`
Full rewrite of the file header and all internal references. Key structural changes: Full rewrite of the file header and all internal references. Key structural changes:
@@ -217,7 +217,7 @@ consequences of that cultivation become apparent.
[Lera Sessik](lera-sessik.md) [Lera Sessik](lera-sessik.md)
``` ```
#### File 2: `docs/wiki/npcs/index.md` #### File 2: `wiki/npcs/index.md`
**Roster table row 9:** **Roster table row 9:**
- Old: `| 9 | Hael | Teacher (Kael's Partner) | Bar | Tier 2 | Mundane | Worried Partner |` - Old: `| 9 | Hael | Teacher (Kael's Partner) | Bar | Tier 2 | Mundane | Worried Partner |`
@@ -243,7 +243,7 @@ consequences of that cultivation become apparent.
**Content Deliverables section:** **Content Deliverables section:**
- Move Naia Tamm from "Tier 2" list to a new "Tier 1 (MIRROR)" subsection, or note the tier change explicitly. - Move Naia Tamm from "Tier 2" list to a new "Tier 1 (MIRROR)" subsection, or note the tier change explicitly.
#### File 3: `docs/wiki/index.md` #### File 3: `wiki/index.md`
**NPC listing:** **NPC listing:**
- Old: `- [Hael](npcs/hael.md) — Kael's partner (referenced)` - Old: `- [Hael](npcs/hael.md) — Kael's partner (referenced)`
@@ -255,7 +255,7 @@ Also move from "Tier 2" to a new bullet under Tier 1:
- [Naia Tamm](npcs/naia-tamm.md) — Kael's partner, teacher - [Naia Tamm](npcs/naia-tamm.md) — Kael's partner, teacher
``` ```
#### File 4: `docs/wiki/npcs/kael-davan.md` (~20+ replacements) #### File 4: `wiki/npcs/kael-davan.md` (~20+ replacements)
This is the heaviest file. Every "Hael" becomes "Naia" in dialogue/monologue contexts and "Naia Tamm" in descriptive/profile contexts. Key sections: This is the heaviest file. Every "Hael" becomes "Naia" in dialogue/monologue contexts and "Naia Tamm" in descriptive/profile contexts. Key sections:
@@ -278,7 +278,7 @@ File link in cross-references:
- Old: `[Hael](hael.md)` (if present) - Old: `[Hael](hael.md)` (if present)
- New: `[Naia Tamm](naia-tamm.md)` - New: `[Naia Tamm](naia-tamm.md)`
#### File 5: `docs/wiki/npcs/sera-venn.md` (~15 replacements) #### File 5: `wiki/npcs/sera-venn.md` (~15 replacements)
Same pattern as Kael. Key sections: Same pattern as Kael. Key sections:
- **Axis 1 (Want), Secondary**: "Protect Hael" → "Protect Naia Tamm" - **Axis 1 (Want), Secondary**: "Protect Hael" → "Protect Naia Tamm"
@@ -295,40 +295,40 @@ Same pattern as Kael. Key sections:
| File | Changes | | File | Changes |
|------|---------| |------|---------|
| `docs/wiki/npcs/lera-sessik.md` | Axis 6 info inventory: "Hael's worry about Kael" → "Naia Tamm's worry about Kael" | | `wiki/npcs/lera-sessik.md` | Axis 6 info inventory: "Hael's worry about Kael" → "Naia Tamm's worry about Kael" |
| `docs/wiki/npcs/maret-korr.md` | Axis 5 routine: "goes for Hael's company" → "goes for Naia's company" | | `wiki/npcs/maret-korr.md` | Axis 5 routine: "goes for Hael's company" → "goes for Naia's company" |
| `docs/wiki/authoring/monologue-guide.md` | Any monologue examples referencing Hael | | `wiki/authoring/monologue-guide.md` | Any monologue examples referencing Hael |
| `docs/wiki/locations/krenn-system/the-last-shift.md` | NPC presence list, social dynamics | | `wiki/locations/krenn-system/the-last-shift.md` | NPC presence list, social dynamics |
| `docs/wiki/world/sova-transit-district.md` | NPC references | | `wiki/world/sova-transit-district.md` | NPC references |
| `docs/wiki/factions/the-ring.md` | Kael vulnerability references | | `wiki/factions/the-ring.md` | Kael vulnerability references |
| `docs/wiki/knowledge/relationship-states.md` | Example entries | | `wiki/knowledge/relationship-states.md` | Example entries |
| `docs/wiki/knowledge/entity-attributes.md` | Example entries | | `wiki/knowledge/entity-attributes.md` | Example entries |
| `docs/wiki/knowledge/fact-catalog.md` | FactId entries: `npc.hael.*``npc.naia_tamm.*`, `relationship.kael.hael``relationship.kael.naia_tamm` | | `wiki/knowledge/fact-catalog.md` | FactId entries: `npc.hael.*``npc.naia_tamm.*`, `relationship.kael.hael``relationship.kael.naia_tamm` |
| `docs/wiki/world/krenn-system.md` | Naming examples list: "Hael" → keep (it's a valid Krenn first name), but add "Naia" to the list if not present | | `wiki/world/krenn-system.md` | Naming examples list: "Hael" → keep (it's a valid Krenn first name), but add "Naia" to the list if not present |
| `decisions/content.md` | D-034: "partner Hael" → "partner Naia Tamm". D-036: naming examples list update. | | `decisions/content.md` | D-034: "partner Hael" → "partner Naia Tamm". D-036: naming examples list update. |
### P0-2: Nils Davan Stub — Execution-Ready Content ### P0-2: Nils Davan Stub — Execution-Ready Content
The full stub page draft was provided in my Round 1 response. It's ready to write to `docs/wiki/npcs/nils-davan.md`. The full stub page draft was provided in my Round 1 response. It's ready to write to `wiki/npcs/nils-davan.md`.
**Cross-reference updates needed after creation:** **Cross-reference updates needed after creation:**
| File | Change | | File | Change |
|------|--------| |------|--------|
| `docs/wiki/npcs/index.md` | Add Nils to the Smuggling Ring social site listing. Add to roster table as off-stage NPC. | | `wiki/npcs/index.md` | Add Nils to the Smuggling Ring social site listing. Add to roster table as off-stage NPC. |
| `docs/wiki/index.md` | Add `[Nils Davan](npcs/nils-davan.md) — Ring coordinator (off-stage)` to NPC listing. | | `wiki/index.md` | Add `[Nils Davan](npcs/nils-davan.md) — Ring coordinator (off-stage)` to NPC listing. |
| `docs/wiki/npcs/kael-davan.md` | Add cross-reference link at bottom: `[Nils Davan](nils-davan.md)` | | `wiki/npcs/kael-davan.md` | Add cross-reference link at bottom: `[Nils Davan](nils-davan.md)` |
| `docs/wiki/npcs/voss.md` | Add cross-reference link | | `wiki/npcs/voss.md` | Add cross-reference link |
| `docs/wiki/npcs/devra.md` | Add cross-reference link | | `wiki/npcs/devra.md` | Add cross-reference link |
| `docs/wiki/npcs/renn.md` | Add cross-reference link | | `wiki/npcs/renn.md` | Add cross-reference link |
### P0-3: Drin Tier 2 Expansion ### P0-3: Drin Tier 2 Expansion
Full 7-axis draft provided in Round 1. Gestalt confirms promotion (A-01 consensus). Execution: Full 7-axis draft provided in Round 1. Gestalt confirms promotion (A-01 consensus). Execution:
1. Rewrite `docs/wiki/npcs/drin.md` from Tier 3 format to Tier 2 format using my Round 1 draft 1. Rewrite `wiki/npcs/drin.md` from Tier 3 format to Tier 2 format using my Round 1 draft
2. Update `docs/wiki/npcs/index.md` roster table: Tier 3 → Tier 2, update entanglement 2. Update `wiki/npcs/index.md` roster table: Tier 3 → Tier 2, update entanglement
3. Update `docs/wiki/index.md`: Move Drin from Tier 3 listing to Tier 2 3. Update `wiki/index.md`: Move Drin from Tier 3 listing to Tier 2
4. Add Gestalt's v0.1 mapping to header: `**Pattern**: REMNANT | **Motivation**: TURNCOAT` 4. Add Gestalt's v0.1 mapping to header: `**Pattern**: REMNANT | **Motivation**: TURNCOAT`
### P1-1: Canonical Names ### P1-1: Canonical Names
@@ -39,7 +39,7 @@ Incorporates: all 7 Round 1 responses, Qatux tracking doc, lead decisions (D-NPC
| ID | Title | Action | Sprint Target | | ID | Title | Action | Sprint Target |
|----|-------|--------|---------------| |----|-------|--------|---------------|
| #368 | Knowledge vocabulary for v0.1 content | **Close** — wiki at `docs/wiki/` is the delivered output | Sprint 2 (done) | | #368 | Knowledge vocabulary for v0.1 content | **Close** — wiki at `wiki/` is the delivered output | Sprint 2 (done) |
| #369 | Wiki Review Workshop Outputs (epic) | **Repurpose** as parent epic for all v0.1 content scoping tickets. Update description. | — | | #369 | Wiki Review Workshop Outputs (epic) | **Repurpose** as parent epic for all v0.1 content scoping tickets. Update description. | — |
| #301 | Wiki taxonomy and structure | **Assign to copy.** Downscope: Sova district structure only for v0.1. Full 500+ world taxonomy is generator-era. | Sprint 3 | | #301 | Wiki taxonomy and structure | **Assign to copy.** Downscope: Sova district structure only for v0.1. Full 500+ world taxonomy is generator-era. | Sprint 3 |
| #319 | Krenn System wiki entry | **Merge with A3.** Expanded: wiki page + seed.yaml reference implementation. Assign to copy. | Sprint 4 | | #319 | Krenn System wiki entry | **Merge with A3.** Expanded: wiki page + seed.yaml reference implementation. Assign to copy. | Sprint 4 |
@@ -26,7 +26,7 @@
| ID | Title | Action | Sprint | | ID | Title | Action | Sprint |
|----|-------|--------|--------| |----|-------|--------|--------|
| #368 | Knowledge vocabulary for v0.1 content | **Close** — wiki at `docs/wiki/` is the delivered output. | Sprint 2 (done) | | #368 | Knowledge vocabulary for v0.1 content | **Close** — wiki at `wiki/` is the delivered output. | Sprint 2 (done) |
| #369 | Wiki Review Workshop Outputs (epic) | **Repurpose** as parent epic for all v0.1 content scoping tickets. Update description to reflect this workshop's scope. | — | | #369 | Wiki Review Workshop Outputs (epic) | **Repurpose** as parent epic for all v0.1 content scoping tickets. Update description to reflect this workshop's scope. | — |
| #301 | Wiki taxonomy and structure | **Assign to copy.** Downscope: Sova district structure only for v0.1. | Sprint 3 | | #301 | Wiki taxonomy and structure | **Assign to copy.** Downscope: Sova district structure only for v0.1. | Sprint 3 |
| #319 | Krenn System wiki entry | **Merge with A3.** Expanded: wiki page + seed.yaml reference implementation. Assign to copy. | Sprint 4 | | #319 | Krenn System wiki entry | **Merge with A3.** Expanded: wiki page + seed.yaml reference implementation. Assign to copy. | Sprint 4 |
@@ -13,7 +13,7 @@
The Wiki Review workshop (4 rounds + lead interview) produced a comprehensive long-term content strategy documented in `docs/workshops/wiki-review/SUMMARY.md`. The key outcome: the full game targets 300 worlds populated by generators fed by style briefs. But **v0.1 is NOT a generator test. v0.1 is proof of the interaction model** — 1 district, hand-authored, proving that the player can touch the world and the world can touch back. The Wiki Review workshop (4 rounds + lead interview) produced a comprehensive long-term content strategy documented in `docs/workshops/wiki-review/SUMMARY.md`. The key outcome: the full game targets 300 worlds populated by generators fed by style briefs. But **v0.1 is NOT a generator test. v0.1 is proof of the interaction model** — 1 district, hand-authored, proving that the player can touch the world and the world can touch back.
The existing wiki (`docs/wiki/`, 45 files, ticket #368) contains the content for Sova Transit District: 17 NPCs across 3 tiers, 5 triangles, 3 social sites, knowledge vocabulary (FactIds, entity attributes, relationship states), and an authoring guide. This content has known gaps and issues identified in Rounds 1-2 of the Wiki Review. The existing wiki (`wiki/`, 45 files, ticket #368) contains the content for Sova Transit District: 17 NPCs across 3 tiers, 5 triangles, 3 social sites, knowledge vocabulary (FactIds, entity attributes, relationship states), and an authoring guide. This content has known gaps and issues identified in Rounds 1-2 of the Wiki Review.
**This workshop scopes and prioritizes the content work needed to ship v0.1.** **This workshop scopes and prioritizes the content work needed to ship v0.1.**
@@ -38,8 +38,8 @@ The existing wiki (`docs/wiki/`, 45 files, ticket #368) contains the content for
Before responding, read: Before responding, read:
1. `docs/workshops/wiki-review/SUMMARY.md` — the long-term content strategy (essential context) 1. `docs/workshops/wiki-review/SUMMARY.md` — the long-term content strategy (essential context)
2. `docs/workshops/wiki-review/lead-interview.md` — lead's decisions on cultural ingredients, NPC composition, archetypes, randomization, scale 2. `docs/workshops/wiki-review/lead-interview.md` — lead's decisions on cultural ingredients, NPC composition, archetypes, randomization, scale
3. `docs/wiki/index.md` — current wiki structure 3. `wiki/index.md` — current wiki structure
4. `docs/wiki/npcs/index.md` — NPC roster and triangles 4. `wiki/npcs/index.md` — NPC roster and triangles
5. `decisions/content.md` — D-028, D-034, D-035, D-036, D-037 5. `decisions/content.md` — D-028, D-034, D-035, D-036, D-037
6. `decisions/scope.md` — D-027, D-039 6. `decisions/scope.md` — D-027, D-039
@@ -115,7 +115,7 @@ v0.1 has 17 NPCs across 3 tiers. Not all patterns and motivations need to be pre
**How does wiki content become engine-readable data?** **How does wiki content become engine-readable data?**
The wiki (`docs/wiki/`) is the authoring source. The engine needs content in a structured format the server can load. The directory structure must: The wiki (`wiki/`) is the authoring source. The engine needs content in a structured format the server can load. The directory structure must:
- Support the v0.1 content (1 district, hand-authored) - Support the v0.1 content (1 district, hand-authored)
- Be architecturally compatible with the 300-world generator output (same schema, same addressing) - Be architecturally compatible with the 300-world generator output (same schema, same addressing)
- Allow hot-reloading during development - Allow hot-reloading during development
+1 -1
View File
@@ -10,7 +10,7 @@
### Scope Evolution ### Scope Evolution
The workshop began as a v0.1 wiki review (45 files in `docs/wiki/`, ticket #368) with 6 defined topics: direction check, style guides, regional style guide, wiki taxonomy, content directory structure, and randomizer/PC briefs. Rounds 1-2 produced 88 tracked proposals and 20 consensus items focused on v0.1 content quality: NPC profiles, smuggler lens parity, triangle strengthening, naming conventions, and content directory structure. The workshop began as a v0.1 wiki review (45 files in `wiki/`, ticket #368) with 6 defined topics: direction check, style guides, regional style guide, wiki taxonomy, content directory structure, and randomizer/PC briefs. Rounds 1-2 produced 88 tracked proposals and 20 consensus items focused on v0.1 content quality: NPC profiles, smuggler lens parity, triangle strengthening, naming conventions, and content directory structure.
Between Rounds 2 and 3, the lead redirected the workshop toward long-term content strategy. Round 3 asked "What does the full game look like?" and collected scaling estimates, cultural group proposals, NPC pattern libraries, and PC archetype lists from all contributors — all calculated at a 20-district scale. Between Rounds 2 and 3, the lead redirected the workshop toward long-term content strategy. Round 3 asked "What does the full game look like?" and collected scaling estimates, cultural group proposals, NPC pattern libraries, and PC archetype lists from all contributors — all calculated at a 20-district scale.
+7 -7
View File
@@ -117,7 +117,7 @@ The structure survives because the nesting is shallow and disambiguation is on-d
*cracks knuckles* *cracks knuckles*
This is the architectural meat. The wiki (`docs/wiki/`) is the authoring source of truth — human-readable, team-navigable. The content directory (`content/`) is the engine-readable delivery format — YAML, schema-validated, loaded at runtime. They mirror each other structurally but serve different consumers. This is the architectural meat. The wiki (`wiki/`) is the authoring source of truth — human-readable, team-navigable. The content directory (`content/`) is the engine-readable delivery format — YAML, schema-validated, loaded at runtime. They mirror each other structurally but serve different consumers.
### Architecture: Three-Layer Content Stack ### Architecture: Three-Layer Content Stack
@@ -456,7 +456,7 @@ Hot-reload is **development-only** (behind `#[cfg(feature = "dev")]`). Release b
### How Wiki and Content Relate ### How Wiki and Content Relate
``` ```
docs/wiki/ → Human-authored source of truth (markdown) wiki/ → Human-authored source of truth (markdown)
↓ (authoring pipeline: wiki → YAML) ↓ (authoring pipeline: wiki → YAML)
content/ → Engine-readable delivery format (YAML) content/ → Engine-readable delivery format (YAML)
↓ (engine loads at startup) ↓ (engine loads at startup)
@@ -569,11 +569,11 @@ Total for full content pipeline: ~4.5 sprints. But we don't need all of it for v
| Wiki path | Content path | Notes | | Wiki path | Content path | Notes |
|---|---|---| |---|---|---|
| `docs/wiki/npcs/kael-davan.md` | `content/districts/sova-transit/npcs/kael-davan.yaml` | NPC is district-scoped | | `wiki/npcs/kael-davan.md` | `content/districts/sova-transit/npcs/kael-davan.yaml` | NPC is district-scoped |
| `docs/wiki/locations/krenn-system/the-terminal.md` | `content/districts/sova-transit/locations/the-terminal.yaml` | Location is district-scoped | | `wiki/locations/krenn-system/the-terminal.md` | `content/districts/sova-transit/locations/the-terminal.yaml` | Location is district-scoped |
| `docs/wiki/factions/lattice-commission.md` | `content/global/factions/lattice-commission.yaml` | Faction is global | | `wiki/factions/lattice-commission.md` | `content/global/factions/lattice-commission.yaml` | Faction is global |
| `docs/wiki/knowledge/fact-catalog.md` | `content/global/knowledge/facts.yaml` | All FactIds in one file | | `wiki/knowledge/fact-catalog.md` | `content/global/knowledge/facts.yaml` | All FactIds in one file |
| `docs/wiki/authoring/monologue-guide.md` | N/A (authoring reference, not engine content) | Wiki-only | | `wiki/authoring/monologue-guide.md` | N/A (authoring reference, not engine content) | Wiki-only |
| N/A | `content/districts/sova-transit/lines/terminal/dialogue.yaml` | Engine-only (authored YAML) | | N/A | `content/districts/sova-transit/lines/terminal/dialogue.yaml` | Engine-only (authored YAML) |
The mapping is consistent but not 1:1. Some wiki pages are references that don't produce engine content. Some engine content (line pools) doesn't have a wiki counterpart — it IS the content. The mapping is consistent but not 1:1. Some wiki pages are references that don't produce engine content. Some engine content (line pools) doesn't have a wiki counterpart — it IS the content.
@@ -12,7 +12,7 @@
|----|-------|--------|-----------| |----|-------|--------|-----------|
| #301 | Wiki taxonomy and structure — full future-ready schema | **Update description** — workshop produced concrete taxonomy rules (Tyre R2 §5, Miri canonical_id). Assign to **copy** team. | Workshop directly addresses this ticket's scope. | | #301 | Wiki taxonomy and structure — full future-ready schema | **Update description** — workshop produced concrete taxonomy rules (Tyre R2 §5, Miri canonical_id). Assign to **copy** team. | Workshop directly addresses this ticket's scope. |
| #319 | Krenn System wiki entry — first star system | **Update description** — Miri delivered Krenn System brief in workshop (Round 1+2). Assign to **copy** team. Will be fulfilled by new ticket for cultural-groups file. | Miri's brief supersedes the original scope. | | #319 | Krenn System wiki entry — first star system | **Update description** — Miri delivered Krenn System brief in workshop (Round 1+2). Assign to **copy** team. Will be fulfilled by new ticket for cultural-groups file. | Miri's brief supersedes the original scope. |
| #368 | Knowledge vocabulary for v0.1 content (#309) | **Mark done** — the wiki at `docs/wiki/` is the output. Currently in_progress. | Workshop is the review of #368's output. | | #368 | Knowledge vocabulary for v0.1 content (#309) | **Mark done** — the wiki at `wiki/` is the output. Currently in_progress. | Workshop is the review of #368's output. |
| #261 | Dual Lens Authoring Guide | **No change** — still blocking. Workshop confirms its importance. Assign to **copy** team when ready. | Workshop style guide work complements but doesn't replace #261. | | #261 | Dual Lens Authoring Guide | **No change** — still blocking. Workshop confirms its importance. Assign to **copy** team when ready. | Workshop style guide work complements but doesn't replace #261. |
--- ---
@@ -10,7 +10,7 @@
## Context ## Context
Sprint 2 just produced `docs/wiki/` — 45 files covering the full knowledge vocabulary for v0.1 (ticket #368). This includes NPC profiles (17 NPCs across 3 tiers), location pages, faction pages, technology/contraband references, knowledge system vocabulary (FactIds, entity attributes, relationship states), and an authoring guide. Sprint 2 just produced `wiki/` — 45 files covering the full knowledge vocabulary for v0.1 (ticket #368). This includes NPC profiles (17 NPCs across 3 tiers), location pages, faction pages, technology/contraband references, knowledge system vocabulary (FactIds, entity attributes, relationship states), and an authoring guide.
Before we commit this as canonical and build YAML content files on top of it (#299, #300, #309), we need to review it as a team. Paula and Mellanie served as the primary authors and can explain the reasoning behind structure and content decisions. Before we commit this as canonical and build YAML content files on top of it (#299, #300, #309), we need to review it as a team. Paula and Mellanie served as the primary authors and can explain the reasoning behind structure and content decisions.
@@ -30,11 +30,11 @@ Review the wiki holistically. Check that:
- The knowledge vocabulary (FactIds, relationship states, confidence levels) can express everything the narrative needs - The knowledge vocabulary (FactIds, relationship states, confidence levels) can express everything the narrative needs
**Key files to review:** **Key files to review:**
- `docs/wiki/npcs/index.md` — roster + triangle diagrams - `wiki/npcs/index.md` — roster + triangle diagrams
- `docs/wiki/npcs/kael-davan.md` — Tier 1 FRIEND reference - `wiki/npcs/kael-davan.md` — Tier 1 FRIEND reference
- `docs/wiki/npcs/sera-venn.md` — Tier 1 FRIEND reference - `wiki/npcs/sera-venn.md` — Tier 1 FRIEND reference
- `docs/wiki/knowledge/relationship-states.md` — contradiction arcs - `wiki/knowledge/relationship-states.md` — contradiction arcs
- `docs/wiki/knowledge/fact-catalog.md` — FactId vocabulary - `wiki/knowledge/fact-catalog.md` — FactId vocabulary
**Questions:** **Questions:**
1. **Gore:** Does this capture what the game is fundamentally ABOUT? The philosophical questions, the identity tensions? 1. **Gore:** Does this capture what the game is fundamentally ABOUT? The philosophical questions, the identity tensions?
@@ -180,12 +180,12 @@ The wiki is the authoring source. But the game needs content in engine-readable
Participants should read before responding: Participants should read before responding:
- **Wiki index:** `docs/wiki/index.md` - **Wiki index:** `wiki/index.md`
- **NPC roster:** `docs/wiki/npcs/index.md` - **NPC roster:** `wiki/npcs/index.md`
- **Kael profile (Tier 1 reference):** `docs/wiki/npcs/kael-davan.md` - **Kael profile (Tier 1 reference):** `wiki/npcs/kael-davan.md`
- **Sera profile (Tier 1 reference):** `docs/wiki/npcs/sera-venn.md` - **Sera profile (Tier 1 reference):** `wiki/npcs/sera-venn.md`
- **Relationship states:** `docs/wiki/knowledge/relationship-states.md` - **Relationship states:** `wiki/knowledge/relationship-states.md`
- **Fact catalog:** `docs/wiki/knowledge/fact-catalog.md` - **Fact catalog:** `wiki/knowledge/fact-catalog.md`
- **Monologue guide:** `docs/wiki/authoring/monologue-guide.md` - **Monologue guide:** `wiki/authoring/monologue-guide.md`
- **Decisions:** `decisions/content.md`, `decisions/scope.md`, `decisions/perception.md` - **Decisions:** `decisions/content.md`, `decisions/scope.md`, `decisions/perception.md`
- **Previous workshops:** `docs/workshops/content-gap-analysis_v0_1/`, `docs/workshops/v01-gap-analysis/` - **Previous workshops:** `docs/workshops/content-gap-analysis_v0_1/`, `docs/workshops/v01-gap-analysis/`
+98
View File
@@ -0,0 +1,98 @@
# Wiki Governance
**Owner:** Miri (structure and worldbuilding)
**Contributors:** Anyone on the team, following templates
---
## Status Lifecycle
Every wiki entry has a `status` field in its YAML frontmatter:
| Status | Meaning | Who Can Set |
|--------|---------|-------------|
| `proposed` | Under consideration, not yet reviewed | Anyone |
| `draft` | In review, content being refined | Author + reviewer |
| `canonical` | Confirmed setting truth, safe to reference | Miri or project lead |
**Progression:** `proposed``draft``canonical`
**Demotion:** A `canonical` entry can be demoted to `draft` if a decision changes its foundation. Only Miri or the project lead can demote canonical entries.
---
## Creating New Entries
1. Copy the appropriate template from `_templates/`
2. Fill in the YAML frontmatter (all fields)
3. Set `status: proposed`
4. Write the content following the template structure
5. Submit for review
**Templates available:** `star-system`, `station`, `district`, `location`, `character`, `faction`, `technology`, `cultural-group`, `contraband`, `institution`, `species`, `lore`, `concept`, `triangle`
---
## Directory Rules
### Spatial Hierarchy (`star-systems/`)
```
star-systems/
{system-slug}/
index.md # System overview
{station-slug}/
index.md # Station overview
{district-slug}/
index.md # District overview
{location-slug}.md # Location files (flat within district)
```
- Systems contain stations (nested directories)
- Stations contain districts (nested directories)
- Districts contain locations (flat files, no subdirectory)
- Each directory level has an `index.md` with that entity's overview
- Slugs are lowercase, hyphenated, unique within their parent
### Flat Categories
All other categories use flat file structure:
```
{category}/
{entry-slug}.md
```
No nesting within flat categories. Use `cross_refs` in frontmatter for relationships.
---
## Cross-Referencing
- Use `cross_refs` in YAML frontmatter for machine-readable references (slugs only)
- Use markdown links in body text for human-readable navigation
- Use `decision_refs` for links to `decisions/*.md` entries (e.g., `[D-036]`)
---
## Scale Considerations
The spatial hierarchy is designed to scale from 1 star system (v0.1) to 500+ (full game):
- Each system is a self-contained directory tree
- Cross-system references use full slug paths (e.g., `star-systems/krenn/sova/transit`)
- Characters, factions, and other flat categories remain at wiki root — they are not nested per system
- Characters reference their home district via `home_district` frontmatter field
---
## Naming Conventions
- **File slugs:** lowercase, hyphenated (e.g., `kael-davan.md`, `the-last-shift.md`)
- **Directory slugs:** lowercase, hyphenated (e.g., `krenn/`, `sova/`, `transit/`)
- **Canonical IDs:** match content schema format (e.g., `npc:kael-davan`)
- **Display names:** title case, as they appear in-game
---
**Last updated:** 2026-02-13
+141
View File
@@ -0,0 +1,141 @@
---
title: "" # Display name (e.g., "Kael Davan")
slug: "" # URL-safe identifier (e.g., "kael-davan")
canonical_id: "" # e.g., "npc:kael-davan"
category: character
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
tier: 2 # 1 (FRIEND/production) | 2 (template) | 3 (flat) | 0 (off-stage)
pattern: "" # FRIEND | MIRROR | ANCHOR | GHOST | CATALYST | THRESHOLD | REMNANT | SYSTEM | NOBODY
motivation: "" # HANDLER | WITNESS | TURNCOAT | CIVILIAN | OPERATOR | SKEPTIC
social_sites: [] # location slugs where this character appears
entanglement: "" # entangled | mundane | flat
triangles: [] # triangle slugs
home_district: "" # district slug
tags: []
decision_refs: [] # e.g., [D-024, D-034]
cross_refs: [] # slugs of related characters, factions, locations
---
# {Title}
**Tier {tier} NPC** | {social_sites} | {entanglement}
---
## Core Identity
**Name**: {full name}
**Age**: {age}
**Role**: {occupation/function}
**System Origin**: {home system and station}
**Cultural Group**: {cultural group slug}
**Lattice Tier**: {Baseline | Enhanced | Analytical}
**Employer**: {employer(s)}
---
## 10-Axis Profile
### 1. Want
**Primary**: {1-line want statement}
{Expansion: why they want this, how it manifests, trajectory.}
**Secondary**: {1-line secondary want}
### 2. Secret / Vulnerability
**Surface secret**: {what most people suspect or know vaguely}
**Deep secret**: {what nobody knows}
**Vulnerability**: {what breaks them}
### 3. Relationships
{3 named relationships with type, history, current tension, mechanical relevance.}
### 4. Tolerance Threshold
**{Low | Moderate | High}** — {summary}
{What they tolerate. What pushes them. What breaks them.}
### 5. Daily Routine
{Time-stamped routine with ring/operation deviations noted.}
### 6. Information Inventory
**Knows**: {bulleted list of FactIds and knowledge}
**Doesn't know**: {bulleted list of gaps}
### 7. Contentment
**{Level descriptor}** — {summary and trajectory}
### 8. Personality Traits
**Primary**: {trait} — {description}
**Secondary**: {trait} — {description}
**Tertiary**: {trait} — {description}
### 9. Tell System
| Tell | Trigger | Observable To |
|------|---------|---------------|
| {tell} | {trigger} | {who can see it} |
### 10. Skill Set
**Occupational**: {skills}
**Combat tag**: **{Yes | No}**
**Lattice capability**: {tier}
---
## Voice Sample
{3-5 lines covering different moods}
---
## Dual-Lens Notes
**Smuggler**: {how the smuggler reads this character}
**Detective**: {how the detective reads this character}
---
## Triangle Roles
{Per-triangle: function, pressure, player relevance}
---
## Pattern / Motivation
**Pattern (System A):** {PATTERN} — {explanation}
**Motivation (System B):** {MOTIVATION} — {explanation}
**Composition read:** {how pattern + motivation interact}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/characters/{slug}.md):
Other characters: {slug}.md
Factions: ../factions/{slug}.md
Technology: ../technology/{slug}.md
Contraband: ../contraband/{slug}.md
Triangles: ../triangles/{slug}.md
Concepts: ../concepts/{slug}.md
Star systems: ../star-systems/{sys}/index.md
Stations: ../star-systems/{sys}/{sta}/index.md
Districts: ../star-systems/{sys}/{sta}/{dist}/index.md
Locations: ../star-systems/{sys}/{sta}/{dist}/{loc}.md
-->
- [{faction_name}](../factions/{slug}.md) — {affiliation}
- [{location_name}](../star-systems/{sys}/{sta}/{dist}/{slug}.md) — {social site}
+46
View File
@@ -0,0 +1,46 @@
---
title: "" # Display name (e.g., "Knowledge Graph")
slug: "" # URL-safe identifier
category: concept
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
concept_type: "" # mechanical | narrative | systemic
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Concept — {concept_type}
**Status:** {status}
---
## Overview
{What this concept is, how it works, why it exists in the game.}
---
## Details
{Full specification: rules, states, transitions, interactions.}
---
## Integration Points
{How this concept connects to other systems, content, and gameplay.}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/concepts/{slug}.md):
Other concepts: {slug}.md
Characters: ../characters/{slug}.md
Technology: ../technology/{slug}.md
Locations: ../star-systems/{sys}/{sta}/{dist}/{loc}.md
-->
- [{related_entry}](../{category}/{slug}.md) — {relationship}
+64
View File
@@ -0,0 +1,64 @@
---
title: "" # Display name (e.g., "Unlicensed Lattice Components")
slug: "" # URL-safe identifier (e.g., "lattice-components")
category: contraband
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
risk_level: "" # low | moderate | high | extreme
source: [] # faction slugs or supply chain descriptions
regulatory_classification: "" # category-1 | category-2 | category-3
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Contraband
**Status:** {status}
**Risk Level:** {risk_level}
**Regulatory Classification:** {regulatory_classification}
**Source:** {source}
---
## Overview
{What it is, why it's illegal, who wants it.}
---
## Supply Chain
{How it gets from source to end user. Which NPCs are involved.}
---
## Moral Dimension
{Why reasonable people smuggle this. The ethical complexity.}
---
## Detection Vectors
{How an investigator would identify this contraband. Manifest tells, physical indicators.}
---
## Mechanical Integration
{FactIds, knowledge graph connections, investigation progression.}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/contraband/{slug}.md):
Other contraband: {slug}.md
Characters: ../characters/{slug}.md
Factions: ../factions/{slug}.md
Technology: ../technology/{slug}.md
Locations: ../star-systems/{sys}/{sta}/{dist}/{loc}.md
-->
- [{related_entry}](../{category}/{slug}.md) — {relationship}
+67
View File
@@ -0,0 +1,67 @@
---
title: "" # Display name (e.g., "Krenn System Culture")
slug: "" # URL-safe identifier (e.g., "krenn-system")
category: cultural-group
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
home_system: "" # star system slug
population_centers: [] # station/world slugs
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Cultural Group
**Status:** {status}
**Home System:** {home_system}
**Population Centers:** {list}
---
## Overview
{1-2 paragraphs: what defines this culture, how it formed, key values.}
---
## Social Norms
{Greeting customs, name usage, trust dynamics, authority relationships.}
---
## Naming Conventions
{Name patterns, phonetics, usage rules (first-name vs surname contexts).}
---
## Economic Character
{Relationship to work, money, institutions. What "enough" means here.}
---
## Attitudes Toward Authority
{How locals relate to Commission, Assembly, external institutions.}
---
## Authoring Notes
{Voice guidance for content authors writing characters from this culture.}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/cultural-groups/{slug}.md):
Characters: ../characters/{slug}.md
Factions: ../factions/{slug}.md
Star systems: ../star-systems/{sys}/index.md
Lore: ../lore/{slug}.md
-->
- [{related_entry}](../{category}/{slug}.md) — {relationship}
+76
View File
@@ -0,0 +1,76 @@
---
title: "" # Display name (e.g., "Sova Transit District")
slug: "" # URL-safe identifier (e.g., "transit")
category: district
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
parent_station: "" # station slug
parent_system: "" # star system slug
population: 0 # district population
age: 0 # years since construction
construction: "" # prefab | modular | retrofitted | mixed
locations: [] # slugs of locations within this district
social_sites: [] # slugs of social site templates
npc_count: 0
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** District
**Status:** {status}
**Station:** [{parent_station}](../index.md)
**System:** [{parent_system}](../../index.md)
**Population:** ~{population}
**Age:** ~{age} years
**Construction:** {construction}
---
## Overview
{1-2 paragraphs: what this district is, atmosphere, function.}
---
## Locations (Social Sites)
{List of locations with links, brief descriptions, and social site template assignments.}
---
## Atmosphere & Sensory
{Sights, sounds, smells, lighting. The "quotidian-with-undertow" texture.}
---
## NPCs
{Summary of NPC population. Link to character index for full roster.}
---
## Mechanical Integration
{Knowledge graph flags, perception differences, spatial layout notes.}
---
**Cross-References:**
<!-- Relative paths from district index (wiki/star-systems/{sys}/{sta}/{dist}/index.md):
Locations in this district: {slug}.md
Station index: ../index.md
System index: ../../index.md
Characters: ../../../characters/{slug}.md
Factions: ../../../factions/{slug}.md
Technology: ../../../technology/{slug}.md
Contraband: ../../../contraband/{slug}.md
Triangles: ../../../triangles/{slug}.md
Concepts: ../../../concepts/{slug}.md
-->
- [{location_name}]({slug}.md) — {description}
- [Character Index](../../../characters/index.md) — Full roster
+79
View File
@@ -0,0 +1,79 @@
---
title: "" # Display name (e.g., "The Ring")
slug: "" # URL-safe identifier (e.g., "the-ring")
category: faction
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
scope: "" # local | regional | reach-wide
faction_type: "" # political | regulatory | criminal | cultural | economic | military
governance_role: "" # legislative | enforcement | advisory | none
headquarters: "" # location slug or "distributed"
members: [] # character slugs of known members
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Faction — {faction_type}
**Status:** {status}
**Scope:** {scope}
**Governance Role:** {governance_role}
**Headquarters:** {headquarters}
---
## Overview
{2-3 paragraphs: what this faction is, what it does, why it matters.}
---
## Structure
{How the faction is organized. Hierarchy, roles, decision-making.}
---
## Members (v0.1)
{Table or list of known members with roles and links.}
---
## Community Role
{How this faction fits into the social fabric. Who benefits, who is harmed.}
---
## Vulnerability
{How the faction can be exposed, disrupted, or exploited by the player.}
---
## Mechanical Integration
{Knowledge graph flags, perception differences, investigation vectors.}
---
## Thematic Function
{What question this faction poses for the player. Why it exists in the game.}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/factions/{slug}.md):
Other factions: {slug}.md
Characters: ../characters/{slug}.md
Technology: ../technology/{slug}.md
Contraband: ../contraband/{slug}.md
Locations: ../star-systems/{sys}/{sta}/{dist}/{loc}.md
-->
- [{character_name}](../characters/{slug}.md) — {role}
- [{location_name}](../star-systems/{sys}/{sta}/{dist}/{slug}.md) — {presence}
+57
View File
@@ -0,0 +1,57 @@
---
title: "" # Display name (e.g., "Krenn System Administrator's Office")
slug: "" # URL-safe identifier
category: institution
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
parent_body: "" # parent faction or government slug
jurisdiction: "" # reach-wide | regional | system | station | district
function: "" # governance | enforcement | services | regulation
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Institution
**Status:** {status}
**Parent Body:** {parent_body}
**Jurisdiction:** {jurisdiction}
**Function:** {function}
---
## Overview
{What this institution does, where it operates, who staffs it.}
---
## Services & Functions
{What the institution provides to the community.}
---
## Presence in v0.1
{How this institution manifests in the Sova Transit District. NPCs, locations, systems.}
---
## Mechanical Integration
{Access tiers, knowledge flags, investigation touchpoints.}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/institutions/{slug}.md):
Characters: ../characters/{slug}.md
Factions: ../factions/{slug}.md
Locations: ../star-systems/{sys}/{sta}/{dist}/{loc}.md
Technology: ../technology/{slug}.md
-->
- [{related_entry}](../{category}/{slug}.md) — {relationship}
+85
View File
@@ -0,0 +1,85 @@
---
title: "" # Display name (e.g., "The Terminal")
slug: "" # URL-safe identifier (e.g., "the-terminal")
category: location
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
parent_district: "" # district slug
parent_station: "" # station slug
parent_system: "" # star system slug
social_site: "" # social site template this location belongs to
tile_count: 0 # approximate tile footprint
sightlines: "" # open | partitioned | enclosed
ambient_sound: "" # primary ambient sound reference
npcs_present: [] # character slugs typically found here
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Location
**Status:** {status}
**District:** [{parent_district}](index.md)
**Station:** [{parent_station}](../index.md)
**System:** [{parent_system}](../../index.md)
**Social Site:** {social_site}
**Sightlines:** {sightlines}
---
## Overview
{1-2 paragraphs: what this space is, what happens here, atmosphere.}
---
## Layout & Sightlines
{Physical description, key areas, what can be seen from where. D-025 functional cluster notes.}
---
## NPCs Present
{Who is typically here and when. Routine overlap and observation opportunities.}
---
## Sensory Profile
{Ambient sounds, lighting, smells, visual texture.}
---
## Dual-Lens Notes
**Smuggler:** {how the smuggler experiences this space}
**Detective:** {how the detective experiences this space}
---
## Mechanical Integration
{Sightline properties, ambient sound references, social site template.}
---
**Cross-References:**
<!-- Relative paths from location files (wiki/star-systems/{sys}/{sta}/{dist}/{loc}.md):
Same-district locations: {slug}.md
District index: index.md
Station index: ../index.md
System index: ../../index.md
Characters: ../../../../characters/{slug}.md
Factions: ../../../../factions/{slug}.md
Technology: ../../../../technology/{slug}.md
Contraband: ../../../../contraband/{slug}.md
Triangles: ../../../../triangles/{slug}.md
Concepts: ../../../../concepts/{slug}.md
-->
- [{parent_district}](index.md) — Parent district
- [{related_location}]({slug}.md) — {relationship}
- [{character_name}](../../../../characters/{slug}.md) — {role}
+56
View File
@@ -0,0 +1,56 @@
---
title: "" # Display name (e.g., "The Founding of the Settled Reach")
slug: "" # URL-safe identifier
category: lore
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
era: "" # founding | expansion | consolidation | contemporary
scope: "" # reach-wide | regional | local
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Lore
**Status:** {status}
**Era:** {era}
**Scope:** {scope}
---
## Summary
{1-2 paragraph summary of the historical event, period, or narrative.}
---
## Details
{Full description with dates, key figures, consequences.}
---
## Legacy
{How this lore affects the present day. Cultural memory, institutional consequences.}
---
## Mechanical Integration
{Knowledge flags, how this lore surfaces in gameplay (dialogue, environmental text, monologue).}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/lore/{slug}.md):
Other lore: {slug}.md
Factions: ../factions/{slug}.md
Technology: ../technology/{slug}.md
Star systems: ../star-systems/{sys}/index.md
Cultural groups: ../cultural-groups/{slug}.md
-->
- [{related_entry}](../{category}/{slug}.md) — {relationship}
+48
View File
@@ -0,0 +1,48 @@
---
title: "" # Display name (e.g., "Human (Baseline)")
slug: "" # URL-safe identifier
category: species
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
prevalence: "" # dominant | common | rare | theoretical
lattice_compatible: true # whether this species uses neural lattices
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Species
**Status:** {status}
**Prevalence:** {prevalence}
**Lattice Compatible:** {yes/no}
---
## Overview
{Species description, biological baseline, cultural significance.}
---
## Variants
{If applicable: biological variations, augmentation paths, subspecies.}
---
## Mechanical Integration
{How species affects gameplay, perception, social dynamics.}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/species/{slug}.md):
Characters: ../characters/{slug}.md
Technology: ../technology/{slug}.md
Lore: ../lore/{slug}.md
-->
- [{related_entry}](../{category}/{slug}.md) — {relationship}
+107
View File
@@ -0,0 +1,107 @@
---
title: "" # Display name (e.g., "Krenn System")
slug: "" # URL-safe identifier (e.g., "krenn")
category: star-system
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
stellar_class: "" # e.g., G3V, K1III
settlement_age: 0 # years since first settlement
population: 0 # system-wide
reach_position: "" # core | mid-reach | frontier | rim
stations: [] # slugs of stations in this system
gate_connections: [] # slugs of connected systems
tags: []
decision_refs: [] # e.g., [D-036]
cross_refs: [] # slugs of related entries
---
# {Title}
**Type:** Star System
**Status:** {status}
**Classification:** {reach_position}
**Star Type:** {stellar_class}
**Settlement Age:** ~{settlement_age} years
**Population:** ~{population}
---
## Overview
{1-2 paragraph description of the system: what it is, why it matters, what kind of place it is.}
---
## Stellar Profile
- **Primary Star:** {stellar_class}
- **Planetary Bodies:** {count and types}
- **Habitable Worlds:** {count}
- **Stations:** {count}, including {list}
---
## Economy
**Economic Base:** {primary industries}
{2-3 paragraphs on economic character, wage profile, and how economics connect to gameplay.}
---
## Governance & Institutional Presence
**Primary Governance:** {governing body}
**Local Authority:** {local administrator}
**Lattice Commission Presence:** {level}
**Meridian Coverage:** {level}
{1-2 paragraphs on institutional gaps and their gameplay relevance.}
---
## Culture & Social Norms
**Cultural Profile:** {1-line summary}
**Naming Conventions:** {description}
{Details on social texture, greeting customs, trust dynamics.}
---
## Gate Network Connections
**Horizon Gates (Interstellar):** {connections}
**Span Gates (Intra-System):** {connections}
---
## Key Locations in System
- {Bulleted list with links to stations, worlds, facilities}
---
## Mechanical Integration
**Knowledge Graph Flags:**
- `world.{slug}_layout` — {description}
- `world.{slug}_culture` — {description}
**Perception Differences:**
- **Smuggler:** {how this character experiences the system}
- **Detective:** {how this character experiences the system}
---
**Cross-References:**
<!-- Relative paths from system index (wiki/star-systems/{sys}/index.md):
Stations in this system: {slug}/index.md
Other star systems: ../{slug}/index.md
Characters: ../../characters/{slug}.md
Factions: ../../factions/{slug}.md
Technology: ../../technology/{slug}.md
Cultural groups: ../../cultural-groups/{slug}.md
-->
- [{station_name}]({slug}/index.md) — {description}
+67
View File
@@ -0,0 +1,67 @@
---
title: "" # Display name (e.g., "Station Sova")
slug: "" # URL-safe identifier (e.g., "sova")
category: station
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
parent_system: "" # star system slug
population: 0
station_type: "" # logistics | military | research | residential | mixed
districts: [] # slugs of districts
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Station
**Status:** {status}
**System:** [{parent_system}](../index.md)
**Population:** ~{population}
**Station Type:** {station_type}
---
## Overview
{1-2 paragraph description: what kind of station, why it exists, what life is like here.}
---
## Districts
{List of districts with brief descriptions and links.}
---
## Infrastructure
{Station-level infrastructure: docking, environmental, transit, power.}
---
## Governance & Services
{Local authority, Commission presence, services available.}
---
## Mechanical Integration
{Knowledge graph flags, perception differences, relevant game systems.}
---
**Cross-References:**
<!-- Relative paths from station index (wiki/star-systems/{sys}/{sta}/index.md):
Districts in this station: {slug}/index.md
System index: ../index.md
Characters: ../../characters/{slug}.md
Factions: ../../factions/{slug}.md
Technology: ../../technology/{slug}.md
Contraband: ../../contraband/{slug}.md
-->
- [{parent_system}](../index.md) — Parent system
- [{district_name}]({slug}/index.md) — {description}
+68
View File
@@ -0,0 +1,68 @@
---
title: "" # Display name (e.g., "Neural Lattice")
slug: "" # URL-safe identifier (e.g., "neural-lattice")
category: technology
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
prevalence: "" # universal | common | restricted | rare | theoretical
regulatory_body: "" # slug of regulating faction, or "unregulated"
tags: []
decision_refs: []
cross_refs: []
---
# {Title}
**Type:** Technology
**Status:** {status}
**Prevalence:** {prevalence}
**Regulatory Body:** {regulatory_body}
---
## Overview
{2-3 paragraphs: what it is, how it works, why it matters.}
---
## How It Works
{Technical description at the level needed for content creation and game design.}
---
## Tiers / Variants
{If applicable: capability levels, variants, or classifications.}
---
## Regulation & Access
{Who controls it, how it's distributed, what the restrictions are.}
---
## Dual-Lens Significance
{How smuggler vs detective experience or relate to this technology.}
---
## Mechanical Integration
{Knowledge graph flags, perception system connections, gameplay relevance.}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/technology/{slug}.md):
Other technology: {slug}.md
Characters: ../characters/{slug}.md
Factions: ../factions/{slug}.md
Contraband: ../contraband/{slug}.md
Concepts: ../concepts/{slug}.md
-->
- [{related_entry}](../{category}/{slug}.md) — {relationship}
+59
View File
@@ -0,0 +1,59 @@
---
title: "" # Display name (e.g., "Hub Power")
slug: "" # URL-safe identifier (e.g., "hub-power")
category: triangle
status: proposed # proposed | draft | canonical
created: YYYY-MM-DD
updated: YYYY-MM-DD
members: [] # exactly 3 character slugs
triangle_type: "" # entangled | mundane | cross-template
social_sites: [] # location slugs where this triangle plays out
tags: []
decision_refs: [] # e.g., [D-024, D-047]
cross_refs: []
---
# Triangle: {Title}
**Type:** Triangle — {triangle_type}
**Status:** {status}
**Members:** {member links}
**Social Sites:** {location links}
---
## Diagram
```
{ASCII diagram showing 3 members and their tensions}
```
---
## Tension
{What the core conflict is, why it exists, how it manifests.}
---
## Fork Points
{Decision points for the player, outcomes, cascading effects.}
---
## Player Relevance
**Smuggler:** {how the smuggler interacts with this triangle}
**Detective:** {how the detective interacts with this triangle}
---
**Cross-References:**
<!-- Relative paths from flat categories (wiki/triangles/{slug}.md):
Characters: ../characters/{slug}.md
Factions: ../factions/{slug}.md
Locations: ../star-systems/{sys}/{sta}/{dist}/{loc}.md
-->
- [{character_name}](../characters/{slug}.md) — {role in triangle}
- [{location_name}](../star-systems/{sys}/{sta}/{dist}/{slug}.md) — {where it plays out}
@@ -0,0 +1,293 @@
---
title: "Environmental Text Examples"
slug: environmental-text-examples
category: authoring-guide
status: canonical
created: 2026-02-13
updated: 2026-02-13
tags: [v0.1, authoring, environmental-text]
decision_refs: [D-016, D-032, D-036]
cross_refs: [monologue-guide, the-last-shift, the-terminal, maintenance-corridors]
---
# Environmental Text Examples
Worked examples of diegetic environmental text for Sova Transit District. Each example is Krenn-voiced (working-class, direct, compact) with cultural notes explaining the choices, followed by monologue pairings showing how the smuggler and detective read the same text differently.
Environmental text is not decoration. It is world-state that the player reads through their character's perspective. The same sign on the same wall tells two different stories.
---
## 1. Bar Menu — The Last Shift
Mounted behind the bar counter. Hand-lettered on a metal panel in Lera's handwriting. Prices in station credits. Menu changes rarely — when an item runs out, Lera crosses it off and writes the replacement below.
### The Text
```
LERA'S
Grain spirit (Sova-brewed) 4
Grain spirit, double 7
Station lager 5
Imported lager (Krenn Prime) 12
Synth ale (cold) 3
Fried protein + bread 6
Stew (ask what's in it) 5
Bread + spread 3
No tabs. No arguments.
Last call 01:30.
```
### Cultural Notes
- **Pricing tells a story.** Imported lager at 12 credits — five shifts' disposable income for a logistics worker earning 200 credits margin per month. Ordering one is a status display. The smuggler knows who can afford it and who's showing off. The detective notes the financial tell.
- **"Ask what's in it"** — Krenn directness. Lera doesn't pretend the stew is gourmet. The regulars don't care. This is food for people who need to eat, not a dining experience.
- **"No tabs. No arguments."** — Lera has been burned. The two-rule footer is social infrastructure: it prevents the awkward conversation where a colleague can't pay, which would damage the bar's function as a place where status is temporarily suspended.
- **Hand-lettered** — not Meridian-displayed. This is deliberate. A printed menu could be updated remotely. A hand-lettered one means Lera stood here and wrote it. It says: this is mine.
- **No cocktails, no wine, no elaboration.** The menu matches the clientele: shift workers who want a drink, food, and to be left alone. Complexity would be pretension.
### Monologue Pairings
**Smuggler** (on entering The Last Shift, sees menu):
> Same menu. Same prices. Lera hasn't changed the stew description in three years.
*Tags: [environmental, atmospheric]. Trigger: enter_location. This is comfort. Sameness is safety.*
**Detective** (on entering The Last Shift, sees menu):
> Imported lager at twelve credits. On these wages, that's a weekly luxury. Note who orders it.
*Tags: [environmental, investigation]. Trigger: enter_location. The detective reads the menu as economic data.*
**Smuggler** (on observing Torek ordering imported lager):
> Torek's buying the good stuff again. That's three times this week.
*Tags: [npc, torek, concern]. Trigger: observe_npc. The smuggler sees financial exposure — Torek's spending beyond what his official income explains.*
**Detective** (on observing Torek ordering imported lager):
> Lintar, T. Third imported lager this rotation. Spending pattern inconsistent with pay grade.
*Tags: [npc, torek, investigation, evidence]. Trigger: observe_npc. Same observation, institutional framing. Surnames, initials, pay grade — the language of a case file.*
---
## 2. Safety Notice — The Terminal
Mounted on the wall near Scanner Bay 3. Concordat Standard official text with Krenn vernacular annotation added by a worker in marker. The notice is slightly peeling at the bottom-left corner. Nobody has replaced it in months.
### The Text
**[Official — Concordat Standard, printed]**
```
SOVA TRANSIT LOGISTICS — BAY 7-C
SCANNER BAY 3: OPERATIONAL ADVISORY
Spectral calibration drift detected (Report #ST-4471).
Maintenance scheduled. Refer non-critical cargo
to Bays 1 or 2 pending recalibration.
— Station Maintenance Division
```
**[Annotation — hand-written in marker below the notice]**
```
"scheduled" — four months ago. still waiting.
```
### Cultural Notes
- **Institutional vs. vernacular** — the two voices on this sign are the two voices of Sova. The printed notice is how the institution talks: passive voice, report numbers, procedures. The marker annotation is how the workers talk: direct, sardonic, lowercase.
- **"Pending recalibration"** is doing heavy narrative work. The calibration drift in Bay 3 is real — it produces less reliable scan results. Station maintenance hasn't fixed it because it's low-priority. The ring routes flagged containers through Bay 3 precisely because of this drift. An institutional failure becomes criminal infrastructure.
- **The peeling corner** — nobody maintains the notice because nobody cares about the notice. The institutional voice has lost authority through inaction. The hand-written annotation has more social force than the printed text.
- **Report #ST-4471** — bureaucratic specificity that makes the notice feel real and gives the detective something to query.
### Monologue Pairings
**Smuggler** (passing Scanner Bay 3):
> Bay 3 still drifting. Four months and counting. Works for us.
*Tags: [environmental, operational]. Trigger: enter_location. The smuggler reads institutional failure as operational advantage. "Works for us" — possessive, casual, no guilt.*
**Detective** (examining the safety notice):
> Report ST-4471. Four months, no resolution. Cross-reference with scan rejection rates.
*Tags: [environmental, investigation]. Trigger: observe_anomaly. The detective reads the same failure as a lead. The report number is actionable data — pull it, check which containers went through Bay 3, look for patterns.*
**Detective** (after correlating scan data — knowledge-gated):
> Bay 3 scan reliability: 73%. Every flagged container in my dataset was routed here. Not coincidence.
*Tags: [investigation, evidence, breakthrough]. Trigger: time_idle. Prerequisites: fact_id: scanner_drift_pattern, min_confidence: knows_of. This is the payoff — the safety notice becomes evidence.*
---
## 3. News Ticker Cycle — Meridian Feed at The Last Shift
Displayed on the Meridian feed screen mounted above the bar. Scrolling text, standard news format. The cycle repeats every 8-10 minutes. Nobody watches it directly — it's ambient information, absorbed peripherally. Occasionally a headline makes someone look up.
### The Cycle (6 Headlines)
```
1. KRENN PRIME SURFACE DEPOT: FREIGHT BACKLOG ENTERING THIRD DAY.
TRANSIT AUTHORITY CITES SCHEDULING DISPUTES.
2. CONCORD ASSEMBLY SESSION 1147: LATTICE STANDARDIZATION
AMENDMENT PASSES SECOND READING. IMPLEMENTATION TBD.
3. SOVA STATION: VENTILATION UPGRADE FOR SECTORS 2-4
APPROVED IN NEXT FISCAL CYCLE. TIMELINE NOT CONFIRMED.
4. MEDICAL SUPPLY ADVISORY: NEURAL INTERFACE REPLACEMENT
COMPONENTS ON 6-WEEK BACKORDER. CONTACT YOUR PROVIDER.
5. COMMISSION ADVISORY: ROUTINE COMPLIANCE ASSESSMENT
SCHEDULED FOR KRENN SYSTEM STATIONS. DATES TO FOLLOW.
6. KRENN PRIME DOCKWORKERS LEAGUE VS. ORBITAL 3 UNITED:
MATCH DAY 7. BROADCAST 19:00 MERIDIAN STANDARD.
```
### Cultural Notes
- **Headline 1 (freight backlog)** — affects every worker in the room. Backlog means overtime or schedule disruption. It's the one headline people actually respond to. Lera turns up the volume when freight news scrolls.
- **Headline 2 (lattice standardization)** — Assembly politics. Most workers ignore it. But "lattice standardization" has a chill to it: tighter standards mean tighter inspections, which means the grey market gets harder. The smuggler hears threat. The detective hears institutional support.
- **Headline 3 (ventilation upgrade)** — the universal safe topic. "Approved in next fiscal cycle" means "probably never." Workers have been complaining about ventilation for months. This headline generates eye-rolls and muttered commentary that fills conversational space.
- **Headline 4 (neural interface backorder)** — the one that matters most and says least. Neural interface replacements are essential medical supplies. A 6-week backorder on legitimate channels is exactly why the smuggling ring exists: people need these components, the legal supply chain can't deliver, and someone fills the gap. The headline is the ring's business case, printed on a news ticker.
- **Headline 5 (Commission assessment)** — "routine" is a word that means nothing and everything. Routine for the Commission. Not routine for a district that hasn't had a liaison in three months and has been operating in the gap. "Dates to follow" means: start worrying now.
- **Headline 6 (sports)** — normalcy. The match is what most people in the bar actually care about. It's the headline that makes Sova feel like a place where people live, not just a setting for a crime story.
### Monologue Pairings
**Smuggler** (headline 4 scrolls — medical backorder):
> Six weeks. Six weeks without replacement parts, and they wonder why people come to us.
*Tags: [environmental, moral, operational]. Trigger: observe_anomaly. The smuggler sees validation. The ring isn't criminal — it's necessary.*
**Detective** (headline 4 scrolls — medical backorder):
> Neural interface components on backorder. Supply gap creates demand for unlicensed alternatives. Motive.
*Tags: [environmental, investigation]. Trigger: observe_anomaly. Same headline, institutional analysis. "Motive" — the detective is building a case, not feeling sympathy.*
**Smuggler** (headline 5 scrolls — Commission assessment):
> Routine assessment. Right. Nothing routine about Commission attention when we've had three months clear.
*Tags: [environmental, concern, caution]. Trigger: observe_anomaly. Fear disguised as sarcasm. Three months without oversight was the operational window. It's closing.*
**Detective** (headline 5 scrolls — Commission assessment):
> Compliance assessment incoming. Good. Institutional pressure may loosen cooperation.
*Tags: [environmental, investigation, operational]. Trigger: observe_anomaly. The detective sees leverage. An announced inspection makes people nervous, and nervous people talk.*
---
## 4. Corridor Graffiti — Maintenance Corridors
Found at three points along Corridor B-7. The graffiti exists in layers: old maintenance worker marks (decades old, institutional), informal worker tags (years old, social), and recent ring-related marks (weeks to months old, operational). The layers tell the corridor's history.
### The Text
**Location: Near south entry (Terminal break room hatch), on the right wall**
```
[Marker, faded, ~30 years old:]
VNT-7 JUNCTION 40M →
[Scratched into the wall, ~15 years old:]
kosse was here. day 1171.
[Chalk, recent, small, low on the wall:]
—||—
```
**Location: Junction room (midpoint), on the overhead cable tray support**
```
[Marker, faded, institutional:]
CAUTION: OVERHEAD CLEARANCE 2.1M
[Paint pen, ~10 years old, on the cable tray itself:]
N.T. + someone who deserved better
```
**Location: Near ventilation hub (90m from south entry), wall niche**
```
[Scratched, old, barely legible:]
shift 3 crew '94
[Chalk, recent, deliberate — three short vertical lines:]
|||
```
### Cultural Notes
- **VNT-7 JUNCTION** — institutional remnant. This corridor used to be on the maintenance map. The directional marking is from the era when workers were dispatched here officially. It's a ghost of the corridor's legitimate past.
- **"kosse was here. day 1171."** — a maintenance worker who counted their shifts. Krenn naming convention (compact, consonant-heavy). Day 1171 is roughly 3.2 years of shift cycles. Someone who spent long enough in these corridors to mark their territory. Kosse is probably retired or transferred. The name persists.
- **"N.T. + someone who deserved better"** — a small human moment in infrastructure space. The initials could be anyone. The sentiment is universal. It humanizes the corridor — people have always come here for privacy, long before the ring did.
- **The chalk marks**`—||—` and `|||` — are ring operational markers. They're meaningless to anyone who doesn't know the system. The double-bar mark near the south entry indicates "route active." The three vertical lines near the ventilation hub indicate a count — possibly dead drop cycles, possibly something else. The ring's internal signaling is deliberately ambiguous: even if you find the marks, you can't read them without context.
- **Chalk, not marker** — the ring uses chalk because it can be wiped. Marker is permanent. The choice of medium is operational security.
- **Low on the wall** — at shin height. You'd have to be looking for it. Standing upright, your eyes pass over it. Crouching to inspect the corridor — as a detective might — you find it.
### Monologue Pairings
**Smuggler** (passing the chalk mark near south entry):
> Mark's fresh. Route's active. Renn was through here recently.
*Tags: [environmental, operational]. Trigger: enter_location. The smuggler reads the chalk like a message — because it is one. No emotional response. It's a status indicator.*
**Detective** (discovering the chalk mark near south entry):
> Chalk mark. Recent, deliberate placement, low visibility. Not maintenance notation — wrong format.
*Tags: [environmental, investigation, evidence]. Trigger: observe_anomaly. The detective notices the mark is wrong: wrong height, wrong material, wrong format for institutional use. The anomaly IS the evidence.*
**Detective** (discovering "kosse was here" scratch):
> Personal marking, years old. Workers used this corridor regularly before it dropped off the map.
*Tags: [environmental, investigation]. Trigger: observe_anomaly. The detective reads history. If workers used this corridor before, someone remembers it. Someone could still use it.*
**Smuggler** (passing "N.T. + someone who deserved better"):
> Still there. Been there longer than most of us.
*Tags: [environmental, atmospheric]. Trigger: enter_location. A moment of human recognition. The smuggler has seen this graffiti dozens of times. It's part of the corridor's texture — familiar, not investigated.*
**Detective** (finding the three chalk lines near ventilation hub — knowledge-gated):
> Three marks. Three operations since the last Commission liaison rotated out. They're counting.
*Tags: [investigation, evidence, breakthrough]. Trigger: observe_anomaly. Prerequisites: fact_id: ring_operational_timing, min_confidence: suspects. The detective connects the marks to a timeline. Three marks, three months without oversight. The graffiti becomes a logbook.*
---
## Writing Principles for Environmental Text
1. **The text exists before the player arrives.** It was written by someone for a reason that has nothing to do with the player. Write it for the character who put it there, not the character who reads it.
2. **Krenn voice is direct.** No flourishes, no unnecessary words, no corporate warmth. "No tabs. No arguments." not "We kindly request that all patrons settle their accounts at time of service."
3. **Institutional text and vernacular text coexist.** The tension between them IS the setting. The printed notice says what the institution wants. The hand-written annotation says what the workers know.
4. **Environmental text creates monologue triggers.** Every piece of readable text in the world should produce a different internal response from each character. If it doesn't, it's decoration, not world-building.
5. **Layers tell history.** Graffiti, notices, menus — they accumulate over time. A wall with one mark is a surface. A wall with three marks from three eras is a story.
6. **The player reads through their character.** The text doesn't change. The interpretation does. Design the text so both readings are valid, and neither is complete.
---
**Cross-References:**
- [Monologue Authoring Guide](monologue-guide.md) — Monologue formatting and tag reference
- [The Last Shift](../star-systems/krenn/sova/transit/the-last-shift.md) — Bar location profile
- [The Terminal](../star-systems/krenn/sova/transit/the-terminal.md) — Logistics hub profile
- [Maintenance Corridors](../star-systems/krenn/sova/transit/maintenance-corridors.md) — Corridor B-7 profile
- [Sova Transit District](../star-systems/krenn/sova/transit/index.md) — District overview
- D-016: Internal monologue as primary narrative system
- D-032: Separate monologue pools per character
- D-036: Sova Transit District as v0.1 setting
---
**Status:** Canonical
**Created:** 2026-02-13
**Updated:** 2026-02-13
@@ -1,3 +1,15 @@
---
title: "Monologue Authoring Guide"
slug: monologue-guide
category: authoring-guide
status: canonical
created: 2026-02-12
updated: 2026-02-13
tags: []
decision_refs: [D-032, D-035]
cross_refs: []
---
# Monologue and Dialogue Authoring Guide # Monologue and Dialogue Authoring Guide
How to write tagged monologue and dialogue content for The Settled Reach. Read the knowledge system docs first — this guide assumes you know what a FactId is and how RelationshipState works. How to write tagged monologue and dialogue content for The Settled Reach. Read the knowledge system docs first — this guide assumes you know what a FactId is and how RelationshipState works.
@@ -1,3 +1,23 @@
---
title: "Devra Talsen"
slug: devra
canonical_id: "npc:devra"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "THRESHOLD"
motivation: "HANDLER"
social_sites: []
entanglement: "Entangled"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Devra Talsen # Devra Talsen
**Tier 2 NPC** | Smuggling Ring + The Last Shift (Bar) | Entangled **Tier 2 NPC** | Smuggling Ring + The Last Shift (Bar) | Entangled
@@ -1,3 +1,23 @@
---
title: "Drin Rosta"
slug: drin
canonical_id: "npc:drin"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "SYSTEM"
motivation: "TURNCOAT"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Drin Rosta # Drin Rosta
**Tier 2 NPC** | Logistics Hub (The Terminal) | Mundane **Tier 2 NPC** | Logistics Hub (The Terminal) | Mundane
@@ -1,3 +1,23 @@
---
title: "Harek Valde"
slug: harek
canonical_id: "npc:harek"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "ANCHOR"
motivation: "HANDLER"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Harek Valde # Harek Valde
**Tier 2 NPC** | The Last Shift (Bar) + Logistics Hub | Mundane **Tier 2 NPC** | The Last Shift (Bar) + Logistics Hub | Mundane
@@ -1,3 +1,13 @@
---
title: "NPC Roster — Sova Transit District"
slug: npc-index
category: index
status: canonical
created: 2026-02-12
updated: 2026-02-13
tags: [v0.1]
---
# NPC Roster — Sova Transit District # NPC Roster — Sova Transit District
18 NPCs across 3 social sites (Logistics Hub, The Last Shift, Smuggling Ring). Tier 1 = full production depth (THE FRIEND), Tier 2 = working profile, Tier 3 = sketch, Off-Stage = present through mediated references only. 18 NPCs across 3 social sites (Logistics Hub, The Last Shift, Smuggling Ring). Tier 1 = full production depth (THE FRIEND), Tier 2 = working profile, Tier 3 = sketch, Off-Stage = present through mediated references only.
@@ -1,3 +1,23 @@
---
title: "Kael Davan"
slug: kael-davan
canonical_id: "npc:kael-davan"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 1
pattern: "FRIEND"
motivation: "OPERATOR"
social_sites: []
entanglement: "Entangled"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Kael Davan — THE FRIEND (Smuggler) # Kael Davan — THE FRIEND (Smuggler)
**Tier 1 Production-Level NPC** | Logistics Hub + Smuggling Ring | Entangled **Tier 1 Production-Level NPC** | Logistics Hub + Smuggling Ring | Entangled
@@ -1,3 +1,23 @@
---
title: "Lera Sessik"
slug: lera-sessik
canonical_id: "npc:lera-sessik"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "ANCHOR"
motivation: "OPERATOR"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Lera Sessik # Lera Sessik
**Tier 2 NPC** | The Last Shift (Bar) | Mundane **Tier 2 NPC** | The Last Shift (Bar) | Mundane
@@ -1,3 +1,23 @@
---
title: "Maret Korr"
slug: maret-korr
canonical_id: "npc:maret-korr"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "WITNESS"
motivation: "SKEPTIC"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Maret Korr # Maret Korr
**Tier 2 NPC** | Logistics Hub (The Terminal) | Mundane **Tier 2 NPC** | Logistics Hub (The Terminal) | Mundane
@@ -1,3 +1,23 @@
---
title: "Naia Tamm"
slug: naia-tamm
canonical_id: "npc:naia-tamm"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "MIRROR"
motivation: "CIVILIAN"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Naia Tamm # Naia Tamm
**Tier 2 NPC** | The Last Shift (Bar) | Mundane **Tier 2 NPC** | The Last Shift (Bar) | Mundane
@@ -1,3 +1,23 @@
---
title: "Nils Davan"
slug: nils-davan
canonical_id: "npc:nils-davan"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 0
pattern: "GHOST"
motivation: "HANDLER"
social_sites: []
entanglement: "Entangled"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Nils Davan # Nils Davan
**Off-Stage NPC** | Smuggling Ring | Entangled **Off-Stage NPC** | Smuggling Ring | Entangled
@@ -1,3 +1,23 @@
---
title: "Olin Tavren"
slug: olin
canonical_id: "npc:olin"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 3
pattern: "CATALYST"
motivation: "CIVILIAN"
social_sites: []
entanglement: "Flat"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Olin Tavren # Olin Tavren
**Tier 3 NPC** | The Last Shift (Bar) | Flat **Tier 3 NPC** | The Last Shift (Bar) | Flat
@@ -1,3 +1,23 @@
---
title: "Pell Torssen"
slug: pell
canonical_id: "npc:pell"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "CATALYST"
motivation: "TURNCOAT"
social_sites: []
entanglement: "Entangled"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Pell Torssen # Pell Torssen
**Tier 2 NPC** | Smuggling Ring | Entangled **Tier 2 NPC** | Smuggling Ring | Entangled
@@ -1,3 +1,23 @@
---
title: "Renn Harsk"
slug: renn
canonical_id: "npc:renn"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "THRESHOLD"
motivation: "OPERATOR"
social_sites: []
entanglement: "Entangled"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Renn Harsk # Renn Harsk
**Tier 2 NPC** | Smuggling Ring + Logistics Hub | Entangled **Tier 2 NPC** | Smuggling Ring + Logistics Hub | Entangled
@@ -1,3 +1,23 @@
---
title: "Resha Neven"
slug: resha
canonical_id: "npc:resha"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "CATALYST"
motivation: "CIVILIAN"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Resha Neven # Resha Neven
**Tier 2 NPC** | Logistics Hub (The Terminal) | Mundane **Tier 2 NPC** | Logistics Hub (The Terminal) | Mundane
@@ -1,3 +1,23 @@
---
title: "Sabel Hersk"
slug: sabel
canonical_id: "npc:sabel"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 3
pattern: "GHOST"
motivation: "OPERATOR"
social_sites: []
entanglement: "Flat"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Sabel Hersk # Sabel Hersk
**Tier 3 NPC** | Smuggling Ring (Off-Station) | Flat **Tier 3 NPC** | Smuggling Ring (Off-Station) | Flat
@@ -1,3 +1,23 @@
---
title: "Sera Venn"
slug: sera-venn
canonical_id: "npc:sera-venn"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 1
pattern: "FRIEND"
motivation: "WITNESS"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Sera Venn — THE FRIEND (Detective) # Sera Venn — THE FRIEND (Detective)
**Tier 1 Production-Level NPC** | The Last Shift (Bar) + Commission | Mundane **Tier 1 Production-Level NPC** | The Last Shift (Bar) + Commission | Mundane
@@ -1,3 +1,23 @@
---
title: "Sess Kolvur"
slug: sess
canonical_id: "npc:sess"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 3
pattern: "ANCHOR"
motivation: "CIVILIAN"
social_sites: []
entanglement: "Flat"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Sess Kolvur # Sess Kolvur
**Tier 3 NPC** | The Last Shift (Bar) | Flat **Tier 3 NPC** | The Last Shift (Bar) | Flat
@@ -1,3 +1,23 @@
---
title: "Tav Merik"
slug: tav
canonical_id: "npc:tav"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 3
pattern: "SYSTEM"
motivation: "CIVILIAN"
social_sites: []
entanglement: "Flat"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Tav Merik # Tav Merik
**Tier 3 NPC** | Smuggling Ring + Logistics Hub | Flat **Tier 3 NPC** | Smuggling Ring + Logistics Hub | Flat
@@ -1,3 +1,23 @@
---
title: "Torek Lintar"
slug: torek-lintar
canonical_id: "npc:torek-lintar"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "CATALYST"
motivation: "CIVILIAN"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Torek Lintar # Torek Lintar
**Tier 2 NPC** | The Last Shift (Bar) + Logistics Hub | Mundane **Tier 2 NPC** | The Last Shift (Bar) + Logistics Hub | Mundane
@@ -1,3 +1,23 @@
---
title: "Arvo Voss"
slug: voss
canonical_id: "npc:voss"
category: character
status: canonical
created: 2026-02-12
updated: 2026-02-13
tier: 2
pattern: "SYSTEM"
motivation: "OPERATOR"
social_sites: []
entanglement: "Mundane"
triangles: []
home_district: transit
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Arvo Voss # Arvo Voss
**Tier 2 NPC** | Logistics Hub (The Terminal) | Mundane **Tier 2 NPC** | Logistics Hub (The Terminal) | Mundane
View File
@@ -1,3 +1,16 @@
---
title: "Entity Knowledge Attributes"
slug: entity-attributes
category: concept
status: canonical
created: 2026-02-12
updated: 2026-02-13
concept_type: mechanical
tags: []
decision_refs: [D-041]
cross_refs: []
---
# Entity Knowledge Attributes # Entity Knowledge Attributes
Canonical keys for the `EntityKnowledge.known_attributes` BTreeMap (defined in `server/src/knowledge/types.rs`). These keys structure what one entity knows about another. Canonical keys for the `EntityKnowledge.known_attributes` BTreeMap (defined in `server/src/knowledge/types.rs`). These keys structure what one entity knows about another.
@@ -1,3 +1,16 @@
---
title: "Knowledge Fact Catalog"
slug: fact-catalog
category: concept
status: canonical
created: 2026-02-12
updated: 2026-02-13
concept_type: mechanical
tags: []
decision_refs: [D-041]
cross_refs: []
---
# Knowledge Fact Catalog # Knowledge Fact Catalog
Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.topic` format defined in `server/src/knowledge/types.rs`. Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.topic` format defined in `server/src/knowledge/types.rs`.
@@ -6,6 +19,7 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
- **FactId**: String identifier (e.g., `"contraband.ring_exists"`) - **FactId**: String identifier (e.g., `"contraband.ring_exists"`)
- **Progression**: Text descriptions at each KnowledgeConfidence level - **Progression**: Text descriptions at each KnowledgeConfidence level
- **Smuggler Perspective**: Where the smuggler's knowledge path differs from the detective's, smuggler-voiced progression text is provided with starting confidence level
- **Mechanical Purpose**: What this fact gates in dialogue, monologue, or investigation - **Mechanical Purpose**: What this fact gates in dialogue, monologue, or investigation
--- ---
@@ -17,10 +31,14 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Suspects**: "Something's going on with the cargo schedules. Too many off-manifest deliveries." **Suspects**: "Something's going on with the cargo schedules. Too many off-manifest deliveries."
**KnowsOf**: "There's a smuggling operation running through the logistics hub." **KnowsOf**: "There's a smuggling operation running through the logistics hub."
**KnowsDetails**: "The ring moves unlicensed lattice components during shift transitions. Voss manages the timing." **KnowsDetails**: "The ring moves unlicensed lattice components during shift transitions. Voss manages the timing."
**Direct**: N/A (abstract knowledge never directly observed) **Direct**: N/A (abstract knowledge -- never directly observed)
**Mechanical Purpose**: Gates investigation dialogue trees. Required for ring-specific monologue. The detective starts at Suspects and escalates. The smuggler (if playing the ring member path) starts at KnowsDetails. **Mechanical Purpose**: Gates investigation dialogue trees. Required for ring-specific monologue. The detective starts at Suspects and escalates. The smuggler (if playing the ring member path) starts at KnowsDetails.
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "Our operation. Nils runs coordination, Voss covers the schedule, Kael and I handle cargo. Two years now. Runs like clockwork when everyone hits their marks."
--- ---
### `contraband.lattice_components` ### `contraband.lattice_components`
@@ -32,28 +50,44 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Contraband identification. Detective needs KnowsOf to correctly interpret manifest discrepancies. Smuggler needs KnowsDetails to handle cargo safely. **Mechanical Purpose**: Contraband identification. Detective needs KnowsOf to correctly interpret manifest discrepancies. Smuggler needs KnowsDetails to handle cargo safely.
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "Lattice mods. Aftermarket stuff, no Commission cert. Medical replacements too, from the Syndic pipeline. I don't open the sealed ones -- I route them."
**Direct**: "This crate right here. No cert stamps, twice the declared mass. Standard shipment."
--- ---
### `contraband.medical_grade` ### `contraband.medical_grade`
**Suspects**: "Some of this cargo doesn't feel like luxury goods." **Suspects**: "Some of this cargo doesn't feel like luxury goods."
**KnowsOf**: "Medical-grade lattice replacements. For people whose lattices are degrading and who can't afford Syndic pricing." **KnowsOf**: "Medical-grade lattice replacements. For people whose lattices are degrading and who can't afford Syndic pricing."
**KnowsDetails**: "The ring moves medical replacements for people locked out of the institutional system. It's not just profit it's healthcare." **KnowsDetails**: "The ring moves medical replacements for people locked out of the institutional system. It's not just profit -- it's healthcare."
**Direct**: N/A (conceptual understanding) **Direct**: N/A (conceptual understanding)
**Mechanical Purpose**: Moral complexity gate. Smuggler monologue shifts tone when this reaches KnowsDetails. Detective dialogue with humanitarian-focused NPCs requires KnowsOf. **Mechanical Purpose**: Moral complexity gate. Smuggler monologue shifts tone when this reaches KnowsDetails. Detective dialogue with humanitarian-focused NPCs requires KnowsOf.
**Smuggler Starting Level**: KnowsOf
**Smuggler Perspective**:
**KnowsOf**: "Some of this cargo's for people who can't get replacements through the Syndics. Not just luxury mods. Real need."
**KnowsDetails**: "People whose lattices are failing. Months-long wait through legitimate channels, if they can even afford it. We're not running guns -- we're running healthcare the system won't provide."
--- ---
### `contraband.severance_tech` ### `contraband.severance_tech`
**Suspects**: "Sealed containers Nils won't discuss. Heavier than lattice components." **Suspects**: "Sealed containers Nils won't discuss. Heavier than lattice components."
**KnowsOf**: "Severance equipment. Counter-surveillance tech. Illegal across most of the Reach." **KnowsOf**: "Severance equipment. Counter-surveillance tech. Illegal across most of the Reach."
**KnowsDetails**: "Guardians of Severance supply chain. This isn't local it's connected to something bigger." **KnowsDetails**: "Guardians of Severance supply chain. This isn't local -- it's connected to something bigger."
**Direct**: N/A (not directly visible in v0.1) **Direct**: N/A (not directly visible in v0.1)
**Mechanical Purpose**: Contamination seed for storyteller expansion. The thing that makes the smuggler question how deep the ring goes. **Mechanical Purpose**: Contamination seed for storyteller expansion. The thing that makes the smuggler question how deep the ring goes.
**Smuggler Starting Level**: Suspects
**Smuggler Perspective**:
**Suspects**: "Sealed containers Nils won't talk about. Different markings, heavier than lattice mods. He said don't ask. So I don't ask."
**KnowsOf**: "Severance gear. Counter-surveillance equipment. Whoever Nils is supplying, it's not just local lattice demand."
**KnowsDetails**: "Guardians of Severance supply chain. Nils has been using us as a distribution point for something I didn't sign up for. This is bigger than Sova."
--- ---
### `contraband.supply_chain` ### `contraband.supply_chain`
@@ -65,6 +99,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Investigation depth. Detective at KnowsDetails can map the full chain. Smuggler at KnowsDetails understands their position in the network. **Mechanical Purpose**: Investigation depth. Detective at KnowsDetails can map the full chain. Smuggler at KnowsDetails understands their position in the network.
**Smuggler Starting Level**: KnowsOf
**Smuggler Perspective**:
**KnowsOf**: "Cargo comes through Sabel, off-station. Sabel handles the incoming shipments, we handle local. What happens upstream, I don't ask."
**KnowsDetails**: "Syndic-adjacent manufacturers, freight networks, Sabel, then Nils or Devra, then us. I'm a link in a chain I can't see the end of."
--- ---
## Location Facts ## Location Facts
@@ -78,6 +117,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Spatial knowledge. Required for investigation progression (detective) and operational planning (smuggler). Direct confidence gates monologue about current surroundings. **Mechanical Purpose**: Spatial knowledge. Required for investigation progression (detective) and operational planning (smuggler). Direct confidence gates monologue about current surroundings.
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "B-7. Between the old and new panels. Service hatch from the break room gets you in. No Meridian, no cameras. Our corridor."
**Direct**: "In B-7 right now. Stale air, maintenance lighting. The usual."
--- ---
### `location.smuggling_route` ### `location.smuggling_route`
@@ -89,17 +133,27 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Investigation mechanics. Detective needs KnowsOf to predict NPC movements. Smuggler needs KnowsDetails for operational participation. **Mechanical Purpose**: Investigation mechanics. Detective needs KnowsOf to predict NPC movements. Smuggler needs KnowsDetails for operational participation.
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "Freight bay to service corridor to temp storage to Lera's back room. Twenty-minute window during shift change. The route runs itself when everyone hits their marks."
**Direct**: "Watching the handoff. Renn's moving through the service hatch now. Clean."
--- ---
### `location.surveillance_gaps` ### `location.surveillance_gaps`
**Suspects**: "Some areas feel less monitored than others." **Suspects**: "Some areas feel less monitored than others."
**KnowsOf**: "Meridian coverage degrades in older sections. Maintenance corridors have minimal surveillance." **KnowsOf**: "Meridian coverage degrades in older sections. Maintenance corridors have minimal surveillance."
**KnowsDetails**: "Corridor B-7, break room service hatch, bar back room all Meridian dead spots. The ring exploits these systematically." **KnowsDetails**: "Corridor B-7, break room service hatch, bar back room -- all Meridian dead spots. The ring exploits these systematically."
**Direct**: "Checking my lattice overlay now. Zero Meridian signal in this section." **Direct**: "Checking my lattice overlay now. Zero Meridian signal in this section."
**Mechanical Purpose**: Stealth and observation mechanics. Detective's augmented lattice can detect coverage gaps (requires KnowsOf). Smuggler uses gaps operationally (requires KnowsDetails). **Mechanical Purpose**: Stealth and observation mechanics. Detective's augmented lattice can detect coverage gaps (requires KnowsOf). Smuggler uses gaps operationally (requires KnowsDetails).
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "B-7, the break room hatch, Lera's back room -- all dead spots. Old construction left the gaps. We just learned the map."
**Direct**: "No signal here. Same as always."
--- ---
### `location.dead_drop_location` ### `location.dead_drop_location`
@@ -111,6 +165,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Discovery mechanic. Detective can discover through observation (Suspects -> KnowsOf). Smuggler knows from background (starts at KnowsDetails). **Mechanical Purpose**: Discovery mechanic. Detective can discover through observation (Suspects -> KnowsOf). Smuggler knows from background (starts at KnowsDetails).
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "Locker 47. Break room. Registered to someone who left a year and a half ago. Small items, messages, keys. Don't use it for actual cargo."
**Direct**: "47's open. Sealed packet. Not mine -- someone else has been using it."
--- ---
## Investigation Facts ## Investigation Facts
@@ -120,10 +179,14 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Suspects**: "Cargo manifests have inconsistencies. Weight doesn't match volume." **Suspects**: "Cargo manifests have inconsistencies. Weight doesn't match volume."
**KnowsOf**: "Systematic manifest doctoring. Someone with freight scheduler access is altering records." **KnowsOf**: "Systematic manifest doctoring. Someone with freight scheduler access is altering records."
**KnowsDetails**: "Maret Korr processes manifests. She's noticed the discrepancies but hasn't reported them. She's either complicit or terrified." **KnowsDetails**: "Maret Korr processes manifests. She's noticed the discrepancies but hasn't reported them. She's either complicit or terrified."
**Direct**: "Comparing the manifest right now. Container 4471 logged weight 240kg, actual weight closer to 310kg." **Direct**: "Comparing the manifest right now. Container 4471 -- logged weight 240kg, actual weight closer to 310kg."
**Mechanical Purpose**: Core investigation mechanic. Detective's analytical lattice flags discrepancies at Suspects. Full understanding requires KnowsDetails. Smuggler knows Maret's position from background. **Mechanical Purpose**: Core investigation mechanic. Detective's analytical lattice flags discrepancies at Suspects. Full understanding requires KnowsDetails. Smuggler knows Maret's position from background.
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "Maret handles the manifests. She adjusts the numbers for us -- or at least doesn't flag them. Whether she's on board or just scared, the result's the same."
--- ---
### `investigation.shift_mismatch` ### `investigation.shift_mismatch`
@@ -131,10 +194,14 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Suspects**: "Night shift schedules don't align with freight volume." **Suspects**: "Night shift schedules don't align with freight volume."
**KnowsOf**: "Voss adjusts shift schedules to create coverage gaps. Deliberate understaffing during high-risk windows." **KnowsOf**: "Voss adjusts shift schedules to create coverage gaps. Deliberate understaffing during high-risk windows."
**KnowsDetails**: "Shift mismatches occur every third rotation. Coincides exactly with off-station shipment arrivals. Voss takes a cut." **KnowsDetails**: "Shift mismatches occur every third rotation. Coincides exactly with off-station shipment arrivals. Voss takes a cut."
**Direct**: "Checking the current schedule. Night shift is short two workers again." **Direct**: "Checking the current schedule. Night shift is short two workers -- again."
**Mechanical Purpose**: Pattern recognition. Detective needs KnowsOf to connect schedule to smuggling. Smuggler knows the pattern operationally. **Mechanical Purpose**: Pattern recognition. Detective needs KnowsOf to connect schedule to smuggling. Smuggler knows the pattern operationally.
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "Voss thins the rotation every third cycle. Two short on nights, right when Sabel's shipment comes in. Not a coincidence -- it's the plan. Voss takes his cut."
--- ---
### `investigation.cargo_anomaly` ### `investigation.cargo_anomaly`
@@ -146,16 +213,20 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Observation-based discovery. Detective builds case from Suspects upward. Smuggler knows the workflow (starts KnowsDetails). **Mechanical Purpose**: Observation-based discovery. Detective builds case from Suspects upward. Smuggler knows the workflow (starts KnowsDetails).
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "Container arrives, sits in temp during A shift, gets repackaged during B transition, moves out during C startup. Nils handles the timing. I handle the routing. Clockwork."
--- ---
### `investigation.evidence_collected` ### `investigation.evidence_collected`
**Suspects**: N/A (binary fact you either have evidence or you don't) **Suspects**: N/A (binary fact -- you either have evidence or you don't)
**KnowsOf**: "I have documented manifest discrepancies, shift schedule anomalies, and witness testimony from Drin." **KnowsOf**: "I have documented manifest discrepancies, shift schedule anomalies, and witness testimony from Drin."
**KnowsDetails**: "Full case file: manifest logs, Drin's testimony under pressure, Maret's reluctant cooperation, surveillance footage from observation gallery showing Corridor B-7 access." **KnowsDetails**: "Full case file: manifest logs, Drin's testimony under pressure, Maret's reluctant cooperation, surveillance footage from observation gallery showing Corridor B-7 access."
**Direct**: N/A (abstract accumulation) **Direct**: N/A (abstract accumulation)
**Mechanical Purpose**: Investigation state tracker. Gates confrontation dialogue. Detective-specific smuggler doesn't collect evidence against themselves. **Mechanical Purpose**: Investigation state tracker. Gates confrontation dialogue. Detective-specific -- smuggler doesn't collect evidence against themselves. (Smuggler equivalent: `progress.operation_compromised`.)
--- ---
@@ -170,17 +241,28 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Moral framing. Smuggler at KnowsDetails has ideological justification. Detective at KnowsDetails understands why the ring has community support. **Mechanical Purpose**: Moral framing. Smuggler at KnowsDetails has ideological justification. Detective at KnowsDetails understands why the ring has community support.
**Smuggler Starting Level**: KnowsOf
**Smuggler Perspective**:
**KnowsOf**: "Commission cert costs more than most of us make in six months. Wait times are a joke. Of course people go aftermarket."
**KnowsDetails**: "The system's built to fail people like us. Medical replacements behind a six-month queue. Fines for mods you can't afford to get certified. The ring exists because the Commission made it necessary."
--- ---
### `world.syndic_supply_chain` ### `world.syndic_supply_chain`
**Suspects**: "The cargo originates from Syndic-controlled systems." **Suspects**: "The cargo originates from Syndic-controlled systems."
**KnowsOf**: "Syndics manufacture medical-grade lattice components. Diverted shipments end up on the black market." **KnowsOf**: "Syndics manufacture medical-grade lattice components. Diverted shipments end up on the black market."
**KnowsDetails**: "Specific Syndic: unclear, but the serial number patterns suggest two sources. The ring doesn't control the supply chain they're downstream distributors." **KnowsDetails**: "Specific Syndic: unclear, but the serial number patterns suggest two sources. The ring doesn't control the supply chain -- they're downstream distributors."
**Direct**: N/A (network knowledge) **Direct**: N/A (network knowledge)
**Mechanical Purpose**: Political context. Detective at KnowsDetails realizes the ring is small-scale. Smuggler at KnowsDetails understands their position in the larger economy. **Mechanical Purpose**: Political context. Detective at KnowsDetails realizes the ring is small-scale. Smuggler at KnowsDetails understands their position in the larger economy.
**Smuggler Starting Level**: Suspects
**Smuggler Perspective**:
**Suspects**: "Cargo's not local. Different seals, different packaging. Someone manufacturing off-station."
**KnowsOf**: "Syndic supply chain. Medical-grade lattice parts diverted from legitimate production. Sabel's our connection point."
**KnowsDetails**: "Two sources, based on the serial patterns. The Syndics aren't partners -- they're wholesalers. We're downstream, and we're replaceable."
--- ---
### `world.sova_district_layout` ### `world.sova_district_layout`
@@ -192,6 +274,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Navigation and investigation. Detective needs KnowsDetails to find hidden spaces. Smuggler starts with KnowsOf (knows layout from living here). **Mechanical Purpose**: Navigation and investigation. Detective needs KnowsDetails to find hidden spaces. Smuggler starts with KnowsOf (knows layout from living here).
**Smuggler Starting Level**: KnowsOf
**Smuggler Perspective**:
**KnowsOf**: "Forty-year-old prefab, retrofitted to hell. The hub, Lera's, residential blocks. I know every corridor by feel. Meridian's patchy in the old sections."
**KnowsDetails**: "Hidden spaces between old walls in Section 3. Service corridors from original construction, not on any current map. The ring uses what the builders left behind."
--- ---
### `world.shift_schedule` ### `world.shift_schedule`
@@ -203,6 +290,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Temporal mechanics. Required for NPC routine prediction and investigation timing. Smuggler starts KnowsDetails. Detective learns through observation. **Mechanical Purpose**: Temporal mechanics. Required for NPC routine prediction and investigation timing. Smuggler starts KnowsDetails. Detective learns through observation.
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "A shift: 06:00 to 14:00. B shift: 14:00 to 22:00. C shift: 22:00 to 06:00. Thirty-minute transitions. That's when the oversight thins and the route opens. Voss keeps it thin."
**Direct**: "Transition's active. Twenty minutes of open corridor. Time to move."
--- ---
## Relationship Facts ## Relationship Facts
@@ -216,6 +308,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Social knowledge. Detective builds this through investigation. Smuggler knows from shared membership (if on that path) or observation. **Mechanical Purpose**: Social knowledge. Detective builds this through investigation. Smuggler knows from shared membership (if on that path) or observation.
**Smuggler Starting Level**: KnowsDetails
**Smuggler Perspective**:
**KnowsDetails**: "Nils coordinates from off-site. Devra handles messages. Voss covers the schedule. Kael and I handle cargo. Renn's the courier. Lera runs the handoff point. Pell's been shaky lately -- that worries me."
**Direct**: "Watching Kael work a shipment. We've done this a hundred times. Smooth."
--- ---
### `relationship.kael_naia_connection` ### `relationship.kael_naia_connection`
@@ -227,6 +324,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Emotional leverage. Detective can use Naia as pressure point. Smuggler (if Kael's friend) must protect Naia from knowledge. **Mechanical Purpose**: Emotional leverage. Detective can use Naia as pressure point. Smuggler (if Kael's friend) must protect Naia from knowledge.
**Smuggler Starting Level**: KnowsOf
**Smuggler Perspective**:
**KnowsOf**: "Naia's Kael's partner. Good person. Worries about him working late. Doesn't know about the ring -- at least that's what Kael says."
**KnowsDetails**: "Naia's been talking to Sera. Sera's Commission. If Naia shares too much and Sera connects the dots, Kael's problem becomes everyone's problem."
--- ---
### `relationship.trust_network` ### `relationship.trust_network`
@@ -238,6 +340,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Social manipulation mechanics. Detective at KnowsDetails can exploit trust fractures. Smuggler at KnowsDetails knows whom to protect. **Mechanical Purpose**: Social manipulation mechanics. Detective at KnowsDetails can exploit trust fractures. Smuggler at KnowsDetails knows whom to protect.
**Smuggler Starting Level**: KnowsOf
**Smuggler Perspective**:
**KnowsOf**: "Kael trusts Nils -- blood. Lera's reliable, keeps her mouth shut. Drin's compromised somehow. Voss is solid as long as the money flows."
**KnowsDetails**: "Full picture: Kael to Nils is blood. Kael to Naia is heart. Naia to Sera is friendship. Drin owes Harek. Voss follows whoever's paying. Pull one thread, the whole thing comes apart."
--- ---
### `relationship.faction_allegiance` ### `relationship.faction_allegiance`
@@ -249,6 +356,11 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**Mechanical Purpose**: Access tier logic. Explains why NPCs treat characters differently. Detective at KnowsDetails understands institutional barriers. **Mechanical Purpose**: Access tier logic. Explains why NPCs treat characters differently. Detective at KnowsDetails understands institutional barriers.
**Smuggler Starting Level**: KnowsOf
**Smuggler Perspective**:
**KnowsOf**: "Sera's Commission. Torek's Commission-adjacent but lives here, so who knows where he really stands. The new investigator is Commission, full stop. Everyone else is us or civilian."
**KnowsDetails**: "Lines aren't simple. Drin's civilian but compromised. Maret's civilian but knows too much. The detective is Commission sent to investigate. Commission versus ring versus people caught in between -- and nobody gets to be just one thing."
--- ---
## Progress Facts (Arc State Tracking) ## Progress Facts (Arc State Tracking)
@@ -266,7 +378,7 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
### `progress.active_investigation` ### `progress.active_investigation`
**Suspects**: N/A (binary investigation is active or it isn't) **Suspects**: N/A (binary -- investigation is active or it isn't)
**KnowsOf**: "I'm building a case. Evidence collected, witnesses identified, patterns mapped." **KnowsOf**: "I'm building a case. Evidence collected, witnesses identified, patterns mapped."
**KnowsDetails**: "Case file: manifest logs, Drin testimony, Maret's reluctant cooperation, surveillance data, NPC behavioral analysis. Ready to escalate." **KnowsDetails**: "Case file: manifest logs, Drin testimony, Maret's reluctant cooperation, surveillance data, NPC behavioral analysis. Ready to escalate."
**Direct**: N/A (meta-knowledge) **Direct**: N/A (meta-knowledge)
@@ -282,7 +394,7 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
**KnowsDetails**: "Full case built. Can confront the ring, turn an informant, or escalate to Commission enforcement." **KnowsDetails**: "Full case built. Can confront the ring, turn an informant, or escalate to Commission enforcement."
**Direct**: N/A (meta-knowledge) **Direct**: N/A (meta-knowledge)
**Mechanical Purpose**: Detective endgame gate. Smuggler equivalent: `progress.operation_compromised` (not listed here — detective-specific arc). **Mechanical Purpose**: Detective endgame gate. (Smuggler equivalent: `progress.operation_compromised`.)
--- ---
@@ -297,15 +409,88 @@ Canonical FactIds for the v0.1 vertical slice. All facts follow the `category.to
--- ---
## Smuggler-Specific Progress Facts
These facts track the smuggler's operational arc. They are the smuggler's equivalent of the detective's investigation progress facts.
### `progress.operation_compromised`
**Suspects**: "Something feels wrong today. Voss is tenser than usual. Kael's distracted."
**KnowsOf**: "There's pressure on the ring. Someone's asking questions about manifests. The Commission presence isn't routine."
**KnowsDetails**: "The detective isn't here for compliance review. They're building a case. Maret's nervous, Drin might crack, and Kael's doing something unauthorized that makes everything worse."
**Direct**: N/A (meta-knowledge)
**Mechanical Purpose**: Smuggler arc state. Gates operational monologue, defensive decision-making, and ring NPC dialogue. The smuggler's analog to `progress.initial_suspicion` + `progress.active_investigation`. Escalation triggers: detective asking questions about manifests, ring members reporting close calls, Kael's behavioral shift, Maret's visible anxiety.
**Discoverable by**: smuggler only.
---
### `progress.cover_threatened`
**Suspects**: "That was a close call. The detective looked at me a beat too long."
**KnowsOf**: "I'm on someone's radar. The detective, or Torek, or both. Need to be more careful."
**KnowsDetails**: "They know. Maybe not everything, but enough. My routine's being watched. My associates flagged. My cargo containers noted."
**Direct**: N/A (meta-knowledge)
**Mechanical Purpose**: Smuggler cover integrity tracker. Gates paranoia monologue, behavioral adaptation (the smuggler starts changing their own routine to avoid tells), and access tier shifts with ring members. When cover_threatened reaches KnowsDetails, the ring may start limiting the smuggler's access to operational information -- the insider access tier starts eroding from the smuggler's own side.
**Discoverable by**: smuggler only.
---
### `progress.detective_tracking`
**Suspects**: "New Commission liaison. Showed up a few days ago. Voss mentioned it."
**KnowsOf**: "The detective is investigating freight irregularities. They've been requesting manifests, talking to Maret and Drin. This isn't routine."
**KnowsDetails**: "The detective has evidence. Don't know how much, but enough to make Maret sweat and Drin avoid eye contact. They're close."
**Direct**: N/A (meta-knowledge)
**Mechanical Purpose**: Smuggler's tracking of the detective's investigation. Inverse of the detective's evidence tracking. The smuggler's monologue shifts from operational confidence to defensive awareness as this fact escalates. Gates ring-related dialogue: at KnowsOf, ring members start discussing countermeasures; at KnowsDetails, Nils may order the smuggler to change routines or go dark.
**Discoverable by**: smuggler only.
---
## Usage Notes ## Usage Notes
- **FactId strings** must match exactly. `"contraband.ring_exists"` not `"contraband.ring_exist"` or `"Ring Exists"`. - **FactId strings** must match exactly. `"contraband.ring_exists"` not `"contraband.ring_exist"` or `"Ring Exists"`.
- **Confidence levels** are ordered: Suspects < KnowsOf < KnowsDetails < Direct. Use `KnowledgeConfidence::decayed()` for time-based degradation. - **Confidence levels** are ordered: Suspects < KnowsOf < KnowsDetails < Direct. Use `KnowledgeConfidence::decayed()` for time-based degradation.
- **Direct confidence** is perception-system-managed. Content authors rarely set this manually it's automatically assigned when an entity/location is in the observer's LOS. - **Direct confidence** is perception-system-managed. Content authors rarely set this manually -- it's automatically assigned when an entity/location is in the observer's LOS.
- **Abstract facts** (e.g., `contraband.ring_exists`, `world.commission_regulations`) never reach Direct they're conceptual, not observable. - **Abstract facts** (e.g., `contraband.ring_exists`, `world.commission_regulations`) never reach Direct -- they're conceptual, not observable.
- **Spatial facts** (e.g., `location.corridor_b7_restricted`) can reach Direct when the observer is physically present. - **Spatial facts** (e.g., `location.corridor_b7_restricted`) can reach Direct when the observer is physically present.
- **Progression text** is for content authoring reference, not runtime display. Monologue lines reference these facts as prerequisites; they don't display the progression text directly. - **Progression text** is for content authoring reference, not runtime display. Monologue lines reference these facts as prerequisites; they don't display the progression text directly.
- **Smuggler perspective text** follows the smuggler voice register (see [Smuggler Voice Card](../../docs/design/smuggler-voice-card.md)): fragments, first names, feeling-first, concrete, operational. Where the detective discovers facts through investigation, the smuggler often starts with operational knowledge and discovers threats to the operation.
### Smuggler Starting Level Summary
| FactId | Smuggler Start | Detective Start | Notes |
|--------|---------------|-----------------|-------|
| `contraband.ring_exists` | KnowsDetails | Suspects | Insider knowledge |
| `contraband.lattice_components` | KnowsDetails | Suspects | Handles the cargo |
| `contraband.medical_grade` | KnowsOf | Suspects | Knows the cargo, reckons with meaning later |
| `contraband.severance_tech` | Suspects | Suspects | Nils won't discuss -- both characters discover |
| `contraband.supply_chain` | KnowsOf | Suspects | Knows Sabel, not full upstream |
| `location.corridor_b7_restricted` | KnowsDetails | Suspects | Uses it regularly |
| `location.smuggling_route` | KnowsDetails | Suspects | Works the route |
| `location.surveillance_gaps` | KnowsDetails | Suspects | Knows them operationally |
| `location.dead_drop_location` | KnowsDetails | Suspects | Uses Locker 47 |
| `investigation.manifest_discrepancy` | KnowsDetails | Suspects | Creates the discrepancies |
| `investigation.shift_mismatch` | KnowsDetails | Suspects | Part of the operation |
| `investigation.cargo_anomaly` | KnowsDetails | Suspects | Knows the workflow |
| `investigation.evidence_collected` | N/A | Suspects | Detective-only |
| `world.commission_regulations` | KnowsOf | Suspects | Lives under them |
| `world.syndic_supply_chain` | Suspects | Suspects | Knows cargo's off-station, not source |
| `world.sova_district_layout` | KnowsOf | Suspects | Born here, knows lived layout |
| `world.shift_schedule` | KnowsDetails | Suspects | Works the shifts |
| `relationship.ring_membership` | KnowsDetails | Suspects | Is a member |
| `relationship.kael_naia_connection` | KnowsOf | Suspects | Knows Kael's partner through Kael |
| `relationship.trust_network` | KnowsOf | Suspects | Knows who's who from living there |
| `relationship.faction_allegiance` | KnowsOf | Suspects | Knows the social landscape |
| `progress.operation_compromised` | Suspects | N/A | Smuggler-only arc state |
| `progress.cover_threatened` | Suspects | N/A | Smuggler-only arc state |
| `progress.detective_tracking` | Suspects | N/A | Smuggler-only -- tracking the investigator |
--- ---
**Total FactIds**: 24 (5 contraband, 4 location, 4 investigation, 4 world, 4 relationship, 4 progress). Sufficient for v0.1 vertical slice. Expandable by adding new categories or topics within existing categories. **Total FactIds**: 27 (5 contraband, 4 location, 4 investigation, 4 world, 4 relationship, 3 detective progress, 3 smuggler progress). 21 existing facts received smuggler-perspective text. 3 new smuggler-specific progress facts added. Sufficient for v0.1 vertical slice. Expandable by adding new categories or topics within existing categories.
@@ -1,3 +1,16 @@
---
title: "Relationship States and Transitions"
slug: relationship-states
category: concept
status: canonical
created: 2026-02-12
updated: 2026-02-13
concept_type: mechanical
tags: []
decision_refs: [D-041]
cross_refs: []
---
# Relationship States and Transitions # Relationship States and Transitions
How `RelationshipState` (defined in `server/src/knowledge/types.rs`) evolves during gameplay, with specific patterns for THE FRIEND contradictions and KnowledgeState integration. How `RelationshipState` (defined in `server/src/knowledge/types.rs`) evolves during gameplay, with specific patterns for THE FRIEND contradictions and KnowledgeState integration.
@@ -1,3 +1,15 @@
---
title: "Lattice Components"
slug: lattice-components
category: contraband
status: canonical
created: 2026-02-12
updated: 2026-02-13
risk_level: moderate
decision_refs: [D-037]
cross_refs: []
---
# Lattice Components (Contraband) # Lattice Components (Contraband)
**Type:** Primary Contraband **Type:** Primary Contraband
@@ -1,3 +1,15 @@
---
title: "Medical-Grade Replacements"
slug: medical-grade-replacements
category: contraband
status: canonical
created: 2026-02-12
updated: 2026-02-13
risk_level: moderate
decision_refs: [D-037]
cross_refs: []
---
# Medical-Grade Replacements (Contraband) # Medical-Grade Replacements (Contraband)
**Type:** Secondary Contraband **Type:** Secondary Contraband
@@ -1,3 +1,15 @@
---
title: "Severance Equipment"
slug: severance-equipment
category: contraband
status: canonical
created: 2026-02-12
updated: 2026-02-13
risk_level: high
decision_refs: [D-037]
cross_refs: []
---
# Severance Equipment (Contraband) # Severance Equipment (Contraband)
**Type:** Tertiary Contraband **Type:** Tertiary Contraband
View File
@@ -1,3 +1,17 @@
---
title: "The Concord Assembly"
slug: concord-assembly
category: faction
status: canonical
created: 2026-02-12
updated: 2026-02-13
scope: reach-wide
faction_type: political
tags: [v0.1]
decision_refs: []
cross_refs: []
---
# The Concord Assembly # The Concord Assembly
**Type:** Faction — Legislative Government **Type:** Faction — Legislative Government
@@ -1,3 +1,17 @@
---
title: "Guardians of Autonomy"
slug: guardians-of-autonomy
category: faction
status: canonical
created: 2026-02-12
updated: 2026-02-13
scope: reach-wide
faction_type: cultural
tags: [v0.1]
decision_refs: []
cross_refs: []
---
# Guardians of Autonomy # Guardians of Autonomy
**Type:** Faction — Counter-Institutional Resistance Movement **Type:** Faction — Counter-Institutional Resistance Movement
@@ -1,3 +1,17 @@
---
title: "The Lattice Commission"
slug: lattice-commission
category: faction
status: canonical
created: 2026-02-12
updated: 2026-02-13
scope: reach-wide
faction_type: regulatory
tags: [v0.1]
decision_refs: []
cross_refs: []
---
# The Lattice Commission # The Lattice Commission
**Type:** Faction — Regulatory Institution **Type:** Faction — Regulatory Institution
@@ -1,3 +1,17 @@
---
title: "The Syndics"
slug: syndics
category: faction
status: canonical
created: 2026-02-12
updated: 2026-02-13
scope: reach-wide
faction_type: economic
tags: [v0.1]
decision_refs: []
cross_refs: []
---
# The Syndics # The Syndics
**Type:** Faction — Commercial Network **Type:** Faction — Commercial Network
@@ -1,3 +1,17 @@
---
title: "The Ring (Sova Smuggling Operation)"
slug: the-ring
category: faction
status: canonical
created: 2026-02-12
updated: 2026-02-13
scope: local
faction_type: criminal
tags: [v0.1]
decision_refs: [D-037]
cross_refs: []
---
# The Ring (Sova Smuggling Operation) # The Ring (Sova Smuggling Operation)
**Type:** Faction — Informal Criminal Network **Type:** Faction — Informal Criminal Network
@@ -1,3 +1,17 @@
---
title: "The Unbound"
slug: the-unbound
category: faction
status: canonical
created: 2026-02-12
updated: 2026-02-13
scope: reach-wide
faction_type: cultural
tags: [v0.1]
decision_refs: []
cross_refs: []
---
# The Unbound # The Unbound
**Type:** Faction — Cultural Movement **Type:** Faction — Cultural Movement
@@ -1,3 +1,17 @@
---
title: "The Veil Institute"
slug: veil-institute
category: faction
status: canonical
created: 2026-02-12
updated: 2026-02-13
scope: reach-wide
faction_type: cultural
tags: [v0.1]
decision_refs: []
cross_refs: []
---
# The Veil Institute # The Veil Institute
**Type:** Faction — Research Institution **Type:** Faction — Research Institution
+78 -41
View File
@@ -1,3 +1,12 @@
---
title: "The Settled Reach — Game Wiki"
slug: wiki-index
category: index
status: canonical
created: 2026-02-12
updated: 2026-02-13
---
# The Settled Reach — Game Wiki # The Settled Reach — Game Wiki
**Project:** The Settled Reach (top-down immersive sim) **Project:** The Settled Reach (top-down immersive sim)
@@ -15,22 +24,44 @@ This wiki serves three audiences:
**Cross-reference format:** Wiki entries link to decision documents where relevant. Example: Neural lattice tiers implement D-017 (perception modes as character build). **Cross-reference format:** Wiki entries link to decision documents where relevant. Example: Neural lattice tiers implement D-017 (perception modes as character build).
**Status levels:** `canonical` (confirmed), `draft` (in review), `proposed` (under consideration). Only use canonical entries as truth. **Status levels:** `canonical` (confirmed), `draft` (in review), `proposed` (under consideration). Only use canonical entries as truth. See [GOVERNANCE.md](GOVERNANCE.md) for full contribution rules.
--- ---
## Wiki Structure ## Wiki Structure
### World (Spatial Hierarchy) ### Star Systems (Spatial Hierarchy: system > station > district > location)
- [Krenn System](world/krenn-system.md) — Mid-Reach G3V system, ~180 years settled - [Krenn System](star-systems/krenn/index.md) — Mid-Reach G3V system, ~180 years settled
- [Station Sova](world/station-sova.md) — Logistics hub, ~12k population - [Station Sova](star-systems/krenn/sova/index.md) — Logistics hub, ~12k population
- [Sova Transit District](world/sova-transit-district.md) — v0.1 setting, freight logistics district - [Sova Transit District](star-systems/krenn/sova/transit/index.md) — v0.1 setting, freight logistics district
- [The Terminal](star-systems/krenn/sova/transit/the-terminal.md) — Logistics hub (workplace social site)
- [The Last Shift](star-systems/krenn/sova/transit/the-last-shift.md) — Bar / "Lera's" (social venue)
- [Maintenance Corridors](star-systems/krenn/sova/transit/maintenance-corridors.md) — Smuggling spaces, Corridor B-7
### Locations (Physical Spaces — nested by system) ### Characters (Named NPCs)
- **Krenn System:** - [Character Index](characters/index.md) — Full roster with tier assignments + triangle diagram
- [The Terminal](locations/krenn-system/the-terminal.md) — Logistics hub (workplace social site) - **Tier 1 (FRIEND NPCs):**
- [The Last Shift](locations/krenn-system/the-last-shift.md) — Bar / "Lera's" (social venue) - [Kael Davan](characters/kael-davan.md) — Smuggler's FRIEND (dock worker, ring member)
- [Maintenance Corridors](locations/krenn-system/maintenance-corridors.md) — Smuggling spaces, Corridor B-7 - [Sera Venn](characters/sera-venn.md) — Detective's FRIEND (Commission field tech)
- **Tier 2 (Triangle NPCs):**
- [Voss](characters/voss.md) — Shift supervisor
- [Lera Sessik](characters/lera-sessik.md) — Bar owner
- [Torek Lintar](characters/torek-lintar.md) — Dock worker / bar regular
- [Devra](characters/devra.md) — Ring coordinator
- [Maret Korr](characters/maret-korr.md) — Freight scheduler
- [Resha](characters/resha.md) — New hire
- [Harek](characters/harek.md) — Off-duty security
- [Naia Tamm](characters/naia-tamm.md) — Kael's partner
- [Renn](characters/renn.md) — Courier (ring + hub bridge)
- [Pell](characters/pell.md) — Wavering ring member
- [Drin](characters/drin.md) — Maintenance tech / dock inspector
- **Tier 3 (Flat NPCs):**
- [Sess](characters/sess.md) — Bartender
- [Olin](characters/olin.md) — Drifter/new arrival
- [Sabel](characters/sabel.md) — Off-station supplier
- [Tav](characters/tav.md) — Lookout/runner
- **Off-Stage:**
- [Nils Davan](characters/nils-davan.md) — Ring coordinator (off-station)
### Factions (Political & Institutional) ### Factions (Political & Institutional)
- [Concord Assembly](factions/concord-assembly.md) — Reach-wide representative government - [Concord Assembly](factions/concord-assembly.md) — Reach-wide representative government
@@ -41,29 +72,6 @@ This wiki serves three audiences:
- [Veil Institute](factions/veil-institute.md) — Founder Gate research institution - [Veil Institute](factions/veil-institute.md) — Founder Gate research institution
- [The Unbound](factions/the-unbound.md) — Anti-lattice cultural movement - [The Unbound](factions/the-unbound.md) — Anti-lattice cultural movement
### NPCs (Named Characters)
- [NPC Index](npcs/index.md) — Full roster with tier assignments + triangle diagram
- **Tier 1 (FRIEND NPCs):**
- [Kael Davan](npcs/kael-davan.md) — Smuggler's FRIEND (dock worker, ring member)
- [Sera Venn](npcs/sera-venn.md) — Detective's FRIEND (Commission field tech)
- **Tier 2 (Triangle NPCs):**
- [Voss](npcs/voss.md) — Shift supervisor
- [Lera Sessik](npcs/lera-sessik.md) — Bar owner
- [Torek Lintar](npcs/torek-lintar.md) — Dock worker / bar regular
- [Devra](npcs/devra.md) — Ring coordinator
- [Maret Korr](npcs/maret-korr.md) — Freight scheduler
- [Resha](npcs/resha.md) — New hire
- [Harek](npcs/harek.md) — Off-duty security
- [Naia Tamm](npcs/naia-tamm.md) — Kael's partner (referenced)
- [Renn](npcs/renn.md) — Courier (ring + hub bridge)
- [Pell](npcs/pell.md) — Wavering ring member
- **Tier 3 (Flat NPCs):**
- [Drin](npcs/drin.md) — Maintenance tech
- [Sess](npcs/sess.md) — Bartender
- [Olin](npcs/olin.md) — Drifter/new arrival
- [Sabel](npcs/sabel.md) — Off-station supplier
- [Tav](npcs/tav.md) — Lookout/runner
### Technology (Systems & Devices) ### Technology (Systems & Devices)
- [Neural Lattice](technology/neural-lattice.md) — Universal brain-computer interface, tiered - [Neural Lattice](technology/neural-lattice.md) — Universal brain-computer interface, tiered
- [Meridian](technology/meridian.md) — Information network - [Meridian](technology/meridian.md) — Information network
@@ -72,15 +80,30 @@ This wiki serves three audiences:
- [Clone Transfer](technology/clone-transfer.md) — Death, backup, body economics - [Clone Transfer](technology/clone-transfer.md) — Death, backup, body economics
- [Severance Tech](technology/severance-tech.md) — Counter-surveillance technology - [Severance Tech](technology/severance-tech.md) — Counter-surveillance technology
### Cultural Groups
- *(No entries yet — use [template](_templates/cultural-group.md) to create)*
### Contraband (Illegal/Restricted Goods) ### Contraband (Illegal/Restricted Goods)
- [Lattice Components](contraband/lattice-components.md) — Primary contraband in v0.1 - [Lattice Components](contraband/lattice-components.md) — Primary contraband in v0.1
- [Medical-Grade Replacements](contraband/medical-grade-replacements.md) — Diverted healthcare - [Medical-Grade Replacements](contraband/medical-grade-replacements.md) — Diverted healthcare
- [Severance Equipment](contraband/severance-equipment.md) — Counter-surveillance gear - [Severance Equipment](contraband/severance-equipment.md) — Counter-surveillance gear
### Knowledge Systems (Mechanical Reference) ### Institutions
- [Fact Catalog](knowledge/fact-catalog.md) — FactId entries with confidence levels - *(No entries yet — use [template](_templates/institution.md) to create)*
- [Entity Attributes](knowledge/entity-attributes.md) — EntityKnowledge key definitions
- [Relationship States](knowledge/relationship-states.md) — State transitions + contradictions ### Species
- *(No entries yet — use [template](_templates/species.md) to create)*
### Lore (History & Events)
- *(No entries yet — use [template](_templates/lore.md) to create)*
### Concepts (Mechanical Reference)
- [Fact Catalog](concepts/fact-catalog.md) — FactId entries with confidence levels
- [Entity Attributes](concepts/entity-attributes.md) — EntityKnowledge key definitions
- [Relationship States](concepts/relationship-states.md) — State transitions + contradictions
### Triangles (Relationship Structures)
- [Hub Power](triangles/hub-power.md) — Voss / Kael / Nils (entangled)
### Authoring Guides (For Content Team) ### Authoring Guides (For Content Team)
- [Monologue Guide](authoring/monologue-guide.md) — Prerequisites, triggers, examples (Mellanie's domain) - [Monologue Guide](authoring/monologue-guide.md) — Prerequisites, triggers, examples (Mellanie's domain)
@@ -89,7 +112,7 @@ This wiki serves three audiences:
## Quick Reference ## Quick Reference
**v0.1 Scope:** 1 star system, 1 station, 1 district, 3 social sites, 17 NPCs, 5 triangles, 2 playable characters (smuggler + detective) **v0.1 Scope:** 1 star system, 1 station, 1 district, 3 social sites, 18 NPCs, 5 triangles, 2 playable characters (smuggler + detective)
**Setting mood:** Quotidian-with-undertow — comfortable enough to be complacent, tight enough that extra income is tempting **Setting mood:** Quotidian-with-undertow — comfortable enough to be complacent, tight enough that extra income is tempting
@@ -101,8 +124,22 @@ This wiki serves three audiences:
--- ---
## Templates & Governance
All wiki entries use YAML frontmatter and follow category-specific templates. See:
- [GOVERNANCE.md](GOVERNANCE.md) — Ownership, status lifecycle, contribution rules
- [_templates/](_templates/) — One template per category (11 categories + 3 spatial types)
**Categories:** `star-system`, `station`, `district`, `location`, `character`, `faction`, `technology`, `cultural-group`, `contraband`, `institution`, `species`, `lore`, `concept`, `triangle`
---
## Cross-References to Decision Documents ## Cross-References to Decision Documents
- **D-017:** Perception modes as character-build system
- **D-024:** NPC 10-axis model
- **D-025:** Social site as atomic template unit
- **D-027:** Vertical slice definition (smuggler + detective two-character proof) - **D-027:** Vertical slice definition (smuggler + detective two-character proof)
- **D-028:** Dialogue architecture (four relational layers) - **D-028:** Dialogue architecture (four relational layers)
- **D-032:** Separate monologue pools per character - **D-032:** Separate monologue pools per character
@@ -116,6 +153,6 @@ See `decisions/README.md` for full decision domain index.
--- ---
**Status:** Canonical reference as of 2026-02-12 **Status:** Canonical reference as of 2026-02-13
**Maintained by:** Paula (narrative), Miri (worldbuilding), team contributions **Maintained by:** Miri (structure), Paula (narrative), team contributions
**Source:** Workshops, decision rounds, canonical type definitions in `server/src/knowledge/types.rs` **Governance:** [GOVERNANCE.md](GOVERNANCE.md)
View File
View File
View File
@@ -1,3 +1,21 @@
---
title: "Krenn System"
slug: krenn
category: star-system
status: canonical
created: 2026-02-11
updated: 2026-02-13
stellar_class: G3V
settlement_age: 180
population: 2400000
reach_position: mid-reach
stations: [sova]
gate_connections: []
tags: [v0.1, first-system]
decision_refs: [D-036]
cross_refs: [sova, transit]
---
# Krenn System # Krenn System
**Type:** Star System **Type:** Star System
@@ -89,7 +107,7 @@ The Commission's presence in Krenn is intermittent by design: established enough
## Key Locations in System ## Key Locations in System
- **Krenn Prime:** Primary world, 2M population, light manufacturing - **Krenn Prime:** Primary world, 2M population, light manufacturing
- **Station Sova:** Logistics hub, 12k population, freight-primary ([see Station Sova profile](station-sova.md)) - **Station Sova:** Logistics hub, 12k population, freight-primary ([see Station Sova profile](sova/index.md))
- **Orbital Manufacturing Platforms:** 3 major, component assembly - **Orbital Manufacturing Platforms:** 3 major, component assembly
- **Belt Facilities:** Depleted mining infrastructure, some repurposed for storage - **Belt Facilities:** Depleted mining infrastructure, some repurposed for storage
@@ -123,8 +141,8 @@ This is the substrate that makes Sova Transit District narratively plausible.
--- ---
**Cross-References:** **Cross-References:**
- [Station Sova](station-sova.md) — Primary v0.1 location - [Station Sova](sova/index.md) — Primary v0.1 location
- [Sova Transit District](sova-transit-district.md) — v0.1 playable space - [Sova Transit District](sova/transit/index.md) — v0.1 playable space
- D-036: Sova Transit District / Krenn System as v0.1 setting - D-036: Sova Transit District / Krenn System as v0.1 setting
--- ---
@@ -1,8 +1,24 @@
---
title: "Station Sova"
slug: sova
category: station
status: canonical
created: 2026-02-11
updated: 2026-02-13
parent_system: krenn
population: 12000
station_type: logistics
districts: [transit]
tags: [v0.1]
decision_refs: [D-036]
cross_refs: [krenn, transit]
---
# Station Sova # Station Sova
**Type:** Space Station **Type:** Space Station
**Status:** Canonical **Status:** Canonical
**System:** [Krenn System](krenn-system.md) **System:** [Krenn System](../index.md)
**Classification:** Logistics Hub **Classification:** Logistics Hub
**Population:** ~12,000 **Population:** ~12,000
**Construction Era:** Mid-settlement (~140 years ago) **Construction Era:** Mid-settlement (~140 years ago)
@@ -32,7 +48,7 @@ This layered construction creates architectural secrets: spaces between wall lay
- **Residential/Commercial:** Ring 2 (middle), mixed-use districts - **Residential/Commercial:** Ring 2 (middle), mixed-use districts
- **Operations/Services:** Ring 3 (innermost), administration and maintenance - **Operations/Services:** Ring 3 (innermost), administration and maintenance
[Sova Transit District](sova-transit-district.md) occupies a section of Ring 1 — freight bay retrofitted for logistics operations + worker amenities. [Sova Transit District](transit/index.md) occupies a section of Ring 1 — freight bay retrofitted for logistics operations + worker amenities.
--- ---
@@ -81,7 +97,7 @@ This economic reality drives three social patterns:
**Law Enforcement Gaps:** **Law Enforcement Gaps:**
This is critical for v0.1 narrative: Sova has *security* (prevent accidents, respond to violence) but minimal *law enforcement* (investigate contraband). The Commission sends liaisons for lattice compliance inspections, but those visits are scheduled and infrequent. This is critical for v0.1 narrative: Sova has *security* (prevent accidents, respond to violence) but minimal *law enforcement* (investigate contraband). The Commission sends liaisons for lattice compliance inspections, but those visits are scheduled and infrequent.
The detective's arrival in [Sova Transit District](sova-transit-district.md) represents an unusual enforcement presence — something has flagged the district for investigation, and institutional attention is now focused where it usually isn't. The detective's arrival in [Sova Transit District](transit/index.md) represents an unusual enforcement presence — something has flagged the district for investigation, and institutional attention is now focused where it usually isn't.
--- ---
@@ -89,7 +105,7 @@ The detective's arrival in [Sova Transit District](sova-transit-district.md) rep
Station Sova has 7 named districts. Only **Sova Transit District** is developed for v0.1. Station Sova has 7 named districts. Only **Sova Transit District** is developed for v0.1.
1. **Sova Transit District** — Freight logistics, worker amenities, bar district ([full profile](sova-transit-district.md)) 1. **Sova Transit District** — Freight logistics, worker amenities, bar district ([full profile](transit/index.md))
2. **Central Spindle District** — Administration, station operations 2. **Central Spindle District** — Administration, station operations
3. **Residential Radial A** — Long-term housing, schools, medical 3. **Residential Radial A** — Long-term housing, schools, medical
4. **Residential Radial B** — Short-term housing, transient workers 4. **Residential Radial B** — Short-term housing, transient workers
@@ -147,10 +163,10 @@ This coverage gradient is load-bearing for smuggling: off-Meridian coordination
## Key Locations (v0.1 Scope) ## Key Locations (v0.1 Scope)
See [Sova Transit District](sova-transit-district.md) for full v0.1 location details: See [Sova Transit District](transit/index.md) for full v0.1 location details:
- [The Terminal](../locations/krenn-system/the-terminal.md) (logistics hub) - [The Terminal](transit/the-terminal.md) (logistics hub)
- [The Last Shift](../locations/krenn-system/the-last-shift.md) (bar) - [The Last Shift](transit/the-last-shift.md) (bar)
- [Maintenance Corridor B-7](../locations/krenn-system/maintenance-corridors.md) (smuggling space) - [Maintenance Corridor B-7](transit/maintenance-corridors.md) (smuggling space)
--- ---
@@ -179,8 +195,8 @@ See [Sova Transit District](sova-transit-district.md) for full v0.1 location det
--- ---
**Cross-References:** **Cross-References:**
- [Krenn System](krenn-system.md) — Star system profile - [Krenn System](../index.md) — Star system profile
- [Sova Transit District](sova-transit-district.md) — v0.1 playable district - [Sova Transit District](transit/index.md) — v0.1 playable district
- D-036: Sova as v0.1 setting - D-036: Sova as v0.1 setting
--- ---
@@ -1,9 +1,29 @@
---
title: "Sova Transit District"
slug: transit
category: district
status: canonical
created: 2026-02-11
updated: 2026-02-13
parent_station: sova
parent_system: krenn
population: 800
age: 40
construction: mixed
locations: [the-terminal, the-last-shift, maintenance-corridors]
social_sites: [logistics-hub, bar, smuggling-ring]
npc_count: 17
tags: [v0.1, vertical-slice]
decision_refs: [D-036, D-027]
cross_refs: [krenn, sova, the-ring]
---
# Sova Transit District # Sova Transit District
**Type:** Station District **Type:** Station District
**Status:** Canonical **Status:** Canonical
**Station:** [Station Sova](station-sova.md) **Station:** [Station Sova](../index.md)
**System:** [Krenn System](krenn-system.md) **System:** [Krenn System](../../index.md)
**District Age:** ~40 years (most recent major retrofit) **District Age:** ~40 years (most recent major retrofit)
**Population:** ~800 (workers + residents) **Population:** ~800 (workers + residents)
**Construction:** Prefab-modular base with layered retrofits **Construction:** Prefab-modular base with layered retrofits
@@ -31,11 +51,11 @@ Comfortable enough to be complacent. Tight enough that an extra income source is
4. **Ongoing maintenance:** Continuous patching, creating architectural complexity 4. **Ongoing maintenance:** Continuous patching, creating architectural complexity
**Spatial Structure:** **Spatial Structure:**
- **Level 1 (lowest):** Freight bay floor, cargo handling, span gate access, logistics hub ([The Terminal](../locations/krenn-system/the-terminal.md)) - **Level 1 (lowest):** Freight bay floor, cargo handling, span gate access, logistics hub ([The Terminal](locations/the-terminal.md))
- **Level 2 (middle):** Worker amenities (bar, food vendors, small retail), residential pods - **Level 2 (middle):** Worker amenities (bar, food vendors, small retail), residential pods
- **Level 3 (highest):** Observation gallery (overlooks freight bay), administrative offices, Commission kiosk (unmanned most of the time) - **Level 3 (highest):** Observation gallery (overlooks freight bay), administrative offices, Commission kiosk (unmanned most of the time)
**Between the Levels:** Maintenance corridors, service hatches, spaces between old and new construction. This is where the smuggling infrastructure lives. [Corridor B-7](../locations/krenn-system/maintenance-corridors.md) is the primary off-books route. **Between the Levels:** Maintenance corridors, service hatches, spaces between old and new construction. This is where the smuggling infrastructure lives. [Corridor B-7](locations/maintenance-corridors.md) is the primary off-books route.
--- ---
@@ -45,25 +65,25 @@ The district contains three **social sites** — clusters of NPCs who regularly
### 1. The Terminal (Logistics Hub) ### 1. The Terminal (Logistics Hub)
**Type:** Workplace **Type:** Workplace
**NPCs:** 5 ([Voss](../npcs/voss.md), [Kael Davan](../npcs/kael-davan.md), [Resha](../npcs/resha.md), [Torek Lintar](../npcs/torek-lintar.md), [Drin](../npcs/drin.md)) **NPCs:** 5 ([Voss](../../../../characters/voss.md), [Kael Davan](../../../../characters/kael-davan.md), [Resha](../../../../characters/resha.md), [Torek Lintar](../../../../characters/torek-lintar.md), [Drin](../../../../characters/drin.md))
**Function:** Cargo sorting, scheduling, inspection, paperwork **Function:** Cargo sorting, scheduling, inspection, paperwork
**Hours:** 24-hour operation, three 8-hour shifts **Hours:** 24-hour operation, three 8-hour shifts
**[Full profile ->](../locations/krenn-system/the-terminal.md)** **[Full profile ->](locations/the-terminal.md)**
### 2. The Last Shift (Bar) ### 2. The Last Shift (Bar)
**Type:** Social Venue **Type:** Social Venue
**NPCs:** 6 ([Lera Sessik](../npcs/lera-sessik.md), [Harek](../npcs/harek.md), [Maret Korr](../npcs/maret-korr.md), [Sera Venn](../npcs/sera-venn.md), [Sess](../npcs/sess.md), [Olin](../npcs/olin.md)) **NPCs:** 6 ([Lera Sessik](../../../../characters/lera-sessik.md), [Harek](../../../../characters/harek.md), [Maret Korr](../../../../characters/maret-korr.md), [Sera Venn](../../../../characters/sera-venn.md), [Sess](../../../../characters/sess.md), [Olin](../../../../characters/olin.md))
**Function:** After-shift drinks, social hub, information exchange **Function:** After-shift drinks, social hub, information exchange
**Hours:** 14:00 - 02:00 station time **Hours:** 14:00 - 02:00 station time
**Informal Name:** "Lera's" (used by regulars) **Informal Name:** "Lera's" (used by regulars)
**[Full profile ->](../locations/krenn-system/the-last-shift.md)** **[Full profile ->](locations/the-last-shift.md)**
### 3. Smuggling Spaces (The Ring's Infrastructure) ### 3. Smuggling Spaces (The Ring's Infrastructure)
**Type:** Criminal operation / repurposed infrastructure **Type:** Criminal operation / repurposed infrastructure
**NPCs:** 5 ([Devra](../npcs/devra.md), [Renn](../npcs/renn.md), [Pell](../npcs/pell.md), [Sabel](../npcs/sabel.md), [Tav](../npcs/tav.md)) **NPCs:** 5 ([Devra](../../../../characters/devra.md), [Renn](../../../../characters/renn.md), [Pell](../../../../characters/pell.md), [Sabel](../../../../characters/sabel.md), [Tav](../../../../characters/tav.md))
**Function:** Contraband transfer, off-books meetings, dead drops **Function:** Contraband transfer, off-books meetings, dead drops
**Locations:** [Maintenance Corridor B-7](../locations/krenn-system/maintenance-corridors.md), back room at The Last Shift, storage area in logistics hub **Locations:** [Maintenance Corridor B-7](locations/maintenance-corridors.md), back room at The Last Shift, storage area in logistics hub
**[Full profile ->](../locations/krenn-system/maintenance-corridors.md)** **[Full profile ->](locations/maintenance-corridors.md)**
--- ---
@@ -171,11 +191,11 @@ This is why the community tolerates the ring: everyone benefits indirectly. The
**Total NPCs in District:** 17 (15 standard + 2 FRIEND-tier) **Total NPCs in District:** 17 (15 standard + 2 FRIEND-tier)
**Population Distribution (D-029 Entanglement Ratio: 30/50/20):** **Population Distribution (D-029 Entanglement Ratio: 30/50/20):**
- **Flat NPCs (3, ~18%):** [Drin](../npcs/drin.md), [Sess](../npcs/sess.md), [Olin](../npcs/olin.md) — routines, greetings, atmosphere - **Flat NPCs (3, ~18%):** [Drin](../../../../characters/drin.md), [Sess](../../../../characters/sess.md), [Olin](../../../../characters/olin.md) — routines, greetings, atmosphere
- **Triangle NPCs, Mundane (7, ~41%):** [Voss](../npcs/voss.md), [Maret Korr](../npcs/maret-korr.md), [Torek Lintar](../npcs/torek-lintar.md), [Lera Sessik](../npcs/lera-sessik.md), [Harek](../npcs/harek.md), [Resha](../npcs/resha.md), [Sera Venn](../npcs/sera-venn.md) - **Triangle NPCs, Mundane (7, ~41%):** [Voss](../../../../characters/voss.md), [Maret Korr](../../../../characters/maret-korr.md), [Torek Lintar](../../../../characters/torek-lintar.md), [Lera Sessik](../../../../characters/lera-sessik.md), [Harek](../../../../characters/harek.md), [Resha](../../../../characters/resha.md), [Sera Venn](../../../../characters/sera-venn.md)
- **Triangle NPCs, Entangled (7, ~41%):** [Kael Davan](../npcs/kael-davan.md), [Devra](../npcs/devra.md), [Renn](../npcs/renn.md), [Pell](../npcs/pell.md), [Sabel](../npcs/sabel.md), [Tav](../npcs/tav.md), [Naia Tamm](../npcs/naia-tamm.md) (referenced) - **Triangle NPCs, Entangled (7, ~41%):** [Kael Davan](../../../../characters/kael-davan.md), [Devra](../../../../characters/devra.md), [Renn](../../../../characters/renn.md), [Pell](../../../../characters/pell.md), [Sabel](../../../../characters/sabel.md), [Tav](../../../../characters/tav.md), [Naia Tamm](../../../../characters/naia-tamm.md) (referenced)
**The Five Triangles:** See [NPC Index](../npcs/index.md) for full triangle diagram. **The Five Triangles:** See [NPC Index](../../../../characters/index.md) for full triangle diagram.
--- ---
@@ -183,14 +203,14 @@ This is why the community tolerates the ring: everyone benefits indirectly. The
**Structure:** Informal network, no official name. NPCs refer to it obliquely ("the arrangement," "the side work," "helping out"). **Structure:** Informal network, no official name. NPCs refer to it obliquely ("the arrangement," "the side work," "helping out").
**What They Move:** [Unlicensed lattice components](../contraband/lattice-components.md) (primary), [medical-grade neural replacements](../contraband/medical-grade-replacements.md), [Severance counter-surveillance tech](../contraband/severance-equipment.md) **What They Move:** [Unlicensed lattice components](../../../../contraband/lattice-components.md) (primary), [medical-grade neural replacements](../../../../contraband/medical-grade-replacements.md), [Severance counter-surveillance tech](../../../../contraband/severance-equipment.md)
**How It Works:** **How It Works:**
1. Contraband arrives in legitimate freight shipments (mixed with legal cargo) 1. Contraband arrives in legitimate freight shipments (mixed with legal cargo)
2. [Torek Lintar](../npcs/torek-lintar.md) (compromised inspector) looks away during inspection 2. [Torek Lintar](../../../../characters/torek-lintar.md) (compromised inspector) looks away during inspection
3. [Kael Davan](../npcs/kael-davan.md) and others route flagged containers to holding area 3. [Kael Davan](../../../../characters/kael-davan.md) and others route flagged containers to holding area
4. [Renn](../npcs/renn.md) (courier) transfers contraband to [Corridor B-7](../locations/krenn-system/maintenance-corridors.md) 4. [Renn](../../../../characters/renn.md) (courier) transfers contraband to [Corridor B-7](locations/maintenance-corridors.md)
5. [Devra](../npcs/devra.md) coordinates off-station contact ([Sabel](../npcs/sabel.md)) 5. [Devra](../../../../characters/devra.md) coordinates off-station contact ([Sabel](../../../../characters/sabel.md))
6. Product distributed through informal networks 6. Product distributed through informal networks
**Operational Timing:** Night shifts (lowest oversight), shift transitions (confusion/distraction), post-inspection windows (2-3 days after scheduled Commission sweep) **Operational Timing:** Night shifts (lowest oversight), shift transitions (confusion/distraction), post-inspection windows (2-3 days after scheduled Commission sweep)
@@ -244,9 +264,9 @@ This is why the community tolerates the ring: everyone benefits indirectly. The
--- ---
**Cross-References:** **Cross-References:**
- [Krenn System](krenn-system.md) — Star system profile - [Krenn System](../../index.md) — Star system profile
- [Station Sova](station-sova.md) — Station profile - [Station Sova](../index.md) — Station profile
- [NPC Index](../npcs/index.md) — Full character roster - [NPC Index](../../../../characters/index.md) — Full character roster
- D-036: Sova Transit District as v0.1 setting - D-036: Sova Transit District as v0.1 setting
- D-027: Vertical slice definition - D-027: Vertical slice definition
@@ -1,10 +1,29 @@
---
title: "Maintenance Corridors"
slug: maintenance-corridors
category: location
status: canonical
created: 2026-02-12
updated: 2026-02-13
parent_district: transit
parent_station: sova
parent_system: krenn
social_site: smuggling-ring
sightlines: severely-limited
ambient_sound: ventilation-hum
npcs_present: [devra, renn, pell, sabel, tav]
tags: [v0.1, criminal-infrastructure]
decision_refs: [D-025, D-036]
cross_refs: [the-terminal, the-last-shift]
---
# Maintenance Corridors (Smuggling Spaces) # Maintenance Corridors (Smuggling Spaces)
**Type:** Location — Criminal Infrastructure / Repurposed Space **Type:** Location — Criminal Infrastructure / Repurposed Space
**Status:** Canonical **Status:** Canonical
**District:** [Sova Transit District](../../world/sova-transit-district.md) **District:** [Sova Transit District](index.md)
**Station:** [Station Sova](../../world/station-sova.md) **Station:** [Station Sova](../index.md)
**System:** [Krenn System](../../world/krenn-system.md) **System:** [Krenn System](../../index.md)
**Level:** Between levels (interstitial construction) **Level:** Between levels (interstitial construction)
**Key Location:** Corridor B-7 **Key Location:** Corridor B-7
**Access:** Restricted (service hatch from Terminal break room, maintenance access from Level 2) **Access:** Restricted (service hatch from Terminal break room, maintenance access from Level 2)
@@ -85,11 +104,11 @@ The ring didn't build this space. They found it.
| NPC | Role | Corridor Use | Frequency | | NPC | Role | Corridor Use | Frequency |
|-----|------|-------------|-----------| |-----|------|-------------|-----------|
| [Devra](../../npcs/devra.md) | Ring Coordinator | Meetings at ventilation hub, coordination | 2-3x per week | | [Devra](../../../../characters/devra.md) | Ring Coordinator | Meetings at ventilation hub, coordination | 2-3x per week |
| [Renn](../../npcs/renn.md) | Courier | Primary cargo transfer through B-7 | Every ring operation (night shift cycle) | | [Renn](../../../../characters/renn.md) | Courier | Primary cargo transfer through B-7 | Every ring operation (night shift cycle) |
| [Pell](../../npcs/pell.md) | Wavering Ring Member | Nervous presence, dead drop pickups | Irregular, increasingly reluctant | | [Pell](../../../../characters/pell.md) | Wavering Ring Member | Nervous presence, dead drop pickups | Irregular, increasingly reluctant |
| [Sabel](../../npcs/sabel.md) | Fence/Buyer (external) | Rare in-person meetings at junction room | Monthly, high-stakes | | [Sabel](../../../../characters/sabel.md) | Fence/Buyer (external) | Rare in-person meetings at junction room | Monthly, high-stakes |
| [Tav](../../npcs/tav.md) | Lookout/Runner | Watches entry points during operations | Every ring operation | | [Tav](../../../../characters/tav.md) | Lookout/Runner | Watches entry points during operations | Every ring operation |
### Non-Ring NPC Access ### Non-Ring NPC Access
@@ -177,11 +196,11 @@ The space between the walls is where the game's moral questions live.
--- ---
**Cross-References:** **Cross-References:**
- [Sova Transit District](../../world/sova-transit-district.md) — Parent district - [Sova Transit District](index.md) — Parent district
- [The Terminal](the-terminal.md) — Connected via break room service hatch (south entry) - [The Terminal](the-terminal.md) — Connected via break room service hatch (south entry)
- [The Last Shift](the-last-shift.md) — Back room connects to ring infrastructure - [The Last Shift](the-last-shift.md) — Back room connects to ring infrastructure
- [NPC Index](../../npcs/index.md) — Full character roster - [NPC Index](../../../../characters/index.md) — Full character roster
- [Severance Equipment](../../contraband/severance-equipment.md) — Used during Devra's meetings - [Severance Equipment](../../../../contraband/severance-equipment.md) — Used during Devra's meetings
- D-036: Sova Transit District as v0.1 setting - D-036: Sova Transit District as v0.1 setting
- D-037: Contraband specification (what moves through B-7) - D-037: Contraband specification (what moves through B-7)
@@ -1,14 +1,33 @@
---
title: "The Last Shift"
slug: the-last-shift
category: location
status: canonical
created: 2026-02-12
updated: 2026-02-13
parent_district: transit
parent_station: sova
parent_system: krenn
social_site: bar
sightlines: open-with-alcoves
ambient_sound: conversation-music
npcs_present: [lera-sessik, sera-venn, naia-tamm, sess, olin]
tags: [v0.1, social-venue]
decision_refs: [D-025, D-028, D-036]
cross_refs: [the-terminal, maintenance-corridors]
---
# The Last Shift (Bar) # The Last Shift (Bar)
**Type:** Location — Social Venue **Type:** Location — Social Venue
**Status:** Canonical **Status:** Canonical
**District:** [Sova Transit District](../../world/sova-transit-district.md) **District:** [Sova Transit District](index.md)
**Station:** [Station Sova](../../world/station-sova.md) **Station:** [Station Sova](../index.md)
**System:** [Krenn System](../../world/krenn-system.md) **System:** [Krenn System](../../index.md)
**Level:** 2 (middle — worker amenities) **Level:** 2 (middle — worker amenities)
**Operating Hours:** 14:00-02:00 station time **Operating Hours:** 14:00-02:00 station time
**Informal Name:** "Lera's" (used by regulars) **Informal Name:** "Lera's" (used by regulars)
**Owner:** [Lera Sessik](../../npcs/lera-sessik.md) **Owner:** [Lera Sessik](../../../../characters/lera-sessik.md)
**Capacity:** ~30 **Capacity:** ~30
--- ---
@@ -82,21 +101,21 @@ The bar is the district's social heart. Information flows through here faster th
| NPC | Role | Typical Hours | Function | | NPC | Role | Typical Hours | Function |
|-----|------|---------------|----------| |-----|------|---------------|----------|
| [Lera Sessik](../../npcs/lera-sessik.md) | Bar Owner | 13:30-02:00 (daily) | Social hub, observes everything, willful ignorance | | [Lera Sessik](../../../../characters/lera-sessik.md) | Bar Owner | 13:30-02:00 (daily) | Social hub, observes everything, willful ignorance |
| [Sera Venn](../../npcs/sera-venn.md) | Commission Field Tech (THE FRIEND) | Evenings, irregular | Detective's social anchor, bar regular | | [Sera Venn](../../../../characters/sera-venn.md) | Commission Field Tech (THE FRIEND) | Evenings, irregular | Detective's social anchor, bar regular |
| [Naia Tamm](../../npcs/naia-tamm.md) | Teacher (Kael's partner) | Evenings, 2-3x/week | Worried, confides in Sera | | [Naia Tamm](../../../../characters/naia-tamm.md) | Teacher (Kael's partner) | Evenings, 2-3x/week | Worried, confides in Sera |
| [Sess](../../npcs/sess.md) | Bartender | 14:00-02:00 (shifts with Lera) | Flat, observant, discreet | | [Sess](../../../../characters/sess.md) | Bartender | 14:00-02:00 (shifts with Lera) | Flat, observant, discreet |
| [Olin](../../npcs/olin.md) | Drifter / New Arrival | Irregular, evenings | Ambiguous intent, asks questions | | [Olin](../../../../characters/olin.md) | Drifter / New Arrival | Irregular, evenings | Ambiguous intent, asks questions |
### Bridge NPCs (Present at The Last Shift + Other Sites) ### Bridge NPCs (Present at The Last Shift + Other Sites)
| NPC | Home Site | Bar Role | Bridge Function | | NPC | Home Site | Bar Role | Bridge Function |
|-----|-----------|----------|-----------------| |-----|-----------|----------|-----------------|
| [Torek Lintar](../../npcs/torek-lintar.md) | The Last Shift / [The Terminal](the-terminal.md) | Regular, big spender | Spending beyond means — financial tell | | [Torek Lintar](../../../../characters/torek-lintar.md) | The Last Shift / [The Terminal](the-terminal.md) | Regular, big spender | Spending beyond means — financial tell |
| [Harek](../../npcs/harek.md) | The Last Shift / [The Terminal](the-terminal.md) | Off-duty security, card games | Sees things in both contexts, holds debt leverage on Drin | | [Harek](../../../../characters/harek.md) | The Last Shift / [The Terminal](the-terminal.md) | Off-duty security, card games | Sees things in both contexts, holds debt leverage on Drin |
| [Maret Korr](../../npcs/maret-korr.md) | [The Terminal](the-terminal.md) | Occasional visitor | Worried, processes what she's seen at work | | [Maret Korr](../../../../characters/maret-korr.md) | [The Terminal](the-terminal.md) | Occasional visitor | Worried, processes what she's seen at work |
| [Devra](../../npcs/devra.md) | Smuggling Ring | Corner booth meetings | Legitimate front conceals ring coordination | | [Devra](../../../../characters/devra.md) | Smuggling Ring | Corner booth meetings | Legitimate front conceals ring coordination |
| [Kael Davan](../../npcs/kael-davan.md) | [The Terminal](the-terminal.md) | After-shift regular | Ring member unwinding, partner Naia sometimes present | | [Kael Davan](../../../../characters/kael-davan.md) | [The Terminal](the-terminal.md) | After-shift regular | Ring member unwinding, partner Naia sometimes present |
**Total NPC presence:** Up to 10 at peak (5 regulars + 5 bridge), minimum 2-3 (Lera, Sess, and a straggler) **Total NPC presence:** Up to 10 at peak (5 regulars + 5 bridge), minimum 2-3 (Lera, Sess, and a straggler)
@@ -186,10 +205,10 @@ But what SUSTAINS The Last Shift as a gameplay space across hours of play is the
--- ---
**Cross-References:** **Cross-References:**
- [Sova Transit District](../../world/sova-transit-district.md) — Parent district - [Sova Transit District](index.md) — Parent district
- [The Terminal](the-terminal.md) — Workers come from here - [The Terminal](the-terminal.md) — Workers come from here
- [Maintenance Corridors](maintenance-corridors.md) — Back room connects to ring infrastructure - [Maintenance Corridors](maintenance-corridors.md) — Back room connects to ring infrastructure
- [NPC Index](../../npcs/index.md) — Full character roster - [NPC Index](../../../../characters/index.md) — Full character roster
- D-036: Sova Transit District as v0.1 setting - D-036: Sova Transit District as v0.1 setting
- D-028: Dialogue architecture (bar as primary social dialogue site) - D-028: Dialogue architecture (bar as primary social dialogue site)
- D-034: THE FRIEND (Sera Venn present at bar, detective's anchor) - D-034: THE FRIEND (Sera Venn present at bar, detective's anchor)
@@ -1,10 +1,29 @@
---
title: "The Terminal"
slug: the-terminal
category: location
status: canonical
created: 2026-02-12
updated: 2026-02-13
parent_district: transit
parent_station: sova
parent_system: krenn
social_site: logistics-hub
sightlines: partitioned
ambient_sound: cargo-machinery
npcs_present: [voss, kael-davan, maret-korr, resha, drin]
tags: [v0.1, workplace]
decision_refs: [D-025, D-036]
cross_refs: [the-last-shift, maintenance-corridors]
---
# The Terminal (Logistics Hub) # The Terminal (Logistics Hub)
**Type:** Location — Workplace Social Site **Type:** Location — Workplace Social Site
**Status:** Canonical **Status:** Canonical
**District:** [Sova Transit District](../../world/sova-transit-district.md) **District:** [Sova Transit District](index.md)
**Station:** [Station Sova](../../world/station-sova.md) **Station:** [Station Sova](../index.md)
**System:** [Krenn System](../../world/krenn-system.md) **System:** [Krenn System](../../index.md)
**Level:** 1 (lowest) **Level:** 1 (lowest)
**Operating Hours:** 24-hour, three 8-hour shifts **Operating Hours:** 24-hour, three 8-hour shifts
**Capacity:** ~60 workers per shift **Capacity:** ~60 workers per shift
@@ -85,19 +104,19 @@ The name is informal. Officially it's "Sova Transit Logistics Hub, Bay 7-C." Nob
| NPC | Role | Shift | Function | | NPC | Role | Shift | Function |
|-----|------|-------|----------| |-----|------|-------|----------|
| [Voss](../../npcs/voss.md) | Shift Supervisor | Morning (06:00-14:00) | Authority figure, manages schedules, sightline from office | | [Voss](../../../../characters/voss.md) | Shift Supervisor | Morning (06:00-14:00) | Authority figure, manages schedules, sightline from office |
| [Kael Davan](../../npcs/kael-davan.md) | Dock Worker (THE FRIEND) | Morning (06:00-14:00) | Ring member, cargo handler, smuggler's closest colleague | | [Kael Davan](../../../../characters/kael-davan.md) | Dock Worker (THE FRIEND) | Morning (06:00-14:00) | Ring member, cargo handler, smuggler's closest colleague |
| [Maret Korr](../../npcs/maret-korr.md) | Freight Scheduler | Morning (06:00-14:00) | Processes manifests, notices discrepancies, hasn't reported | | [Maret Korr](../../../../characters/maret-korr.md) | Freight Scheduler | Morning (06:00-14:00) | Processes manifests, notices discrepancies, hasn't reported |
| [Resha](../../npcs/resha.md) | New Hire Dock Worker | Morning (06:00-14:00) | Asks questions, hasn't learned to mind their business | | [Resha](../../../../characters/resha.md) | New Hire Dock Worker | Morning (06:00-14:00) | Asks questions, hasn't learned to mind their business |
| [Drin](../../npcs/drin.md) | Maintenance Tech | Rotating | Fixes things, notices things, says nothing | | [Drin](../../../../characters/drin.md) | Maintenance Tech | Rotating | Fixes things, notices things, says nothing |
### Bridge NPCs (Present at The Terminal + Other Sites) ### Bridge NPCs (Present at The Terminal + Other Sites)
| NPC | Home Site | Terminal Role | Bridge Function | | NPC | Home Site | Terminal Role | Bridge Function |
|-----|-----------|---------------|-----------------| |-----|-----------|---------------|-----------------|
| [Torek Lintar](../../npcs/torek-lintar.md) | [The Last Shift](the-last-shift.md) | Off-shift dock worker | Compromised inspector, looks away during inspection | | [Torek Lintar](../../../../characters/torek-lintar.md) | [The Last Shift](the-last-shift.md) | Off-shift dock worker | Compromised inspector, looks away during inspection |
| [Renn](../../npcs/renn.md) | Smuggling Ring | Courier | Transfers cargo from bay to Corridor B-7 | | [Renn](../../../../characters/renn.md) | Smuggling Ring | Courier | Transfers cargo from bay to Corridor B-7 |
| [Harek](../../npcs/harek.md) | [The Last Shift](the-last-shift.md) | Off-duty security | Occasionally patrols, holds debt leverage on Drin | | [Harek](../../../../characters/harek.md) | [The Last Shift](the-last-shift.md) | Off-duty security | Occasionally patrols, holds debt leverage on Drin |
**Total NPC presence:** 8 (5 primary, 3 bridge) **Total NPC presence:** 8 (5 primary, 3 bridge)
@@ -177,10 +196,10 @@ The honest truth is that every workplace has these vulnerabilities. What makes T
--- ---
**Cross-References:** **Cross-References:**
- [Sova Transit District](../../world/sova-transit-district.md) — Parent district - [Sova Transit District](index.md) — Parent district
- [Maintenance Corridors](maintenance-corridors.md) — Connected via break room service hatch - [Maintenance Corridors](maintenance-corridors.md) — Connected via break room service hatch
- [The Last Shift](the-last-shift.md) — Where workers go after shift - [The Last Shift](the-last-shift.md) — Where workers go after shift
- [NPC Index](../../npcs/index.md) — Full character roster - [NPC Index](../../../../characters/index.md) — Full character roster
- D-036: Sova Transit District as v0.1 setting - D-036: Sova Transit District as v0.1 setting
- D-027: Vertical slice definition - D-027: Vertical slice definition
@@ -1,3 +1,16 @@
---
title: "Clone Transfer"
slug: clone-transfer
category: technology
status: canonical
created: 2026-02-12
updated: 2026-02-13
prevalence: restricted
tags: []
decision_refs: []
cross_refs: []
---
# Clone Transfer # Clone Transfer
**Type:** Core Technology **Type:** Core Technology
@@ -1,3 +1,16 @@
---
title: "Founder Gates"
slug: founder-gates
category: technology
status: canonical
created: 2026-02-12
updated: 2026-02-13
prevalence: rare
tags: []
decision_refs: []
cross_refs: []
---
# Founder Gates # Founder Gates
**Type:** Interstellar Transit Infrastructure **Type:** Interstellar Transit Infrastructure
@@ -1,3 +1,16 @@
---
title: "Meridian"
slug: meridian
category: technology
status: canonical
created: 2026-02-12
updated: 2026-02-13
prevalence: universal
tags: []
decision_refs: []
cross_refs: []
---
# Meridian # Meridian
**Type:** Infrastructure Technology **Type:** Infrastructure Technology
@@ -1,3 +1,16 @@
---
title: "Neural Lattice"
slug: neural-lattice
category: technology
status: canonical
created: 2026-02-12
updated: 2026-02-13
prevalence: universal
tags: []
decision_refs: [D-017]
cross_refs: []
---
# Neural Lattice # Neural Lattice
**Type:** Core Technology **Type:** Core Technology
@@ -1,3 +1,16 @@
---
title: "Severance Technology"
slug: severance-tech
category: technology
status: canonical
created: 2026-02-12
updated: 2026-02-13
prevalence: rare
tags: []
decision_refs: []
cross_refs: []
---
# Severance Technology # Severance Technology
**Type:** Counter-Surveillance Technology **Type:** Counter-Surveillance Technology
@@ -1,3 +1,16 @@
---
title: "Span Gates"
slug: span-gates
category: technology
status: canonical
created: 2026-02-12
updated: 2026-02-13
prevalence: common
tags: []
decision_refs: []
cross_refs: []
---
# Span Gates # Span Gates
**Type:** Transit Infrastructure **Type:** Transit Infrastructure
@@ -1,3 +1,18 @@
---
title: "Hub Power"
slug: hub-power
category: triangle
status: canonical
created: 2026-02-12
updated: 2026-02-13
members: [voss, kael-davan, nils-davan]
triangle_type: entangled
social_sites: [the-terminal]
tags: [v0.1]
decision_refs: [D-024]
cross_refs: []
---
# Triangle 1: Hub Power — Volume Escalation Fork # Triangle 1: Hub Power — Volume Escalation Fork
**Triangle**: Voss - Kael - Nils **Triangle**: Voss - Kael - Nils