docs(workshops): archive v0.1 content gap analysis workshop

6 agents × 2 rounds examining 9 content layers. Produced D-032
through D-039, THE FRIEND NPC pattern, converged tag taxonomy,
and Sova Transit District setting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 20:27:31 +01:00
co-authored by Claude Opus 4.6
parent 56ee8305ae
commit e96ec80d9c
13 changed files with 6116 additions and 0 deletions
@@ -0,0 +1,373 @@
# v0.1 Content Gap Analysis Workshop — Summary
**Workshop dates:** 2026-02-11
**Participants:** Mellanie, Paula, Araminta, Miri, Gestalt, Ozzie
**Facilitator:** Team Leader (Jeroen)
**Documenter:** Qatux
---
## Executive Summary
The v0.1 Content Gap Analysis Workshop examined 9 content layers across the vertical slice (D-027) to identify what content exists, what's missing, and what blocks production. Six agents delivered independent Round 1 analyses, then synthesized across all outputs in Round 2. The project lead made 9 directive decisions between rounds.
**Key outcomes:**
- 9 new confirmed decisions (D-032 through D-040)
- THE FRIEND NPC pattern established as emotional centerpiece (one production-level NPC per character)
- Converged tag taxonomy for line pools (6 structural + 3 selection tags)
- Sova Transit District / Krenn System confirmed as first concrete setting
- Audio confirmed in v0.1 scope (8 files via Stable Audio Open)
- All 6 wow moments promoted to v0.1 scope
- Wiki taxonomy structure declared non-negotiable
- ~50 new tickets identified across all agents (deduplicated below)
- Full dependency chain mapped with critical path: Dual Lens Guide → Voice Kits → THE FRIEND → Validation → Scale
---
## Workshop Structure
**Round 1:** Each agent independently analyzed 9 content layers against the vertical slice spec (D-027). Layers: character voice, dialogue, monologue, environmental text, NPC profiles, spatial layout, audio, visual design, wiki/lore.
**Between rounds:** Project lead reviewed all 6 outputs and issued 9 directive decisions.
**Round 2:** Each agent read all 6 Round 1 outputs plus directives. Synthesis: convergences, disagreements, dependency chains, concrete next steps, missing tickets.
**Workshop brief:** `docs/workshops/content-gap-analysis_v0_1/content-gap-analysis-workshop-brief.md`
**Round 1 outputs:** `round1-{agent}.md` (6 files)
**Round 2 outputs:** `round2-{agent}.md` (6 files)
---
## Project Lead Decisions (Between Rounds)
These 9 directives were issued by the project lead after reviewing Round 1 outputs. They are non-negotiable constraints for Round 2 and all downstream work.
| # | Directive | Status |
|---|-----------|--------|
| 1 | Separate monologue pools per character | Confirmed, non-negotiable → D-032 |
| 2 | Color = relationship to player | Approved → D-033 |
| 3 | Audio included in v0.1 (6-8 files via Stable Audio Open, self-hosted) | Confirmed → D-038 |
| 4 | One NPC per character = THE FRIEND, production-level complex | Confirmed → D-034 |
| 5 | Wiki taxonomy structure: non-negotiable, must be established NOW | Confirmed → D-040 |
| 6 | Sova Transit District / Krenn System: first concrete star system | Confirmed (worldbuilding milestone) → D-036 |
| 7 | Detective's FRIEND: Sera Venn (Paula's design) | Confirmed → D-034 |
| 8 | All 6 wow moments in scope (Ozzie's 4 essential + 2 nice-to-have all promoted) | Confirmed → D-039 |
| 9 | Stable Audio Open licensing confirmed (free commercial under $1M revenue) | Confirmed → D-038 |
---
## Decisions Produced (D-032 through D-040)
Full decision text in `decisions/*.md`. Summary:
| ID | Title | Domain | Source |
|----|-------|--------|--------|
| D-032 | Separate monologue pools per character | content.md | Project lead directive #1 |
| D-033 | Entity color = relationship to player | perception.md | Araminta R1 proposal, project lead directive #2 |
| D-034 | THE FRIEND production-level NPC pattern | content.md | Ozzie R1 concept, project lead directive #4, Paula R2 designs |
| D-035 | Converged tag taxonomy for line pools (6+3) | content.md | Gestalt R1/R2 + Mellanie convergence |
| D-036 | Sova Transit District / Krenn System as v0.1 setting | content.md | Miri R1, project lead directive #6 |
| D-037 | Contraband specification | content.md | Miri R1/R2 proposal, team validation |
| D-038 | Audio in v0.1 scope via Stable Audio Open | scope.md | Project lead directives #3, #9; Ozzie R2 spec |
| D-039 | v0.1 wow moment scope — all 6 moments | scope.md | Ozzie R1/R2, project lead directive #8 |
| D-040 | Wiki taxonomy structure | process.md | Miri R2 proposal, project lead directive #5 |
---
## Key Convergences
Areas where multiple agents independently reached the same conclusion:
### Fully aligned (no further discussion needed)
- **Dual Lens Guide is the root dependency** — all 6 agents identified this
- **Monologue carries the game** — perception, tells, atmosphere, tutorial, character voice (Gestalt, Mellanie, Ozzie)
- **YAML for line pools** — Mellanie proposed, Gestalt refined, no disagreement
- **5 tell categories for v0.1** — text-via-monologue as renderer (Gestalt, Araminta, Mellanie)
- **30/50/20 entanglement ratio works** — validated against 15 NPCs (Paula, Gestalt)
- **Spatial layout is load-bearing** — sightlines are gameplay (Araminta, Paula, Ozzie)
- **Miri's setting is the substrate** — everyone builds on Sova Transit District
### Converged during Round 2
- **Tag taxonomy**: 6 structural + 3 selection tags per dialogue line; 3 additional for monologue (Gestalt R2 section 1)
- **Situation taxonomy**: 13 situations from Gestalt + Mellanie merge
- **THE FRIEND mechanical spec**: full pipeline depth test, ~70-100 authored lines per NPC
- **Audio architecture**: event-driven with asset registry + visual fallback (Gestalt R2 section 6)
- **Line previewer MVP**: Rust CLI sharing pipeline code, 7 must-have features (Gestalt R2 section 7)
- **NPC relationship web**: 15 NPCs, 5 triangles (Paula R2 reconciliation)
- **Dependency chain**: three parallel tracks converging at content packs (Paula R2 section 2)
- **Placeholder art pipeline**: four phases, zero image files for v0.1 (Araminta R2 section 3)
### Minor divergences resolved
- **Paula proposed 7 triangles, Gestalt proposed 4** → Paula reconciled to 5 triangles
- **Mellanie proposed 8 per-line tags, Gestalt proposed more** → Converged to 6+3 (dropped location and type from per-line, made them directory-level)
- **Mellanie wanted to defer audio** → Project lead overruled; audio confirmed
- **Araminta wanted to defer audio entirely** → Project lead overruled; visual indicators complement audio
- **Detective's FRIEND candidate** → Mellanie proposed Lera (bar owner), Paula proposed Sera Venn (Commission tech) → Project lead confirmed Sera Venn
---
## Open Questions
### Updated existing questions
- **Q-003 (Art direction)**: Further resolved. Araminta's v0.1 Visual Grammar proposal covers color palette, entity rendering, fog states, zone palettes. Long-term art direction remains open.
- **Q-005 (Prototype scale)**: Further resolved. 15 NPCs, 3 social sites, 1 district (Sova Transit). Full game scale TBD.
### New questions raised during workshop
| ID | Question | Owner | Context |
|----|----------|-------|---------|
| Q-012 | How does the generation expansion pass work? LLM, template-based, or rule-based? | Gestalt, Mellanie | Affects how base lines are authored. LLM needs style-strong anchors; rules need substitution patterns. |
| Q-013 | How does the line previewer handle THE FRIEND's temporal progression? | Gestalt, Dudley | Previewer needs sequence mode to simulate multi-visit contradiction arcs. |
| Q-014 | Audio timing with monologue — when does the chime fire relative to text? | Gestalt, Ozzie | Affects monologue line writing rhythm (first word shouldn't be the important one if chime precedes). |
| Q-015 | Does 4x generation expansion apply to THE FRIEND's custom lines? | Mellanie, Gestalt | Ozzie recommends no expansion on FRIEND lines — every line hand-authored. |
| Q-016 | Knowledge hierarchy for monologue prerequisites | Gestalt, Paula | Need `suspects` < `knows_of` < `knows_details` hierarchy, not binary `knows: X`. |
| Q-017 | Triangle pressure threshold — what events trigger escalation? | Gestalt, Paula | Need numeric pressure model for `confrontation` situation activation. |
---
## Ticket Inventory (Deduplicated)
Tickets identified across all 6 agents, deduplicated and categorized. Cross-referenced against existing tickets where applicable.
### THE FRIEND (Critical — pipeline depth test)
| Ticket | Owner | Priority | Notes |
|--------|-------|----------|-------|
| THE FRIEND: Smuggler (Kael Davan) — full profile + contradiction arc | Paula (profile), Mellanie (voice) | Critical | ~75-100 authored lines |
| THE FRIEND: Detective (Sera Venn) — full profile + contradiction arc | Paula (profile), Mellanie (voice) | Critical | ~75-100 authored lines |
| Contradiction arc design document (reusable pattern) | Paula | High | Template for future complex NPCs |
| THE FRIEND visual treatment spec | Araminta | High | Color transition, earned visual detail |
### Opening Experience (Critical — first impression)
| Ticket | Owner | Priority | Notes |
|--------|-------|----------|-------|
| Opening hook content — smuggler (10-15 monologue lines) | Mellanie | Critical | Diegetic tutorial, sets voice |
| Opening hook content — detective (10-15 monologue lines) | Mellanie | Critical | Different emotional register |
| First monologue surprise moment (per character) | Mellanie, Paula, Gestalt | High | Core mechanic proof before minute 15 |
### Character & Narrative Architecture (Critical path)
| Ticket | Owner | Priority | Notes |
|--------|-------|----------|-------|
| Character voice speech patterns | Paula + Mellanie | High | Speech-level detail for voice kits |
| Access tier shift design document | Paula + Gestalt | High | How access changes during gameplay |
| Mirror moment design document | Paula + Mellanie | Medium | 10-12 paired observation triggers |
| Flat NPC "almost interesting" pass | Mellanie | High | Investigation noise floor |
| Diegetic insert flavor text (per character) | Mellanie | Medium | Character-specific HUD text |
| Diegetic tutorial monologue lines (8-10 per character) | Mellanie | Medium | Movement, fog, sound, NPC interaction |
| News ticker content — Sova (20-30 lines) | Mellanie + Miri | High | Cheap worldbuilding, high atmosphere |
### Setting & Worldbuilding
| Ticket | Owner | Priority | Notes |
|--------|-------|----------|-------|
| Sova Texture Appendix (slang, idioms, decoration, local complaint) | Miri | Critical | Blocks Mellanie's dialogue authoring |
| Krenn System wiki entry (first star system profile) | Miri | High | Sets template for all future systems |
| Sova Station Profile | Miri | High | Off-district references in dialogue |
| Detective institutional chain of command | Miri + Paula | High | Blocks detective character build |
| Meridian coverage map for Sova Transit | Miri | Medium | Investigation mechanics, ring ops |
| Off-station connections brief | Miri | Medium | Ring NPC dialogue consistency |
| Span gate transit schedule | Miri | Medium | NPC routine design, ring timing |
| Observation gallery / viewport description | Miri | Low | Ozzie's "something out the window" |
### Wiki & Taxonomy
| Ticket | Owner | Priority | Notes |
|--------|-------|----------|-------|
| Wiki taxonomy structure + first entries | Miri + Qatux | Critical | Project lead: non-negotiable, NOW |
| Tag taxonomy wiki page | Gestalt | High | Reference document for all content authors |
| Line pool format specification (standalone doc) | Gestalt | High | Formalize Round 1/2 YAML format |
### Visual & Spatial Design
| Ticket | Owner | Priority | Notes |
|--------|-------|----------|-------|
| v0.1 Visual Grammar document | Araminta | Critical | Root visual dependency |
| Entity color system spec | Araminta | Critical | Relationship-to-player color mapping |
| Spatial layout: Logistics Hub | Araminta | High | Floor plan, sightlines, NPC positions |
| Spatial layout: Bar (The Last Shift) | Araminta | High | Corner booth as key observation position |
| Spatial layout: Corridors + Smuggling spaces | Araminta | High | Hidden spaces, maintenance corridors |
| Insert/HUD wireframe + dual-character variants | Araminta | High | Smuggler social map vs detective case file |
| Monologue display system visual spec | Araminta | High | Typography, animation, stacking rules |
| Text display hierarchy spec | Araminta | High | 4 text pipelines, 4 visual treatments |
| Sound indicator visual design | Araminta | High | Fog-edge pulse, complementary to audio |
| Fog rendering visual spec | Araminta | Medium | 4-state visibility model |
| Span gate signature visual element | Araminta | Medium | Rhythmic glow, first-impression anchor |
| Visual asset taxonomy (wiki structure) | Araminta | Medium | Future-ready directory structure |
| Environmental text visual standards | Araminta | Medium | Bilingual signage, terminal screens |
### Systems / Server (Content-Supporting)
| Ticket | Owner | Priority | Notes |
|--------|-------|----------|-------|
| Dialogue selection pipeline (4-layer filter) | Dudley + Gestalt | Critical | Core runtime: access → situation → trust → weighted |
| Monologue trigger system | Dudley + Gestalt | Critical | 9 triggers, character-specific pools, prerequisite gates |
| YAML content loader (hot-reload for previewer) | Dudley | High | Parses YAML into indexed line pools |
| Sound event system architecture | Dudley + Gestalt | High | Event emitter with audio + visual fallback |
| NPC mood state machine | Dudley | High | Drives Layer 4 selection + tell system |
| Trust progression system | Dudley | High | Surface → real → secret per NPC pair |
| Interaction tracking component | Dudley | High | Per-NPC-pair counters drive Layer 2 |
| Knowledge state component | Dudley + Gestalt | High | Gates monologue prerequisites |
| Observation event generator | Dudley | Critical | Bridge between simulation and perception |
| Tell state derivation system | Dudley | Medium | Reads axes, outputs observable tells |
| Line variety tracker | Dudley | Medium | Prevents repeat lines per session |
### Audio
| Ticket | Owner | Priority | Notes |
|--------|-------|----------|-------|
| Audio asset set — 8 files via Stable Audio Open | TBD | High | See Ozzie R2 section 4 for full spec |
### Existing Ticket Scope Updates
| Ticket | Update Needed |
|--------|---------------|
| #90 (Tell system) | Scope to 5 categories; text-via-monologue as v0.1 renderer |
| #124 (Sound system) | Include sound event emitter architecture + visual fallback |
| #168 (Tag taxonomy) | Reference converged taxonomy (D-035) |
| #179 (NPC profiles) | THE FRIEND depth split: 2 production-level, 13 standard |
| #189 (Cultural generation guide) | Sova Transit District as first concrete instance |
| #190-192 (Template content packs) | Parallel spatial layouts as co-deliverables |
| #193 (Line previewer) | Concrete MVP: 7 must-have features, Rust CLI, sequence mode |
| #261 (Dual Lens Authoring Guide) | Add: emotional divergence, access tier shifts, authoring checklist, THE FRIEND section |
---
## Dependency Chain (Converged)
Three parallel tracks converge at content pack production. Critical path highlighted.
```
TRACK A: Narrative (Paula) TRACK B: Setting (Miri) TRACK C: Systems (Gestalt+Araminta)
1. Dual Lens Guide (#261) ←─ 1. Sova Setting Brief (#189) 1. Line Pool Format Spec
**CRITICAL PATH** (Round 1 output = v0.1 draft) 2. Visual Grammar (Araminta)
| | 3. Spatial Layouts x3 (Araminta)
2. Character Voice Patterns 2. Wiki Taxonomy + Krenn Entry 4. Line Previewer (#193)
| |
3. THE FRIEND profiles (x2) 3. Sova Texture Appendix
**CRITICAL PATH** |
| 4. Contraband Spec
4. NPC Profiles (Tier 1-3) + Detective Chain of Command
| |
└────────────┬─────────────────┘
|
v
5. Character Voice Kits (Mellanie) ← **CRITICAL PATH**
|
6. Opening Hooks (Mellanie) ← **CRITICAL PATH**
|
└──────────────────────────────────────────────────┘
|
v
7. THE FRIEND Content Packs (Mellanie) ← **CRITICAL PATH**
|
8. VALIDATION: Previewer test
|
9. Content Packs x3 (#190-192) (Mellanie)
|
10. Polish: Tell lines, mirror moments, environmental text
```
**Critical path:** Dual Lens Guide → Voice Kits → THE FRIEND Content → Validation → Scale
**Parallel work (no dependencies):**
- Miri: Wiki taxonomy, Krenn System entry, Sova Texture Appendix, contraband spec
- Araminta: Visual Grammar, spatial layouts, insert wireframe
- Gestalt: Line pool format spec (formalize), knowledge state vocabulary
- Mellanie: Tag taxonomy smoke test (20 lines), environmental text templates, news ticker draft
- Audio: Generate station ambient + monologue chime (the two most important files)
---
## Content Volume Estimates (Mellanie R2)
| Category | Authored Lines | After Expansion |
|----------|---------------|-----------------|
| THE FRIEND: Kael Davan (full pack) | 75-100 | Hand-authored only |
| THE FRIEND: Sera Venn (full pack) | 75-100 | Hand-authored only |
| Template dialogue (3 packs) | 400-500 | ~1,600-2,000 (4x) |
| NPC-specific lines (~13 remaining) | 80-140 | ~320-560 (4x) |
| Monologue — smuggler | 120-160 | ~240-320 (2x) |
| Monologue — detective | 120-160 | ~240-320 (2x) |
| Opening hooks (2 characters) | 20-30 | Hand-authored only |
| Environmental text | 50-60 | N/A |
| News ticker / Meridian feed | 20-30 | N/A |
| UI microcopy | 40-50 | N/A |
| Tell monologue lines | 30-50 | N/A |
| **Total** | **~1,030-1,380** | **~3,200-4,200** |
---
## Per-Agent Next Steps
### Paula (Critical path owner)
1. Dual Lens Authoring Guide — full draft (blocks everything)
2. THE FRIEND: Kael Davan — full production profile
3. THE FRIEND: Sera Venn — full production profile
4. Relationship web formalization (15 NPCs, 5 triangles with Krenn names)
5. NPC Profiles: Tier 1 (4 entangled), Tier 2 (7 mundane), Tier 3 (3 flat)
### Mellanie (Content production)
1. Tag taxonomy smoke test (20 lines in YAML, immediate)
2. Environmental text templates + news ticker draft (unblocked)
3. Voice kits (3 options per character, needs Dual Lens Guide)
4. Opening hooks (needs voice kit validation)
5. THE FRIEND content packs (needs FRIEND profiles)
### Miri (Setting foundation)
1. Contraband Specification (unblocked, immediate)
2. Sova Texture Appendix (slang, idioms — blocks Mellanie)
3. Wiki taxonomy structure + Krenn System entry
4. NPC name finalization (mapping to Paula's web)
5. Detective chain of command
### Gestalt (Systems specification)
1. Lock tag taxonomy + line pool format (formalize as document)
2. Knowledge state vocabulary (blocks monologue prerequisites)
3. Dialogue selection pipeline specification
4. Sound event system architecture
5. Line previewer (#193) MVP scope
### Araminta (Visual design)
1. v0.1 Visual Grammar document (unblocked, immediate)
2. Spatial layouts x3 (needs Visual Grammar + Miri's setting)
3. Insert/HUD wireframe (dual-character variants)
4. Monologue display system spec
5. Sound indicator visual design
### Ozzie (Validation)
1. Review THE FRIEND contradiction arcs (gut check)
2. Audio asset specification finalization
3. Playtest readiness evaluation
4. Wow moment dependency tracking
---
## Workshop Assessment
**Strengths:**
- Remarkable convergence across 6 independent analyses
- THE FRIEND concept evolved from Ozzie's emotional instinct through Paula's structural design to Mellanie's authoring plan in a single workshop
- Miri's Sova Transit District gave the entire team a concrete foundation
- Tag taxonomy converged without coordination — Mellanie and Gestalt proposed nearly identical structures
- Dependency chain was independently identified by Mellanie, Paula, and Gestalt with compatible structures
**Risks:**
- Dual Lens Guide is a single point of failure — everything downstream blocks on Paula's deliverable
- Content volume (~1,030-1,380 lines) is significant for one writer (Mellanie)
- 17 content-supporting systems identified, 0 built — server team has substantial work
- Generation expansion on monologue risks flattening character voice (Ozzie, Mellanie flag 2x max for monologue vs 4x for dialogue)
**Flags for Qatux:**
- Mellanie proposed Lera Sessik as detective's FRIEND in Round 2; Paula proposed Sera Venn. Project lead confirmed Sera Venn. Lera remains the bar owner, not THE FRIEND.
- Paula reconciled from 7 triangles to 5 triangles in Round 2. The 5-triangle model is canonical.
- Miri proposed different NPC name assignments than Paula's Round 2 reconciliation. Paula's Round 2 assignments are canonical (verified by project lead's Sera Venn confirmation).
- Gestalt's "17 content needs, 0 built" assessment accurately describes the systems gap.
---
*Compiled by Qatux. Workshop outputs archived at `docs/workshops/content-gap-analysis_v0_1/`.*
*Decisions recorded in `decisions/*.md` (D-032 through D-040).*
*Last updated: 2026-02-11*
@@ -0,0 +1,383 @@
# Round 1 Workshop Response: Araminta (Visual Design)
**Agent:** Araminta (Visual Designer)
**Date:** 2026-02-11
**Scope:** All 9 layers from visual design perspective
---
## Layer 1: Art Direction & Visual Identity
### Q1: Can I define a v0.1 visual identity without resolving Q-003 fully?
**Yes. And we should do exactly that.**
Q-003 asks about long-term art direction. That's a question about final fidelity, sprite style, animation approach, lighting systems. We don't need to answer any of that to build v0.1. What we need is a **v0.1 visual grammar** - a set of rules for how information is communicated visually, regardless of art fidelity.
**Proposal: Resolve Q-003 partially with a scoped decision.**
> **D-XXX: v0.1 visual approach - "readable information design, atmosphere through text and spatial composition."**
>
> - Entities are colored rectangles with text labels. No sprites in v0.1.
> - Color communicates RELATIONSHIP TO PLAYER, not object type.
> - Spatial layout communicates function - the bar FEELS different from the logistics hub through room shape, furniture density, corridor width.
> - Atmosphere is carried by monologue text, dialogue content, and sound indicators - NOT by art.
> - All visual rules must scale: a color that means "danger" in boxes-with-labels must still mean "danger" when we add sprites.
This is not "we'll figure out art later." This is "v0.1's art IS information design." The boxes aren't placeholder art waiting for real art. The boxes ARE the visual language at this fidelity level.
Long-term Q-003 (sprite style, animation, lighting) stays open. It doesn't block anything.
### Q2: What's the minimum art direction document needed for consistency?
A **one-page visual grammar** covering:
1. **Color palette** (see below)
2. **Entity sizing rules** (NPCs, furniture, walls, doors - relative proportions)
3. **Label conventions** (what text shows on entities, when, at what zoom)
4. **UI layer separation** (game world vs. insert overlay vs. monologue text vs. dialogue)
5. **Fog/visibility rendering rules** (visible, fog-edge, hidden - how they look)
That's it. No style guide for art we haven't made. No font selection for UI that doesn't exist yet. Just the rules for communicating game state visually.
### Proposed v0.1 Color Palette
The Commonwealth is sleek, advanced, subtle. Even at boxes-with-labels fidelity, we can communicate mood.
**Background/Environment:**
- `#1a1a2e` - Deep navy. Base floor/ground. The station is dimly lit by default.
- `#2d2d44` - Slightly lighter. Walls, barriers, solid obstacles.
- `#0f0f1a` - Near-black. Fog/hidden areas. Darkness should feel HEAVY.
**Entity Colors (relationship-to-player, NOT object type):**
- `#4a9ebb` - Cool teal. Neutral/unknown NPCs. Default state.
- `#6bc9a6` - Soft green. Friendly/trusted NPCs. People your character knows and likes.
- `#e8c547` - Warm amber. NPCs of interest. Your monologue has flagged something about them.
- `#d45d5d` - Muted red. Hostile/dangerous. ONLY when the character KNOWS there's danger. Not omniscient threat display.
- `#8b8ba0` - Grey. Furniture, static objects, environmental elements.
**UI Overlay Colors:**
- `#3d7aaf` with 40% opacity - Insert/minimap overlay tint. The neural implant's "screen."
- `#ffffff` at 85% opacity - Primary UI text (labels, insert readouts).
- `#a0a0b8` at 70% opacity - Secondary UI text (non-critical info).
**Monologue Text:**
- `#c8d0e0` - Internal monologue. Slightly cool, slightly ethereal. This is thought, not speech.
- Italicized. Positioned bottom-center or left panel. Fades in/out, doesn't snap.
**Dialogue Text:**
- `#ffffff` - NPC speech. Clean white. Grounded, real.
- NPC name in their relationship color above the dialogue line.
**Key principle:** Red means danger TO YOUR CHARACTER, not danger in the abstract. If the smuggler's friend is secretly an informant, that NPC is GREEN until the smuggler discovers the betrayal. The detective might see that same NPC as AMBER (person of interest) from the start. Same NPC, different color, because asymmetric information drives the palette.
This is D-011 (fog of perception) applied to the color system. The player sees what the character knows.
### Fog Rendering Specification
Three visual states for tiles:
| State | Appearance | When |
|-------|-----------|------|
| **Visible** | Full color, full detail, entities shown | Currently in LOS |
| **Fog-edge** | Desaturated 50%, entities hidden, sound indicators shown | Adjacent to LOS, within medium sound range |
| **Hidden** | Near-black (`#0f0f1a`), no entities, no indicators | Outside perception range |
| **Remembered** | Desaturated 70%, static snapshot of last-seen state, no entities | Previously visited, now outside LOS |
The "remembered" state is important. D-011 says fog returns on departure, but the player should see a ghost of what they last saw - furniture stays, NPCs vanish. This communicates "I was here, but things may have changed." It costs almost nothing to implement and sells the information-decay concept visually.
---
## Layer 2: Narrative Framework & Character Design
### Visual implications of character divergence
The two characters need **distinct visual treatments** even at boxes-with-labels fidelity:
- **Smuggler's player entity:** Slightly different shade or shape indicator. Doesn't need to be dramatic - a subtle color difference in the player marker is enough.
- **Detective's player entity:** Same principle, different accent.
More importantly: the **insert overlay** should feel different per character. The smuggler's insert is consumer-grade, maybe slightly less polished. The detective's is institutional - cleaner layout, more structured information display. This is a v0.2+ concern but worth noting now so the insert UI is designed with parameterization in mind.
For v0.1: a small character icon or color accent on the HUD that says "you are the smuggler" vs "you are the detective." Minimal but present.
---
## Layer 3: Station District Setting
### Visual layout principles for the three social sites
Even with boxes, spatial design communicates EVERYTHING about a location. Here's what each site should feel like through layout alone:
**Workplace (Logistics Hub):**
- Regular grid layout. Rows of workstations. Wide corridors for cargo movement.
- A few enclosed offices (walls block LOS - management has privacy).
- One loading bay area (open, high visibility, the "public" face).
- One back area (restricted, fewer sightlines - where secrets live).
- **Visual feel:** Ordered, institutional, functional. The regularity IS the aesthetic.
**Social Venue (Bar):**
- Irregular, organic layout. Booths create pockets of privacy.
- Central bar area with high visibility (everyone can see who's ordering).
- Corner tables with partial LOS blocks (intimate conversations).
- A back room or alley exit (the sketchy escape route).
- **Visual feel:** Warm-toned compared to the hub. Furniture density higher. More "walls" from booths and partitions creating complex sightlines.
**Smuggling Ring (Hidden within/adjacent to other spaces):**
- NOT a labeled "smuggling HQ." It's a maintenance corridor, a storage room, a section of the cargo bay that's officially off-limits.
- Tight spaces, poor sightlines, few entrances/exits.
- Visually indistinguishable from other utility spaces unless you know what to look for.
- **Visual feel:** Cramped. The contrast with the open logistics hub IS the atmosphere.
**Cross-site visual language:**
- Public spaces: wider corridors, more open tiles, lighter floor colors.
- Private spaces: narrower, enclosed, slightly darker floor tones.
- Transition zones: doorways, corridors between sites. These are where "wrong place, wrong time" moments happen. They need enough space for the player to see someone passing through.
No art needed. Room shapes and tile colors do the work. A bar booth is a 3x2 rectangle with half-height wall blocks. An office is a 4x4 enclosed room with a door entity. The spatial relationships create the gameplay affordances.
---
## Layer 4: Content Pipeline & Authoring Format
### Visual implications of the authoring format
Not my primary domain, but one critical visual note:
**Every dialogue line needs a display context tag.** The renderer needs to know:
- Is this spoken dialogue? (Display in dialogue UI panel, NPC name header)
- Is this overheard conversation? (Display as fog-edge text snippet, lower opacity, partial)
- Is this a monologue reaction? (Display in monologue area, italic, character voice color)
- Is this environmental text? (Display as world-space label on the object/sign/terminal)
These are four different rendering pipelines. The authoring format must tag which pipeline each line targets. Mellanie and Paula need this in the format spec so they don't write a line that falls between categories.
---
## Layer 5: Template Content (3 Social Sites)
### Visual deliverables per template
Each social site template needs a **spatial layout document** alongside the content pack. This is my deliverable. For each template:
1. **Floor plan** - tile-level layout showing walls, doors, furniture, sightlines
2. **Sightline diagram** - from key observation positions, what can you see? Where are the blind spots?
3. **Sound propagation notes** - which walls are thin (sound bleeds through), which are thick
4. **NPC position markers** - where do NPCs stand/sit during their routine phases?
5. **Player approach vectors** - how does the player enter? What do they see first?
This is the spatial design that makes observation gameplay work. A bar where you can see everyone from the entrance is a different game than a bar where you have to walk past three booths before you see the back table.
**Proposed ticket: spatial layout design per social site template (3 layouts, high priority).** This should be parallel with the content packs, not after them. Layout affects what content makes sense.
---
## Layer 6: NPC Profiles & Dialogue
### Visual expression of NPCs at boxes-with-labels fidelity
At v0.1 fidelity, NPC differentiation is:
1. **Color** (relationship state, as defined in the palette above)
2. **Label text** (name when known, role when partially known, "?" when unknown)
3. **Position and movement** (are they at their expected location? Moving with purpose or loitering?)
That's it. No character portraits. No sprite variation. No clothing differences.
**But this is enough.** The detective walks into the logistics hub. They see: a cluster of teal rectangles labeled "Worker," "Worker," "Worker," one amber rectangle labeled "Jax (shift supervisor)." Amber because the detective's case file flagged Jax. The smuggler walks in and sees: green rectangles labeled "Tomas," "Kira," "Jax" (all known, all friendly). Same room, different visual state, different information.
The color system IS the visual expression of asymmetric information. It doesn't need sprites to work.
### Tell system visual language (#251)
D-024 mentions a tell system - observable behaviors mapping to internal states. At boxes-with-labels fidelity, tells are NOT visual. They're:
- Monologue: "Jax is tapping his foot. He does that when he's nervous."
- Dialogue: NPC speech patterns change based on mood (Mellanie's domain)
- Behavioral: NPC is in an unexpected location or moving unusually
The monologue is the tell renderer for v0.1. Visual tells (sweating, fidgeting, avoiding eye contact) are sprite-fidelity features. Text carries the load for now.
When we get to sprites: each NPC should have 2-3 behavioral animation states (idle, nervous, angry) that map to mood axes. But that's later.
---
## Layer 7: Monologue & Observation Text
### Monologue presentation design
This is one of my key deliverables. The monologue is the player's primary information channel in v0.1.
**Presentation rules:**
| Property | Specification | Rationale |
|----------|--------------|-----------|
| **Position** | Bottom of screen, left-aligned, 60% width max | Doesn't obscure the game world. Left-align because we read left-to-right; it's the natural "start reading" position. |
| **Font** | Monospace or clean sans-serif. Slightly smaller than dialogue. | Monologue is internal thought - quieter than spoken words. Monospace gives a "data overlay" feel consistent with the insert aesthetic. |
| **Color** | `#c8d0e0` (cool off-white) | Distinct from dialogue (#ffffff) and UI text. Slightly ethereal. |
| **Style** | Italic | Universal convention for internal thought. Instantly readable as "this isn't spoken." |
| **Animation** | Fade in over 0.3s, hold for read-time + 1s, fade out over 0.5s | Not jarring. Doesn't demand attention like a popup. Respects the player's pace. |
| **Stacking** | Max 3 lines visible. New lines push old lines up and fade them. | Prevents monologue flooding during high-event moments. |
| **Priority** | Observation > atmosphere > tutorial hint | If multiple monologue triggers fire simultaneously, observation wins. The player needs to know "that NPC is acting weird" more than "nice evening." |
**Character voice differentiation (visual):**
The smuggler and detective should have subtly different monologue presentation:
- **Smuggler:** Slightly warmer text color (`#d0d0c0`), slightly more casual phrasing (Mellanie's domain, but the visual warmth supports it).
- **Detective:** Slightly cooler text color (`#c0c8e0`), more structured phrasing.
This is a minor touch that compounds over 30 minutes. The player's subconscious registers "this character thinks differently" through the text color before they consciously parse the words.
### Observation text vs. monologue vs. dialogue - visual hierarchy
The player needs to instantly distinguish these three information channels:
| Channel | Position | Style | Color | Example |
|---------|----------|-------|-------|---------|
| **Dialogue** | Center-bottom panel, NPC name header | Regular weight | `#ffffff` on dark panel | **Kira:** "Quiet night at the hub." |
| **Monologue** | Bottom-left, no panel/frame | Italic | `#c8d0e0` | *She says that, but she won't look at me.* |
| **Observation** | Same as monologue but with icon marker | Italic + small eye icon | `#c8d0e0` | [eye] *Jax just walked past the restricted door.* |
| **Environmental** | World-space, attached to object | Small caps, subtle | `#8b8ba0` | CARGO BAY 7 - AUTHORIZED PERSONNEL ONLY |
The observation marker (small eye icon) is important. It tells the player "your character noticed something." It's the visual cue for the detective mechanic. Over time, players learn: eye icon = pay attention.
---
## Layer 8: UI Text & Environmental Content
### Q1: What text appears on screen that isn't dialogue or monologue?
Complete inventory:
**Insert/HUD Layer (diegetic - it's the neural implant):**
- Time display (D-031: game clock, day phase indicator)
- Minimap with POI dots and directional arrows (D-013)
- POI labels when close enough
- Alert notifications ("Message from [contact name]")
- Insert-mode indicators if perception modes are active (v0.1: just natural vision, but the slot should exist)
**World-Space Labels:**
- Location names (room/area labels: "Logistics Hub - Bay 7")
- Door labels ("Office," "Storage," "Restricted")
- Sign text (business names, warnings, directions)
- Terminal screens (if examine mechanic exists: cargo manifests, schedules, case files)
- NPC name/role labels (floating above entity rectangle)
**System UI (non-diegetic, minimal):**
- Pause indicator
- Character name/role reminder (top corner, very subtle)
- Save indicator (if save/load exists)
- Interaction prompt (when near an interactable: "E: Examine" or similar)
**NOT on screen (deliberately):**
- Health bars, stamina bars, XP indicators - none of these exist in v0.1 and may never exist in traditional form
- Quest log/objective marker - the monologue IS the quest hint system
- Mini-tutorial popups - monologue handles this diegetically (D-016)
### Q2: How does the neural implant UI look?
**It's a literal implant overlay, not an abstracted game UI.** This is non-negotiable given D-013.
The insert is what the character sees when they activate their neural implant's navigation overlay. In v0.1, this means:
**Visual treatment:**
- Semi-transparent overlay with a subtle blue-tinted border or vignette (`#3d7aaf` at 15-20% opacity)
- The minimap is NOT a separate UI window. It's an overlay that tints the top-right (or bottom-right) corner of the game view.
- POI markers are simple geometric shapes: circles for locations, diamonds for contacts, squares for objectives.
- Text on the insert uses a slightly different font weight or a monospace font - it's DIGITAL text rendered by the implant, distinct from the player's natural perception.
**Behavioral rules:**
- The insert is always "on" in v0.1 (the character always has their implant active). Toggle is a v0.2+ feature.
- Insert information updates based on character knowledge (D-013: POIs only appear when learned).
- The overlay should feel like looking at a heads-up display, not a game map. Subtle scan lines or a very light grid pattern would reinforce this. Even at v0.1, a 1-pixel grid at 5% opacity costs nothing and communicates "technology."
**What the insert does NOT do:**
- Show NPC positions beyond what the character can sense (no omniscient radar)
- Show information the character hasn't learned
- Provide objective markers for things the character doesn't know about
The insert is BOUNDED by the same information rules as everything else (D-010 principle 2). It's a tool the character uses, not a game abstraction.
### Q3 (Gestalt asked this, but visual input): Onboarding through monologue
The monologue IS the tutorial. But the insert could display a brief "new overlay detected" or "insert calibrating" sequence on first load to teach the player that the blue-tinted area is their implant. One line of insert text: "Neural insert active. Navigation overlay online." Then the monologue takes over: *"Let's see what's on the schedule today."* Diegetic from the first second.
---
## Layer 9: Audio Direction
### Visual design implications of sound
Since v0.1 may have limited or no audio, sound information needs VISUAL representation:
**Sound indicators at fog edge (D-018 medium range):**
- Small animated ripple or pulse icon at the fog boundary, in the direction of the sound.
- Color-coded by sound type:
- `#c8d0e0` (neutral) - footsteps, movement, ambient activity
- `#e8c547` (amber) - conversation, voices (something to investigate)
- `#d45d5d` (red) - aggressive sounds, alarm, conflict
- Size/intensity pulses with sound volume.
- The monologue fires simultaneously to interpret: *"Voices. Coming from the back office."*
**Close-range sound (within LOS):**
- No special visual indicator needed. You can SEE the source.
- Dialogue or conversation text renders normally.
**Long-range insert alerts:**
- Display on the insert overlay as a notification blip.
- Text: "[Contact name] sent a location pin" or "Disturbance reported in [area]."
- These are spoofable (D-018) - the visual design should NOT distinguish real from fake alerts. The player has to figure that out.
Even if we have zero audio files in v0.1, the sound model works through these visual indicators plus monologue text. Sound-as-information doesn't require sound-as-audio. The three-range model can be proven with visual indicators and text alone.
**Audio direction for later:**
I'd defer actual audio content entirely from v0.1. The visual indicator system proves the sound model mechanically. Adding audio is additive polish, not structural. When we do add audio:
- Ambient: low drone, station hum, ventilation. The Commonwealth is a machine. It breathes.
- Close range: footsteps on metal, door mechanisms, muffled conversation bleed.
- No music in gameplay. Music in menus/loading only. The station's ambient sound IS the soundtrack.
---
## Summary: Visual Design Deliverables for v0.1
### Documents to produce
| Document | Priority | Description |
|----------|----------|-------------|
| **v0.1 Visual Grammar** (1 page) | Critical | Color palette, entity sizing, label rules, UI layer separation, fog rendering spec. Everything above in Layer 1, codified. |
| **Spatial Layout: Logistics Hub** | High | Floor plan, sightlines, NPC positions, approach vectors |
| **Spatial Layout: Bar** | High | Floor plan, sightlines, NPC positions, approach vectors |
| **Spatial Layout: Smuggling spaces** | High | Floor plan, sightlines, NPC positions, approach vectors |
| **Insert/HUD Wireframe** | High | Minimap position, text areas, notification zones, monologue display area |
| **Monologue Presentation Spec** | High | Typography, animation, stacking, priority rules |
| **Sound Indicator Visual Spec** | Medium | Fog-edge indicators, color coding, pulse behavior |
### Proposed new tickets
| Title | Priority | Rationale |
|-------|----------|-----------|
| v0.1 Visual Grammar document | Critical | Everything visual depends on this. Must exist before any renderer work begins. |
| Spatial layout design - 3 social site templates | High | Sightlines and room layout are the physical foundation of the observation mechanic. Parallel with content packs. |
| Insert/HUD wireframe and spec | High | The insert is the player's primary UI. Needs to be designed before implemented. |
| Monologue display system spec | High | Monologue is the primary content delivery mechanism. Its rendering rules affect every other visual element. |
| Sound indicator visual design | Medium | Required for the three-range model to function without audio files. |
| Entity color system implementation | High | The relationship-to-player color mapping is the primary visual expression of asymmetric information. |
### Dependencies
```
Visual Grammar ──> Spatial Layouts ──> Content Packs (layout affects what content makes sense)
Visual Grammar ──> Insert/HUD Wireframe ──> Insert implementation
Visual Grammar ──> Entity Color System ──> Fog rendering, NPC rendering
Visual Grammar ──> Monologue Display Spec ──> Monologue system UI
```
The Visual Grammar document is the root dependency for all visual work. I can produce it quickly once this workshop concludes and we have consensus on the color-as-relationship-state approach.
### One strong opinion
**The entity color system (color = relationship to player, not object type) is the single most important visual decision for v0.1.** It's how asymmetric information becomes visible. It's how two characters in the same room see different things. It's the visual proof of concept. If we get nothing else right visually, get this right. A teal rectangle labeled "Worker" for the detective and a green rectangle labeled "Jax" for the smuggler - that IS the game, rendered at minimum fidelity.
Everything else is refinement. This is the foundation.
---
*Written by Araminta. Keep it clean, we can layer detail later.*
@@ -0,0 +1,591 @@
# Round 1: Gestalt (Systems Design & Fun Factor)
**Workshop:** v0.1 Content Gap Analysis
**Date:** 2026-02-11
**Scope:** All 9 layers — systems design questions
---
## Layer 1: Art Direction & Visual Identity
No direct questions for Gestalt here, but one mechanical observation:
**Art direction is downstream of information design.** The visual system's primary job in The Settled Reach is communicating *what the player can and cannot perceive*. Fog edges, vision cone boundaries, sound indicators at fog-edge, NPC state tells — these are all visual elements that serve information mechanics first, aesthetics second.
Whatever Araminta proposes, the art direction must prioritize **perceptual legibility**: can the player instantly distinguish "I can see this" from "I cannot see this" from "I heard something here"? If that's clear, the aesthetics can be anything from pixel art to abstract minimalism. If it's unclear, no amount of beauty fixes the game.
**Recommendation for Q-003:** "Functional minimalism with perceptual clarity" is the v0.1 art direction. Atmosphere is carried by monologue (D-016). Visual mood is a polish layer, not a proof-of-concept requirement.
---
## Layer 2: Access Tiers and Character Builds
**Question:** How do access tiers (D-028 Layer 1) interact with the two character builds mechanically?
Let me break down what this actually means mechanically.
Access tiers are the first filter on every line of dialogue. They answer: "Given who the player character IS, what version of this NPC do they see?" This isn't a binary insider/outsider — it's a multi-axis classification that determines which lines from the pool are eligible for selection.
### Access Tier Model for v0.1
| Access Tier | Description | Smuggler sees | Detective sees |
|-------------|-------------|---------------|----------------|
| `public` | Available to everyone. Greetings, small talk, general observations. | Yes | Yes |
| `insider` | Available to people embedded in the social group. Shop talk, complaints, gossip about colleagues. | Logistics hub: Yes. Bar: Regular status. Ring: Yes. | Logistics hub: Outsider. Bar: Regular. Ring: No. |
| `authority` | Available to people with institutional power. Deference, compliance, formal responses. | No (except through cover) | Yes |
| `peer` | Available to people of equal social standing within a group. Casual, unguarded. | With ring members, coworkers | With other investigators, institutional contacts |
| `hostile` | Guarded, deflecting, minimal. Shown to people perceived as a threat. | From detective-allied NPCs (if blown) | From ring-connected NPCs |
### How This Maps to the Two Characters
**Smuggler access profile:**
| Social Site | Default Access | Why |
|-------------|---------------|-----|
| Logistics Hub | `insider` + `peer` | Works there. Coworkers. |
| Bar | `public` or `insider` (regular) | Social regular, not staff |
| Smuggling Ring | `insider` + `peer` | Member |
**Detective access profile:**
| Social Site | Default Access | Why |
|-------------|---------------|-----|
| Logistics Hub | `authority` | Investigating. Workers defer/comply. |
| Bar | `public` | No special status |
| Smuggling Ring | `hostile` (if known) or `public` (if not) | Target of investigation |
### The Interesting Decision Space
Here's where this creates gameplay. Access tiers are the player's **starting hand**, not their final state. The systems must allow tier SHIFTS during play:
| Shift | Mechanism | Example |
|-------|-----------|---------|
| `public` -> `insider` | Repeated positive interactions, time spent | Detective becomes a bar regular after visiting 3-4 times |
| `insider` -> `hostile` | Cover blown, secret discovered | Smuggler is seen talking to the detective |
| `authority` -> `peer` | Trust built through fairness, personal disclosure | Detective earns a worker's trust by keeping a minor infraction quiet |
| `peer` -> `hostile` | Betrayal, information leak | Smuggler discovers a ring member is informing |
**These tier shifts ARE the social gameplay.** The player isn't just receiving different dialogue — they're actively managing their social position by choosing who to talk to, what to reveal, and who to be seen with. Every conversation is a potential tier shift event.
**What Paula needs for the Dual Lens Guide:** A matrix per social site showing starting access for each character, plus the 2-3 most likely tier shift paths. Not every combination — just the ones the content packs need to support.
---
## Layer 3: Station District Setting
No direct questions for Gestalt here, but a mechanical note for Miri:
The station district setting needs to produce **spatial information asymmetry**. Concretely:
- At least one area that's publicly accessible but has a hidden back room / private area
- At least one area where the smuggler has natural access but the detective would need a reason to enter
- At least one chokepoint where NPCs from different social sites cross paths (this is where cross-template contamination becomes observable)
These are spatial requirements that emerge from the information design, not just atmosphere choices.
---
## Layer 4: Content Pipeline & Authoring Format
*Cracks knuckles.* This is the big one. Let me propose the concrete line pool format.
### Line Pool Authoring Format: YAML
YAML is the right choice for human-authored content. It's readable, supports comments (authors can annotate their intent), handles multiline strings naturally, and has mature tooling. JSON is too noisy for 500+ authored lines. CSV loses structure. TOML gets awkward for nested data.
### Concrete Line Pool File Structure
Each template gets one YAML file per content category. The file structure:
```
content/
templates/
logistics-hub/
dialogue.yaml # NPC role dialogue lines
monologue.yaml # Player character reactions to this location
environmental.yaml # Signs, terminals, ambient text
trait-guide.yaml # How personality traits modify base lines
bar/
dialogue.yaml
monologue.yaml
environmental.yaml
trait-guide.yaml
smuggling-ring/
dialogue.yaml
monologue.yaml
environmental.yaml
trait-guide.yaml
characters/
smuggler/
voice-kit.yaml # Character-specific monologue voice
opening-hook.yaml # First 5 minutes content
detective/
voice-kit.yaml
opening-hook.yaml
shared/
greetings.yaml # Cross-template greeting pools
farewells.yaml # Cross-template farewell pools
generic-ambient.yaml # Non-location-specific monologue
```
### Line Entry Schema
Here's what a single line looks like in `dialogue.yaml`:
```yaml
# logistics-hub/dialogue.yaml
# Template: Logistics Hub (Workplace)
# Author: Mellanie
# Last updated: YYYY-MM-DD
meta:
template: logistics_hub
version: 1
line_count: 70 # target: 55-70 authored lines for this template
lines:
- id: lh_d_001
text: "Another shipment from Taliesin. Third one this week. Must be nice to have that kind of credit flow."
role: dock_worker # which NPC role speaks this
access: [insider, peer] # who hears this (D-028 Layer 1)
trust: surface # disclosure tier: surface | real | secret
topic: [work, cargo, money] # what the line is about
mood: [neutral, tired] # NPC mood states that select this line
situation: [routine, morning] # when this line is eligible
tags: [gossip, observation] # freeform classification
dual_lens: # how this line hits differently per character
smuggler: "Routine shop talk. But Taliesin shipments are your cover run."
detective: "Cargo volume anomaly. Worth checking manifests."
notes: "Sets up Taliesin as a location name. Smuggler knows this is cover cargo."
- id: lh_d_002
text: "You're new around here? Or just... visiting?"
role: dock_worker
access: [public]
trust: surface
topic: [social, identity]
mood: [cautious, neutral]
situation: [first_meeting]
tags: [greeting, probe]
dual_lens:
smuggler: "Never triggered — smuggler is known here."
detective: "First contact. Worker is sizing you up."
- id: lh_d_003
text: "Look, I mind my own business. You should try it."
role: dock_worker
access: [authority, hostile]
trust: surface
topic: [deflection]
mood: [annoyed, defensive]
situation: [interrogation, repeated_visit]
tags: [resistance, wall]
dual_lens:
smuggler: "Only if your cover is blown and they see you as authority now."
detective: "Standard resistance. Either genuinely uninvolved or protecting someone."
```
### Minimum Viable Tag Set for v0.1
Here's the taxonomy — the minimum set of tags that makes the four dialogue layers functional:
#### Structural Tags (required on every line)
| Tag | Type | Values | Purpose |
|-----|------|--------|---------|
| `id` | string | `{template}_{type}_{###}` | Unique identifier |
| `text` | string | The authored line | What the NPC says |
| `role` | enum | Template-defined roles (e.g., `dock_worker`, `bartender`, `ring_courier`) | Which NPC role speaks this |
| `access` | list\<enum\> | `public`, `insider`, `authority`, `peer`, `hostile` | D-028 Layer 1: who hears this |
| `trust` | enum | `surface`, `real`, `secret` | D-028 Layer 3: disclosure tier |
| `situation` | list\<enum\> | See situation taxonomy below | When this line is eligible |
#### Content Tags (recommended, can be empty)
| Tag | Type | Values | Purpose |
|-----|------|--------|---------|
| `topic` | list\<enum\> | `work`, `social`, `cargo`, `money`, `relationships`, `rumors`, `identity`, `deflection`, `weather`, `complaint` | What the line is about — enables topic-based conversation steering |
| `mood` | list\<enum\> | `neutral`, `happy`, `tired`, `annoyed`, `nervous`, `defensive`, `friendly`, `cautious` | NPC mood states that select this line |
| `tags` | list\<string\> | Freeform | Author classification for search and grouping |
#### Authoring-Only Tags (not consumed by engine, used by previewer and authors)
| Tag | Type | Values | Purpose |
|-----|------|--------|---------|
| `dual_lens` | map | Per-character notes | How this line reads differently per character |
| `notes` | string | Author comments | Design intent, context, dependencies |
#### Situation Taxonomy for v0.1
Situations are the context triggers that make lines eligible. Minimum set:
| Situation | Description |
|-----------|-------------|
| `greeting` | First interaction this game-day |
| `first_meeting` | Characters have never met |
| `routine` | Normal daily activity |
| `morning` / `afternoon` / `evening` / `night` | Day phase (D-031) |
| `repeated_visit` | Player has visited this NPC 3+ times |
| `interrogation` | Player is asking pointed questions |
| `witnessed_secret` | Player has seen something they shouldn't |
| `idle` | NPC is between activities |
| `working` | NPC is performing their job |
| `social` | NPC is socializing (bar, break, etc.) |
| `confrontation` | Triangle tension has boiled over |
| `post_event` | Responding to a recent simulation event |
### How the Four Dialogue Layers Map to Tags
**Question:** How do the 4 dialogue layers map to line tags? One tag per layer, or more complex?
Let me map it out:
| Dialogue Layer | Tag(s) Used | Selection Logic |
|----------------|-------------|-----------------|
| **Layer 1: Access tier** | `access` | Hard filter. If the player character's current access tier for this NPC's social site is not in the line's `access` list, the line is **invisible**. No fallthrough. |
| **Layer 2: Relationship history** | `situation` + engine state | The engine tracks interaction count, last interaction time, and notable events. This modifies which `situation` values are active. E.g., `first_meeting` is only true once; `repeated_visit` activates after threshold. **Not a single tag — it's engine state mapped to situation eligibility.** |
| **Layer 3: Trust-gated gossip** | `trust` | Progressive filter. NPCs start at `surface`. As relationship improves, `real` lines become available. `secret` lines only after significant trust threshold. **One tag, three values, engine controls the threshold.** |
| **Layer 4: Unprompted disclosure** | `topic` + `mood` + engine state | The NPC has things they WANT to say (driven by mood, recent events, triangle pressure). The engine picks from eligible lines weighted by NPC mood and topic relevance. **No single tag — it's a weighted selection across mood + topic from the eligible pool.** |
#### Selection Pipeline (simplified)
```
All lines for this NPC's role
|
├── Filter by access tier (Layer 1) → removes ~40-60% of lines
|
├── Filter by situation (Layer 2) → narrows to context-appropriate lines
|
├── Filter by trust level (Layer 3) → caps disclosure depth
|
└── Weight by mood + topic relevance (Layer 4) → ranks remaining lines
|
└── Select top-weighted line (with variety tracking to avoid repeats)
```
**Key insight:** Layers 1 and 3 are HARD FILTERS (binary: eligible or not). Layers 2 and 4 are SOFT SELECTORS (weighting and context). This means:
- Authors must ensure every access/trust combination has enough lines to avoid dead conversations
- Authors can be more flexible with mood/topic — the engine can fall back to `neutral` mood lines
### Monologue Line Format
Monologue uses a similar but distinct schema. Key difference: monologue is triggered by observation EVENTS, not conversation initiation.
```yaml
# logistics-hub/monologue.yaml
lines:
- id: lh_m_001
text: "Busy morning. The usual controlled chaos."
character: smuggler
trigger: enter_location # what observation event fires this
location: logistics_hub
situation: [morning, routine]
mood: [neutral, relaxed] # character mood, not NPC mood
prerequisite: null # knowledge state required (null = always eligible)
tags: [atmosphere, establishing]
- id: lh_m_002
text: "Same faces, same cargo, same lies. Comfortable."
character: smuggler
trigger: enter_location
location: logistics_hub
situation: [morning, routine]
mood: [neutral, content]
prerequisite: { knows: smuggling_operation }
tags: [atmosphere, character_voice, irony]
- id: lh_m_003
text: "Standard logistics operation. On paper. The throughput numbers don't add up, though."
character: detective
trigger: enter_location
location: logistics_hub
situation: [morning, routine]
mood: [neutral, analytical]
prerequisite: { knows: cargo_anomaly }
tags: [investigation, observation, clue]
```
#### Monologue Trigger Taxonomy for v0.1
| Trigger | Description | Example |
|---------|-------------|---------|
| `enter_location` | Player enters a new area | "The bar's quieter than usual." |
| `observe_npc` | Player sees an NPC doing something | "They're checking the manifest again." |
| `hear_sound` | Sound event from fog edge | "Footsteps. Two people, moving fast." |
| `observe_anomaly` | NPC deviates from routine | "That's not where they usually go at this hour." |
| `post_conversation` | After dialogue ends | "They were lying. The pause before 'I don't know' — classic tell." |
| `discover_evidence` | Player examines an object with information | "This doesn't match the official log." |
| `witness_interaction` | Player sees two NPCs interacting | "Those two don't normally talk." |
| `time_idle` | Player hasn't done anything for a while | "Should probably get moving." |
| `return_visit` | Player returns to a previously visited area | "Different shift. Different faces." |
---
## Layer 5: Template Content & Entanglement
**Question:** How does the entanglement ratio (30/50/20) play out across ~15 NPCs?
Let me do the math and map it concretely.
### NPC Distribution (D-029 applied to v0.1)
With ~15 NPCs across 3 social sites:
| Entanglement Level | Count | Description | Template Distribution |
|-------------------|-------|-------------|----------------------|
| **Flat** (~30%) | 4-5 NPCs | Routine + greeting only. Social wallpaper. | 1-2 per template |
| **Mundane Triangle** (~50%) | 7-8 NPCs | Involved in non-conspiracy social drama. Neighbor disputes, workplace rivalries, relationship tensions. | 2-3 per template |
| **Entangled** (~20%) | 3 NPCs | Connected to smuggling operation. Their secrets are the investigation targets. | Primarily in ring template, with 1 bridge NPC in another |
### Concrete NPC Skeleton (proposal)
Here's how I'd distribute them:
**Logistics Hub (5 NPCs):**
| Role | Name (placeholder) | Entanglement | Triangle Role |
|------|--------------------|-------------|---------------|
| Shift Supervisor | [TBD] | Mundane | Triangle A: workplace authority tension |
| Dock Worker 1 | [TBD] | Flat | Wallpaper — reliable, boring, friendly |
| Dock Worker 2 | [TBD] | Mundane | Triangle A: chafes under supervisor |
| Cargo Handler | [TBD] | **Entangled** | Ring member. Uses job to move product. Bridge NPC to ring template. |
| Admin Clerk | [TBD] | Mundane | Triangle B: knows more than they should about cargo discrepancies |
**Bar (5 NPCs):**
| Role | Name (placeholder) | Entanglement | Triangle Role |
|------|--------------------|-------------|---------------|
| Bartender | [TBD] | Mundane | Triangle C: social hub, hears everything, discreet |
| Regular 1 | [TBD] | Flat | Wallpaper — always there, colorful but uninvolved |
| Regular 2 | [TBD] | Mundane | Triangle C: has a thing for the bartender, jealous of attention |
| Off-duty Worker | [TBD] | Mundane | Triangle B (cross-template): same person from logistics hub, different behavior here. Bridge NPC. |
| Stranger | [TBD] | Flat | Wallpaper — different face each playthrough. Procedural filler. |
**Smuggling Ring (5 NPCs):**
| Role | Name (placeholder) | Entanglement | Triangle Role |
|------|--------------------|-------------|---------------|
| Ring Leader | [TBD] | **Entangled** | Runs the operation. Triangle D: power/loyalty tension |
| Ring Courier | [TBD] | **Entangled** | Moves product between ring and hub. Triangle D: pressured by leader, considering turning |
| Ring Lookout | [TBD] | Mundane | Triangle D: doesn't know the full scope of operation, thinks it's minor smuggling |
| Ring Contact (bar) | [TBD] | Mundane | Triangle C (cross-template): the ring's eyes and ears at the bar |
| Ring Fixer | [TBD] | Flat | Wallpaper for the ring — handles logistics, no drama |
### Triangle Map
| Triangle | NPCs | Tension | Type |
|----------|------|---------|------|
| **A** (Logistics Hub) | Supervisor, Dock Worker 2, Cargo Handler | Authority vs autonomy. Worker resents supervisor. Handler stays quiet to protect cover. | Mundane + one entangled leg |
| **B** (Cross-template) | Admin Clerk (Hub), Off-duty Worker (Bar), Cargo Handler (Ring) | The clerk noticed discrepancies. The off-duty worker drinks too much and talks. The handler needs to keep both quiet. | Cross-template, entangled |
| **C** (Bar) | Bartender, Regular 2, Ring Contact | Social drama. Regular is jealous. Ring Contact uses bar as intel gathering. Bartender sees all, says nothing. | Mundane + one entangled leg |
| **D** (Ring) | Ring Leader, Ring Courier, Ring Lookout | Power and loyalty. Leader pushes for more volume. Courier is cracking under pressure. Lookout thinks it's small-time. | Entangled |
**Note for Paula:** Triangle B is the critical cross-template triangle. It's the mechanism by which the smuggling operation contaminates the mundane social world. The clerk's curiosity + the worker's loose lips + the handler's need for silence is a pressure cooker that the player can observe, manipulate, or accidentally trigger.
### Does This Create Interesting Decisions?
For the **smuggler**: You KNOW the handler, the courier, the leader. Your daily life is managing these relationships. Triangle B is your biggest risk — the clerk is asking questions, the worker talks too much at the bar. Do you befriend the clerk to deflect? Warn the worker to shut up? Or trust the handler to manage it? Every choice has relationship consequences.
For the **detective**: You don't know any of this at first. You see a normal workplace, a normal bar. But the clerk seems nervous. The worker mentions "weird cargo hours" after their third drink. The handler is suspiciously friendly with the detective — trying to assess the threat. The detective's game is connecting these dots through observation and conversation.
**This is the fun.** Same 15 people, completely different games.
---
## Layer 6: Minimum Viable Tell System
**Question:** What's the minimum viable tell system? One behavioral marker per axis, or fewer?
Let me break down what "tells" actually need to DO mechanically before deciding volume.
### What Tells Are For
A "tell" is an observable behavior that reveals internal NPC state without the NPC explicitly saying anything. Tells are the bridge between the simulation (NPC has mood=nervous, secret=smuggling) and the perception system (player sees NPC fidgeting, looking over their shoulder).
Tells serve two functions:
1. **Reward observation** — the player who watches carefully learns more than the player who just talks
2. **Create investigation breadcrumbs** — "they seem nervous" prompts the player to dig deeper
### Minimum Viable Tell System for v0.1
**Not one per axis. That's 10 tells per NPC x 15 NPCs = 150 behavioral markers. Way too many for v0.1.**
Instead: tells should map to the PLAYER-FACING question, not the simulation axis. The player doesn't think in axes — they think in "what's wrong with this person?"
| Tell Category | Maps to Axes | Observable Behavior | Implementation |
|---------------|-------------|---------------------|----------------|
| **Nervous/hiding something** | Secret, Tolerance threshold | Fidgeting sprite variation, checking over shoulder, breaking eye contact (monologue describes) | 2-3 text descriptions in monologue pool |
| **Angry/frustrated** | Contentment (low), Tolerance (near threshold) | Terse dialogue, aggressive movement pattern (faster walk), monologue notes "they look tense" | Mood affects dialogue selection + 1 movement modifier |
| **Friendly/warm** | Relationships (positive), Personality (sociable) | Longer conversations, approaches player proactively, monologue notes openness | Unprompted disclosure weighting increase |
| **Guarded/cold** | Relationships (negative), Access (hostile) | Short responses, avoids player, monologue notes resistance | Access tier filtering does this naturally |
| **Routine deviation** | Secret (active), Want (pursuing something) | NPC goes somewhere they normally don't, at an unusual time | Routine system deviation flag + monologue trigger |
**That's 5 tell categories for v0.1.** Each is expressed through a combination of:
- Monologue lines (character interprets the tell) — cheapest, most expressive
- Dialogue weighting (mood shifts what lines are selected) — already in the pipeline
- Movement behavior (1 modifier: speed/path deviation) — lightweight
**Most tells in v0.1 will be TEXT, not visual.** The monologue system IS the tell renderer. "They're checking the corridor before entering the back room" is a tell delivered through monologue, not through a complex animation system. This is consistent with D-016 (monologue as perception bridge) and D-014 (functional boxes with labels).
### What Mellanie Needs
For each of the 5 tell categories, 3-5 monologue lines per character. That's 30-50 monologue lines dedicated to tells, split between smuggler and detective voice.
**Smuggler tell monologue** reads differently from detective tell monologue:
- Smuggler noticing nervousness: "They're spooked. Wonder who's been asking questions."
- Detective noticing nervousness: "Nervous. Either guilty or scared of someone who is."
Same observation, different interpretation. This is where the dual-lens system shines brightest.
---
## Layer 7: Monologue & Observation Text
No direct questions for Gestalt here, but a systems note:
**Monologue content volume is the highest content risk in the entire project** (I flagged this in the previous gap analysis workshop). The monologue system carries perception, atmosphere, tutorial, tells, investigation clues, and character voice — simultaneously. If it feels thin or repetitive, the entire game suffers.
The trigger taxonomy I defined in Layer 4 above (9 trigger types) maps directly to content authoring work. Mellanie needs to write lines for each trigger type x each location x each character. That's approximately:
| Trigger | Lines per location | x3 locations | x2 characters | Total |
|---------|-------------------|-------------|----------------|-------|
| `enter_location` | 3-5 | 9-15 | 18-30 | 18-30 |
| `observe_npc` | 5-8 | 15-24 | 30-48 | 30-48 |
| `hear_sound` | 3-4 | 9-12 | 18-24 | 18-24 |
| `observe_anomaly` | 3-5 | 9-15 | 18-30 | 18-30 |
| `post_conversation` | 5-8 | 15-24 | 30-48 | 30-48 |
| `discover_evidence` | 2-3 | 6-9 | 12-18 | 12-18 |
| `witness_interaction` | 3-5 | 9-15 | 18-30 | 18-30 |
| `time_idle` | 2-3 | — (shared) | 4-6 | 4-6 |
| `return_visit` | 2-3 | 6-9 | 12-18 | 12-18 |
**Estimated monologue line count: 160-250 authored lines.** Plus the 30-50 tell lines. Call it **200-300 monologue lines total** — consistent with the D-028 workshop estimate.
These are authored lines. The 4x generation expansion applies here too, giving ~800-1200 total monologue lines in the game. That should prevent repetition across a 30-minute session.
---
## Layer 8: UI Text & Onboarding
**Question:** Does v0.1 need onboarding text, or can the monologue system serve as the tutorial (D-016 "diegetic tutorial")?
**Answer: Monologue IS the tutorial. No separate onboarding text needed for v0.1.**
Here's how it works mechanically:
### Diegetic Tutorial Through Monologue
The player's first 2-3 minutes produce a sequence of monologue lines that teach by narrating:
| Player Action | Monologue Tutorial | What It Teaches |
|---------------|-------------------|-----------------|
| Game starts | "Another day at [station]. Better check the schedule." (Smuggler) / "Precinct forwarded the case file. Time to start." (Detective) | You have a purpose. You're a person. |
| Player moves | "Quiet corridor. Nobody around." | Vision cone — you can see what's in front of you. |
| Player approaches fog edge | "Something around the corner. Can't see from here." | Fog = limited perception. Move to see more. |
| Player hears sound through wall | "Voices. Can't make out what they're saying from here." | Sound carries through walls. Get closer. |
| Player sees first NPC | "That's [Name]. [Brief relationship context]." (Smuggler) / "Unknown civilian. Standard profile." (Detective) | You know (or don't know) people. Character relationships matter. |
| Player talks to NPC | (Dialogue system handles this) | Conversation exists. Different people tell you different things. |
| Player checks insert | "Let's see... [location info]." | The minimap/insert exists and is diegetic. |
**No "Press WASD to move" text.** No tooltip overlays. The character's thoughts teach the player by reacting to what the player does naturally.
**What this requires from Mellanie:** A special `opening-hook.yaml` per character with 10-15 tightly sequenced monologue lines that fire in response to the player's first actions. These are the most important lines in the entire game — they set voice, teach mechanics, and establish motivation simultaneously.
### UI Text That IS Needed
Even with diegetic tutorial, some UI text is unavoidable:
| UI Element | Text Needed | Volume |
|------------|-------------|--------|
| Main menu | New Game, Continue, Settings, Quit | 4-6 strings |
| Character select | Smuggler description, Detective description | 2 paragraphs |
| Pause menu | Resume, Save, Load, Settings, Quit | 5-6 strings |
| Insert/minimap labels | POI names, distance indicators | ~10-15 strings |
| Dialogue UI | "Talk", "Leave", topic selection labels | ~5-10 strings |
| Time display | Day phase indicator, clock format | 4-5 strings |
**Total UI text: ~40-50 strings.** Trivial volume. Can be authored in an afternoon.
---
## Layer 9: Audio Direction
**Question:** Does the three-range sound model need audio content to prove itself, or can it work with system beeps and text?
**Answer: Text-only sound is mechanically sufficient for v0.1. Audio content is a wow multiplier, not a proof requirement.**
Here's why:
### How Sound Works Without Audio Files
The three-range model (D-018) is fundamentally an INFORMATION system, not an audio system. What matters is:
| Range | What the player needs to know | Text-only delivery |
|-------|------------------------------|-------------------|
| Close | "I can hear this clearly" | Monologue: "Footsteps behind me. Two people." |
| Medium | "Something's happening nearby but I can't see it" | Visual indicator at fog edge + monologue: "Voices from the next room." |
| Long | "Information arrived through my insert" | Insert notification text: "Alert: disturbance reported in Sector 7" |
All three ranges work through text + visual indicators. The SYSTEM is provable without a single audio file.
### What Audio WOULD Add
Audio adds emotional texture that text can't match:
- Close range: actual footstep sounds create spatial awareness and tension
- Medium range: muffled voices through walls create curiosity and dread
- Fog edge: ambient hum vs silence communicates "something's there" vs "empty"
**Recommendation:** Defer ALL authored/designed audio to a later sprint. For v0.1, use at most:
- 1 ambient drone per location type (3 total — can be freely licensed or generated)
- 1 footstep sound for close-range feedback
- 1 "notification chime" for insert alerts
That's 5 sound files. The rest is text + visual indicators. If even this is too much, zero audio is acceptable. The monologue system can carry the entire perceptual load.
**But the system architecture must still support audio.** The sound event system (#124) should emit events regardless of whether audio content exists. The client receives "sound event at coordinates X,Y with type FOOTSTEPS" — whether it plays a wav file or shows a visual indicator is a client rendering decision. Don't build the system around text; build it around events and render text as the v0.1 fallback.
---
## Cross-Layer Synthesis: What Gestalt Thinks the Content Team Needs
### Priority-Ordered Content Work
| Priority | Deliverable | Owner | Depends On | Lines/Volume |
|----------|-------------|-------|------------|-------------|
| 1 | Line pool format specification (this document) | Gestalt (done) | Nothing | Spec only |
| 2 | Dual Lens Authoring Guide | Paula | Layer 2 access tier model (above) | ~10 pages |
| 3 | Station district setting brief | Miri | Nothing | ~2-3 pages |
| 4 | Character voice kits (smuggler + detective) | Mellanie | Dual Lens Guide | 20-30 sample lines per character |
| 5 | Opening hook content (per character) | Mellanie | Voice kits | 10-15 lines per character |
| 6 | NPC profiles (15 NPCs) | Paula + Mellanie | Setting brief, character builds | 1 page per NPC |
| 7 | Logistics Hub content pack (#190) | Mellanie | NPC profiles, line pool format | ~55-70 dialogue + ~30-40 monologue lines |
| 8 | Bar content pack (#191) | Mellanie | NPC profiles, line pool format | ~55-70 dialogue + ~30-40 monologue lines |
| 9 | Smuggling Ring content pack (#192) | Mellanie | NPC profiles, line pool format | ~55-70 dialogue + ~30-40 monologue lines |
| 10 | Tell monologue lines | Mellanie | NPC profiles, tell categories | 30-50 lines |
| 11 | Environmental text | Mellanie + Araminta | Setting brief | ~30-50 strings |
| 12 | UI text | Mellanie | Character descriptions | ~40-50 strings |
### The Critical Path
```
Dual Lens Guide (Paula)
+ Station Setting (Miri)
+ Line Pool Format (Gestalt - this document)
→ Character Voice Kits (Mellanie)
→ Opening Hooks (Mellanie)
→ NPC Profiles (Paula + Mellanie)
→ Content Packs x3 (Mellanie)
→ Tell Lines + Environmental (Mellanie)
```
**Nothing blocks the line pool format — it's spec work.** The Dual Lens Guide and Station Setting can proceed in parallel. Once those two exist, Mellanie can start writing. The content packs are the bulk of the work and should start as soon as the voice kits feel right.
### One Last Mechanical Note
**The line previewer (#193) is critical.** Mellanie cannot efficiently author 500+ tagged lines without a tool that shows "given this NPC, this access tier, this mood, this situation — what line would fire?" The previewer doesn't need to be pretty. It needs to load a YAML file, accept filter parameters, and show the selected line. A CLI tool. Tyre can build this as a Rust binary that reads the YAML and applies the selection pipeline.
Without the previewer, Mellanie is writing blind. Tag errors won't surface until integration. That's a recipe for rework.
---
*Gestalt out. The format is proposed, the tags are defined, the pipeline is mapped. Now we need Paula's lens guide, Miri's setting, and Mellanie's voice. The systems are ready for content.*
@@ -0,0 +1,438 @@
# Round 1 — Mellanie's Content Gap Analysis
**Agent:** Mellanie (Copywriter)
**Date:** 2026-02-11
**Scope:** All 9 layers, copywriting perspective
---
## Layer 1: Art Direction & Visual Identity
Not my lane directly, but I'll flag the intersection: **visual style determines how much weight text carries.** D-014 says "functional boxes with labels" and D-016 says "atmosphere carried by monologue." If the art stays minimal, my text is doing 80% of the atmosphere work. If the art gets moody, the text can be sparser.
**My ask for Araminta:** Tell me the visual fidelity target so I can calibrate density. Minimal art = more monologue lines per location. Moody art = fewer, sharper lines. I need to know which world I'm writing for.
---
## Layer 2: Narrative Framework & Character Design
### Q3: What do I need from the character builds before I can write voice-consistent dialogue?
Five things. Non-negotiable.
**1. Voice signature.** Not personality traits — *speech patterns.* Short sentences or long? Profanity or clean? Technical vocabulary or street? Internal monologue style: does the smuggler think in observations or feelings? Does the detective think in hypotheses or facts?
Here's what I mean concretely:
> **Smuggler sees a cargo container out of place:**
> *Option A (cautious, observational):* "That container's been moved. Wasn't there this morning."
> *Option B (anxious, relational):* "Kael moved the container again. He's going to get us all caught."
> *Option C (sardonic, detached):* "Someone rearranged the furniture. How creative."
Each of those is a different character. I need to know which one before I write 500 lines.
**2. What they notice.** The smuggler and detective look at the same room and see different things. Not just because of information boundaries — because of *attention.* The smuggler notices exits, security cameras, who's watching. The detective notices inconsistencies, nervousness, things out of place. This shapes every monologue line and every dialogue choice.
**3. Relationship to authority.** How do they talk to people with power over them? How do they talk to people they have power over? The smuggler with their ring boss vs. the detective with their precinct captain — those power dynamics shape every interaction.
**4. What they lie about.** Both characters have things they conceal or misrepresent. The smuggler hides their criminal activity. The detective might hide their investigation from suspects. Knowing what they lie about tells me what their "public voice" sounds like vs. their "internal voice."
**5. Emotional baseline.** Not mood — *posture.* Is the smuggler generally anxious, comfortable, or resigned? Is the detective generally confident, frustrated, or obsessive? This is the default register that all their lines return to between dramatic moments.
**Proposal:** I'll write a **Voice Kit** for each character — a 1-page document with these five elements plus 10 sample monologue lines covering common situations (entering a room, greeting an acquaintance, noticing something wrong, being lied to, being alone). Paula defines the narrative identity; I translate it into voice. The Voice Kit becomes the reference that keeps all dialogue on-character.
**Dependency:** Paula's character arc outlines (#180, #181) must come before my Voice Kits. I need to know who these people *are* before I can figure out how they *sound.*
---
## Layer 3: Station District Setting
Not my primary deliverable, but I write text that lives in this space. My ask for Miri:
**Give me the texture, not just the lore.** I don't need a history essay. I need:
- What does this place *smell* like? (Monologue uses all senses.)
- What's the slang? Do people say "shift" or "rotation"? "Credits" or "sols"?
- What's on the walls — corporate signage? Safety warnings? Union notices? Graffiti?
- What's the ambient sound the monologue might reference — machinery hum? Ventilation? Crowd noise?
- What's the local complaint? Every community has one. Bad water. Late transports. Overpriced food.
These details are what make monologue and environmental text feel *placed* instead of generic sci-fi.
---
## Layer 4: Content Pipeline & Authoring Format
### Q2: Can I write content packs in a provisional format before the previewer exists?
**Yes, with conditions.**
I can write in any structured text format — YAML, Markdown with frontmatter, even a spreadsheet — as long as we agree on the tag taxonomy first. The actual file format matters less than the metadata structure. I can adapt format later; I can't retag 500 lines.
**What I need locked before I write:**
1. **Tag taxonomy.** The minimum set of tags per line. My proposal for v0.1:
| Tag | Values | Purpose |
|-----|--------|---------|
| `character` | smuggler, detective, any | Who can trigger this line |
| `access` | insider, outsider, authority, peer | D-028 Layer 1 filter |
| `trust` | surface, real, secret | D-028 Layer 3 disclosure tier |
| `location` | workplace, bar, ring, corridor, any | Where this line fires |
| `situation` | greeting, idle, gossip, confrontation, observed_anomaly, absence, routine | What's happening |
| `mood` | neutral, tense, relaxed, suspicious, friendly | NPC emotional state |
| `topic` | work, personal, crime, rumor, weather, complaint | What the line is about |
| `type` | dialogue, monologue, environmental, ticker | Content category |
That's 8 tags. Enough to filter meaningfully, few enough to author quickly. Gestalt can add more if the system needs them, but I can start writing with these.
2. **Line format.** My proposed provisional format (Markdown-friendly, convertible to YAML/JSON later):
```
---
id: wp-dock-greeting-01
character: any
access: insider
trust: surface
location: workplace
situation: greeting
mood: neutral
topic: work
type: dialogue
speaker: dock_supervisor
---
Another day, another manifest. You know the drill.
```
If the actual format changes, I can batch-convert. The content and tags are what matter.
3. **One example template fully tagged.** Before I write 165 lines for the workplace, I want to write 20, tag them, and have Gestalt validate that the tags produce the right filtering behavior. Call it a "tag smoke test." This catches taxonomy problems before they compound.
**What I do NOT need before starting:**
- The previewer CLI (#193). Nice to have, not a blocker. I'll write blind and validate later.
- Final file format. Provisional is fine.
- Generation pass specs (#194). I write the authored core; expansion is a separate step.
---
## Layer 5: Template Content (3 Social Sites)
### Q1: What does a content pack deliverable look like? Break down #190.
Here's what the **Workplace Content Pack** (#190) contains, broken into concrete writing tasks:
#### A. Role Voice Kits (4-6 roles, ~5 lines each = 20-30 lines)
Each role in the workplace template gets a voice kit: a set of sample lines that establish how this *type* of person talks. Not a specific NPC — a role that gets filled by a generated NPC.
Proposed workplace roles:
- **Dock Supervisor** — authority figure, stressed, deadline-driven
- **Cargo Handler** — physical worker, pragmatic, gossip-prone
- **Logistics Clerk** — desk worker, detail-oriented, nervous or bored
- **Maintenance Tech** — gruff, observant, knows every corner of the facility
- **Security Guard** — bored or paranoid, depending on personality axis
- **Shift Manager** — middle management, caught between workers and bosses
Each kit: 5 lines covering greeting, idle chatter, reaction to anomaly, reaction to authority, and one line that hints at their secret/vulnerability axis.
#### B. Situation Scripts (tagged line pools — the bulk, ~80-100 lines)
These are the lines that fire during gameplay, filtered by tags. Organized by situation:
| Situation | Lines | Description |
|-----------|-------|-------------|
| Greetings | 15-20 | First contact lines, filtered by access tier and relationship |
| Idle/ambient | 15-20 | Background chatter, complaints, observations. The "daily life" texture |
| Work talk | 10-15 | Job-related conversation. Manifests, schedules, problems |
| Gossip | 10-15 | Trust-gated. Surface: weather, sports. Real: who's sleeping with whom. Secret: who's smuggling what |
| Confrontation | 5-10 | When triangle tensions surface. Accusations, denials, pleas |
| Observed anomaly | 5-10 | NPC reacts to something unusual. Feeds the observation chain |
| Authority interaction | 5-10 | How NPCs talk to/about the boss. Power dynamics |
#### C. Monologue Hooks (per character, ~30-40 lines)
Lines that fire as the player character's internal monologue in this location:
| Category | Smuggler | Detective |
|----------|----------|-----------|
| Entering workplace | 8-10 lines: routine, familiar, noting who's in/out | 8-10 lines: scanning, assessing, noting what seems off |
| Observing NPC behavior | 5-8 lines: protective, concerned about exposure | 5-8 lines: analytical, building hypotheses |
| Noticing anomaly | 3-5 lines: alarm, calculating risk | 3-5 lines: interest, cataloguing evidence |
| Absence/deviation | 3-5 lines: "Where's Kael?" worry-flavored | 3-5 lines: "Subject deviated from pattern" analytical |
#### D. Environmental Text (~15-20 items)
Diegetic text that exists in the space:
- Shift schedule board (readable, updates with game time)
- Safety notices ("Report unauthorized cargo to Security — Management")
- Cargo manifest fragments (readable if you examine them — information source)
- Employee notice board (upcoming events, complaints, lost items)
- Terminal login screen text
- Door labels, section markers, warning signs
#### E. Trait Transformation Guide (~1 page)
How personality axes modify the base lines. Not per-trait scripts — guidelines:
| Trait axis | Low | High | Effect on dialogue |
|------------|-----|------|--------------------|
| Tolerance | Snaps fast, short answers | Patient, elaborate | Shorter/longer responses, more/fewer warnings before confrontation |
| Contentment | Bitter, complaining | Satisfied, dismissive | Tone of idle chatter. Discontented NPCs gossip more |
| Want (ambition) | Passive, accepting | Driven, scheming | Proactive vs reactive dialogue. High-want NPCs steer conversations |
**Total for one template: ~165-200 authored lines + environmental text + trait guide.**
Three templates = ~500-600 authored lines of dialogue/monologue + ~50-60 environmental text items + 3 trait guides.
That's achievable. It's a focused sprint of writing, not a marathon. The quality bar is what takes time, not the volume.
---
## Layer 6: NPC Profiles & Dialogue
### Q1 (with Paula): How deep does each NPC profile need to be?
**Two tiers of depth, matching the 30/50/20 split.**
**Flat NPCs (30%, ~4-5 NPCs):** The 10 axes plus one distinguishing line. That's it. These people are wallpaper with a pulse. They greet you, they make small talk, they go about their routine. They exist so the station feels populated.
What I need per flat NPC:
- Name
- Role (which role voice kit to draw from)
- One distinguishing trait or habit (the dock worker who always eats during shift, the clerk who hums)
- 3-5 custom lines that make them *slightly* memorable (beyond the generic role pool)
**Triangle NPCs (50%, ~7-8 NPCs) and Entangled NPCs (20%, ~3 NPCs):** The 10 axes plus a **voice paragraph.** Not a full backstory — a paragraph that captures how this specific person *talks* and *thinks,* enough for me to write lines that feel specific to them.
What I need per triangle/entangled NPC:
- Name
- Role + which social sites they appear in
- 10-axis values (especially Want, Secret, Relationships, Contentment)
- One paragraph: "Kael talks like [X], thinks about [Y], is hiding [Z]. When stressed, he [behavior]. When comfortable, he [behavior]."
- Their triangle position: who they're in conflict with, what they want from the triangle
- 8-15 custom lines (beyond role pool) that express their specific voice and situation
**Who writes these profiles?** Paula defines the narrative identity and triangle dynamics. Miri provides cultural/setting flavor. I write the voice paragraph and sample lines. It's a collaboration, not a solo task.
### Q2: How many lines per NPC for v0.1?
Let me do the real math.
**Flat NPCs (~5):** 3-5 custom lines each = 15-25 lines. Plus they draw from the role voice pool, so they have maybe 20-30 lines available total (role pool + custom).
**Triangle NPCs (~8):** 8-15 custom lines each = 64-120 lines. Plus role pool. Total available per NPC: 30-45 lines.
**Entangled NPCs (~3):** 12-20 custom lines each = 36-60 lines. These need the most specific, plot-relevant dialogue. Total available per NPC: 40-55 lines.
**Custom NPC lines total: 115-205 lines.**
These sit ON TOP of the template content packs (~500-600 lines of role-based dialogue). The role pools provide the substrate; NPC-specific lines provide the personality.
**Grand total authored lines for v0.1:**
| Category | Lines |
|----------|-------|
| Template dialogue (3 packs) | 500-600 |
| NPC-specific lines (~15 NPCs) | 115-205 |
| Monologue — smuggler | 100-150 |
| Monologue — detective | 100-150 |
| Environmental text | 50-60 |
| UI/insert text | 20-30 |
| News ticker / unisphere | 15-20 |
| **Total authored** | **~900-1,215** |
After 4x generation expansion on the template dialogue: **~3,000-3,600 total lines available to the system.**
That's a solid content floor. It won't feel infinite, but it won't feel empty during a 30-minute session. The player will encounter maybe 150-200 lines per playthrough. Repetition becomes a problem only on the 3rd or 4th play of the same character.
---
## Layer 7: Monologue & Observation Text
### Q1: How many monologue lines make v0.1 feel alive?
The 200-300 estimate is the *floor.* Let me break it down by function:
| Function | Smuggler | Detective | Total |
|----------|----------|-----------|-------|
| **Location atmosphere** (entering/being in a place) | 25-30 | 25-30 | 50-60 |
| **NPC observation** (noticing behavior, tells) | 20-25 | 20-25 | 40-50 |
| **Absence/deviation** (expected NPC not present, routine broken) | 10-15 | 10-15 | 20-30 |
| **Sound interpretation** (hearing through fog) | 8-10 | 8-10 | 16-20 |
| **Investigation/deduction** (connecting dots) | 10-15 | 15-20 | 25-35 |
| **Emotional/reflective** (quiet moments, character depth) | 10-15 | 10-15 | 20-30 |
| **Diegetic tutorial** (hinting at available actions) | 8-10 | 8-10 | 16-20 |
| **Mirror moments** (hinting at the other perspective) | 5-8 | 5-8 | 10-16 |
| **Total** | **~96-128** | **~101-133** | **~197-261** |
Call it **250 monologue lines** as the authoring target. Some will overlap (same observation, different character voice), but most need to be distinct because the two characters *think differently* about what they see.
The generation pass doesn't work as well for monologue as for dialogue. Dialogue can be expanded with variations on the same sentiment. Monologue needs to feel *specific* — it's the character's private thoughts. Generic expansion will sound hollow. I'd estimate a 2x generation pass on monologue at best, giving us ~500 monologue lines total. That's enough for 2-3 playthroughs per character before noticeable repetition.
### Q2: Same observation event, different monologue — separate pools or shared?
**Separate pools. No question.**
The smuggler and detective don't just say different words about the same thing — they *see* different things. The whole game is built on this. Shared pools with character filters would tempt us toward "same observation, different adjective." That's death for the core mechanic.
Here's the concrete difference:
> **Event: NPC enters the back room during off-hours.**
>
> Smuggler pool:
> - "There goes Kael. Right on schedule."
> - "Back room again. He better not be skimming."
> - "Hope he remembered to lock the side door this time."
>
> Detective pool:
> - "Unauthorized access to restricted area. Noted."
> - "That's the second time today. What's in the back room?"
> - "He looked around before going in. People who belong somewhere don't check if they're watched."
Same event trigger. Completely different interpretation. The smuggler's lines reveal *familiarity* with the criminal activity. The detective's lines reveal *analytical distance.* You cannot get this from a shared pool with a character tag — the entire framing, vocabulary, and emotional register are different.
**Structure:** Two parallel monologue pools, one per character, keyed to the same observation event triggers. The observation event generator (#239) fires a trigger; the monologue system selects from the appropriate character pool. Tags on each line handle further filtering (location, mood, trust level, prior knowledge).
**This doubles the monologue writing work, but it IS the game.** If the monologue sounds the same from both characters, we've failed D-027's core success criterion. There is no shortcut here.
### Mirror Moments
Paula asked about these in the brief. Here's what they look like from a writing perspective:
A mirror moment is when the monologue *almost* acknowledges the other character's viewpoint without breaking the fourth wall. The character glimpses the moral complexity of their position.
> **Smuggler mirror moment** (watching the detective interview a colleague):
> "She's just doing her job. ...Aren't we all."
>
> **Detective mirror moment** (learning that a suspect supports their family through smuggling):
> "Twelve dependents on a cargo handler's salary. The math doesn't work. But the math never does for these people."
These are rare — 5-8 per character across the whole session. They're the moments where the writing does the thematic heavy lifting. They plant the seed of "what would this look like from the other side?" without ever saying it explicitly. On a second playthrough as the other character, the player remembers these lines and they hit differently.
---
## Layer 8: UI Text & Environmental Content
### Q1 (with Araminta): What text appears on screen besides dialogue and monologue?
Here's the full inventory:
#### Insert/HUD Text
- Time display (diegetic — the character's neural insert showing time)
- POI labels on minimap ("Logistics Hub," "The Rusty Valve," "Sector 7 Maintenance")
- Status indicators ("Signal weak," "Insert interference detected")
- Notification text ("New contact added," "Location discovered")
#### Environmental Text (diegetic — exists in the game world)
- Door labels and room signs
- Corporate signage (company names, slogans)
- Safety/regulatory notices
- Employee notice boards
- Cargo manifest fragments (readable as investigation tools)
- Terminal screens (login prompts, error messages, data readouts)
- News ticker / unisphere feed headlines
- Graffiti (if the station has a rougher district area)
- Menu/price board at the bar
- Wanted notices or institutional postings
#### UI Chrome (non-diegetic — game interface)
- Dialogue choice labels (if we have explicit choices, not just proximity-triggered lines)
- Journal/knowledge entries (if #264 makes it into v0.1)
- Tooltip text on interactive objects ("Examine," "Talk," "Read")
- Save/load screen text
- Settings menu labels
- Pause screen text
- Character selection screen text (if any)
#### Diegetic Tutorial Text (via monologue — D-016)
This isn't separate UI text — it's monologue lines that teach mechanics:
- "I could check my insert for the area layout." (teaches minimap)
- "Better keep my distance if I'm going to follow him." (teaches follow mechanic)
- "That terminal might have shipping records." (teaches examine)
- "Sounds like an argument in the next room. I could get closer to hear." (teaches eavesdrop)
**Volume estimate for non-dialogue/non-monologue text:**
| Category | Items | Lines |
|----------|-------|-------|
| Insert/HUD | 10-15 unique strings | 10-15 |
| Environmental — workplace | 15-20 items | 20-30 |
| Environmental — bar | 10-15 items | 15-25 |
| Environmental — ring | 5-10 items | 10-15 |
| Environmental — corridors/shared | 5-10 items | 8-12 |
| UI chrome | 15-20 unique strings | 15-20 |
| News ticker headlines | 10-15 items | 10-15 |
| **Total** | | **~88-132** |
This is quick writing — short strings, functional language, world-flavored. I can produce the full set in a focused session once I have Miri's setting document for terminology and Araminta's UI spec for constraints (character limits, display format).
---
## Layer 9: Audio Direction
From a copywriting perspective: **silence is fine for v0.1, but it shifts burden to me.**
If there's no ambient audio, every sense except sight goes through monologue. The character has to *narrate* the soundscape:
> "The ventilation system hums. Always that same frequency. I've stopped noticing it."
> "Footsteps behind me. Two people. Unhurried."
> "The bar's loud tonight. Good. Harder for anyone to overhear."
These sound-interpretation monologue lines are already in my budget (the "sound interpretation" category in Layer 7: 16-20 lines). If we add actual audio, some of those lines become redundant — the player *hears* the bar is loud instead of being told. But for v0.1, I'll write as if the monologue is doing all the sensory work. Audio can reduce the monologue load later.
**My recommendation:** Defer audio content. Let me carry the atmosphere through text. It's cheaper, faster, and we can always add audio on top. What we can't do is add text *quality* retroactively — so invest in the writing now, add sound later.
---
## Cross-Layer Summary: What I Need to Start Writing
Here's my dependency chain, in order:
| Step | What I need | Who provides it | Ticket |
|------|-------------|-----------------|--------|
| 1 | Station district setting brief | Miri | #189 |
| 2 | Character arc outlines (smuggler + detective) | Paula | #180, #181 |
| 3 | Dual Lens Authoring Guide | Paula | #261 |
| 4 | Tag taxonomy agreement | Gestalt (confirm or modify my proposal) | #168 |
| 5 | NPC profiles (10-axis + triangle positions) | Paula + Miri | #179, #184-186 |
**What I can start NOW, before any dependencies resolve:**
1. **Voice Kit drafts** for smuggler and detective — provisional, based on D-027 descriptions. I'll write three voice options per character and let Paula pick or blend. Gets us moving.
2. **Environmental text templates** — generic diegetic text (safety notices, terminal screens, door labels) that work in any station district. Setting-specific text waits for Miri.
3. **Tag taxonomy proposal** — the table in Layer 4 above. Gestalt validates, we iterate.
4. **Monologue starter set** — 20-30 monologue lines per character covering universal situations (entering a room, being alone, hearing something in fog). These don't depend on specific NPC profiles.
**What I cannot start without dependencies:**
- Template content packs (#190-192) — need NPC profiles and Dual Lens Guide
- NPC-specific dialogue — need NPC profiles
- Setting-specific environmental text — need Miri's district brief
---
## Proposed New Tickets
| Title | Priority | Type | Rationale |
|-------|----------|------|-----------|
| Smuggler voice kit | High | Story | Character voice reference for all smuggler dialogue/monologue. Blocks #190-192 content packs. |
| Detective voice kit | High | Story | Character voice reference for all detective dialogue/monologue. Blocks #190-192 content packs. |
| Monologue starter set (universal) | High | Story | 50-60 monologue lines (both characters) for common situations. Unblocked — can begin immediately. |
| Tag taxonomy specification | High | Story | Define the metadata structure for all authored lines. Must precede content packs. Gestalt validates. |
| Environmental text templates (generic) | Medium | Story | Diegetic text items (signs, terminals, notices) that work across location types. |
| News ticker / unisphere content | Medium | Story | 10-15 headline items for ambient world-building. Needs Miri's setting brief. |
| UI microcopy document | Medium | Story | All non-diegetic interface strings. Needs Araminta's UI spec. |
| NPC voice paragraphs (~15 NPCs) | High | Story | Per-NPC voice guides for triangle and entangled NPCs. Needs Paula's profiles. |
---
## One Honest Concern
The workshop brief says I'm "blocked, waiting on Miri's cultural generation guide." That's true for the *final* content packs. But I've been staring at these decision documents long enough to start building the scaffolding. Voice kits, tag taxonomy, monologue starters, environmental templates — these are all concrete deliverables that move us forward without waiting for the full dependency chain.
The risk isn't that I'll have nothing to do. The risk is that I'll write 200 lines in a voice that doesn't match the character Paula envisions, or a setting that doesn't match the world Miri builds. That's why the Voice Kit approach works — I write provisional options, we converge, then I scale. Write 20 lines right, throw away 10, then write 500 in the validated voice.
Three words for the content plan: **scaffold, validate, scale.**
---
*Mellanie out. Give me the voice, and I'll give you the words.*
@@ -0,0 +1,443 @@
# Round 1 — Miri's Worldbuilding Gap Analysis
**Agent:** Miri (Worldbuilder & Setting Designer)
**Date:** 2026-02-11
**Workshop:** v0.1 Content Gap Analysis
---
## Approach
I'm going through all nine layers of the workshop brief from a worldbuilding perspective. My primary deliverable is the station district setting document (Layer 3), but I have contributions across most layers. I'm checking every proposal against what we've established in Round 14 (setting foundation), Round 16 (factions), and the confirmed decisions.
Let me be direct about my role here: the content team needs setting context before they can write a single line. Mellanie can't write a bartender's greeting without knowing what the bar looks like and what the bartender's world is like. Paula can't design a relationship web without knowing the social pressures of the district. Araminta can't set a visual tone without knowing the setting's mood. This document fills those gaps.
---
## Layer 1: Art Direction & Visual Identity
### Setting Context for Visual Identity
I won't wade into Araminta's territory on style guides and palettes, but the setting has strong visual identity implications that should inform Q-003.
**What stations look like in the Settled Reach:**
The Reach's built environments are not uniform. They reflect who built them, when, and for what purpose.
- **Core system stations:** High institutional presence. Clean lines, managed surfaces. Lattice Commission insignia on regulatory kiosks. Meridian access points glowing in alcoves. The aesthetic is "functional prosperity" -- not gleaming chrome utopia, but competent civic infrastructure that works well enough that nobody thinks about it. Think a well-maintained European transit hub, not a cyberpunk dystopia.
- **Mid-Reach stations:** Mixed use, mixed age. Older sections built during early settlement with exposed structural elements and retrofit Meridian hookups. Newer sections with institutional standard finishes. The seams between eras are visible -- different wall materials, different ceiling heights, cable runs added after construction. These stations have character because they have *history*.
- **Frontier stations:** Sparse, improvised, practical. Meridian coverage is spotty. Span gate connections are limited. Structures prioritize function. There's a frontier aesthetic -- things are built to work, repaired rather than replaced, and personalized because there's no institutional standard to enforce.
**v0.1 implication:** Our station district should read as mid-Reach or transitional core -- established enough to have institutions (the detective needs jurisdictional authority), rough enough to have shadows (the smuggler needs operational space). This gives Araminta a visual framework: not pristine, not derelict. Lived-in. Functional but imperfect. The kind of place where a logistics hub, a bar, and a smuggling ring can all exist in the same district without it feeling implausible.
**IP note:** Avoid any visual language that reads as "Blade Runner" (rain, neon, noir) or "Star Trek" (antiseptic corridors, uniforms). The Settled Reach's visual identity should be closer to "working infrastructure" -- think the mundane parts of Alien's Nostromo or the lived-in spaces of The Expanse's Ceres. Ordinary. Functional. The extraordinary is in the technology people carry, not the walls around them.
---
## Layer 2: Narrative Framework & Character Design
### Setting Context for Character Builds
**Smuggler (Logistics Worker)**
Setting note -- a smuggler in the Settled Reach is not a Han Solo archetype. The gate network makes interstellar smuggling a matter of *infrastructure manipulation*, not daring piloting. Smuggling means getting contraband past Lattice Commission checkpoints at gate hubs, through freight scanning at span gate terminals, and past Meridian-logged inventory systems.
A logistics worker is the *perfect* cover because they already have legitimate access to freight handling systems. They know the manifest protocols. They know which cargo containers get scanned and which get waved through. They know the dock schedules. Smuggling in the Reach is a social and bureaucratic crime, not a physical one -- you beat the system by understanding the system better than the people enforcing it.
**What the smuggler's daily life looks like:**
- Morning: Clock in at the logistics hub. Review the day's manifests. Standard freight processing.
- Shift work: Move containers, verify shipments, coordinate with dock crews. Mundane, physical, routine.
- Cracks in the routine: A contact pings on an off-Meridian channel. A container is flagged for special handling. A dock worker who knows the score gives a particular greeting that means "tonight's load is ready."
- After shift: The bar. Decompress. Maintain social ties. Read the room for who's being watched.
The smuggler's lattice is standard-issue Baseline. They avoid enhanced lattice precisely because enhanced lattice means enhanced monitoring. Their perception is limited but their *knowledge* is deep -- they know the dock, the people, the rhythms. They navigate by social intelligence, not technological advantage.
**Detective (Institutional Investigator)**
Setting note -- "detective" in the Settled Reach means a Lattice Commission field investigator or a Concord Assembly-licensed security operative. This matters: the detective has *institutional backing* but also *institutional constraints*. They can request lattice reads (with cause). They can access Meridian security logs (within jurisdiction). They can query Commission databases (subject to classification).
But they can't just kick down doors. The Reach's legal framework is real. Jurisdictional boundaries matter. Evidence gathered illegally is inadmissible and gets investigators sanctioned. The detective's daily frustration is the gap between what they suspect and what they can prove within the rules.
**What the detective's daily life looks like:**
- Morning: Review case file updates on insert. Check for overnight Meridian flags in the district.
- Investigation: Walk the district. Observe. Talk to contacts and informants. Request specific data pulls from Commission systems.
- Institutional overhead: File progress reports. Justify resource expenditures. Navigate the priorities of superiors who care about clearance rates, not justice.
- After shift: The bar -- a different role. Not a colleague unwinding, but an investigator maintaining a social presence, building rapport, looking for tells. Or reviewing notes alone, trying to see the pattern.
The detective's lattice is Augmented -- institutional issue. Enhanced sensory processing, audio analysis capability, pattern recognition support. The insert overlay shows more data: flagged persons of interest, anomalous manifests, case file annotations pinned to locations. The detective sees the same district through an institutional lens that the smuggler's simpler lattice can't provide.
**Divergent starting knowledge (#182) -- setting-grounded specifics:**
| Knowledge domain | Smuggler knows | Detective knows |
|---|---|---|
| Dock operations | Full insider knowledge -- schedules, protocols, which bays are used for what, who works which shift | Official manifests and scheduled arrivals. What's on paper. |
| Criminal network | Names, roles, hierarchy within the ring. Who's reliable, who's sloppy, who's getting nervous. | A case file: "suspected smuggling activity in logistics sector." Sparse intel. |
| Institutional structure | Who the inspectors are, when they visit, which ones are thorough. Practical, defensive knowledge. | Chain of command, jurisdictional authority, access protocols. Operational knowledge. |
| Bar regulars | Drinking buddies, social ties, who to trust. The bar as social haven. | Faces, observed patterns, potential witnesses or informants. The bar as intelligence gathering site. |
| District rhythms | Lived experience -- knows when streets are quiet, which corridors are unmonitored, where the blind spots are. | Patrol schedules, monitored zones, officially mapped infrastructure. |
| Technology | Standard logistics systems, off-Meridian communication (basic Severance techniques), freight handling equipment. | Commission investigative tools, lattice read protocols, Meridian query syntax, surveillance analysis. |
**Divergent relationships (#183) -- access tier implications:**
The same NPC responds differently based on who's asking:
- **Dock workers (smuggling ring):** The smuggler gets insider greetings, warnings, coded updates. The detective gets polite compliance and careful answers.
- **Bar regulars:** The smuggler gets camaraderie, gossip, the real atmosphere. The detective gets friendly-but-guarded small talk from people who've noticed the institutional lattice signature.
- **Station administration:** The smuggler gets bureaucratic indifference. The detective gets professional cooperation and data access.
- **Informants:** The smuggler has contacts in the ring who warn them about pressure. The detective has informants who trade information for favors or immunity.
---
## Layer 3: Station District Setting Document
### Sova Transit District -- v0.1 Setting Brief
**Name:** Sova Transit District (Station Sova, Krenn System)
**Classification:** Mid-Reach logistics hub. Gate-adjacent commercial district.
**Physical Description:**
Sova Transit District occupies a wedge of Station Sova between the primary freight span gate terminal and the residential blocks. It's a working district -- cargo handling, warehousing, customs processing, maintenance, and the service economy that grows up around people who work physical jobs: bars, food vendors, repair shops, a small medical clinic.
The district is roughly 40 years old. The original structure was prefab modular -- standard mid-Reach construction. Since then, it's been modified, extended, patched, and partitioned by successive occupants. The result is a space with layers: clean institutional corridors near the gate terminal transitioning to older, more improvised spaces as you move toward the residential boundary. Ceiling heights vary. Lighting shifts from institutional white near the terminal to warmer, cheaper, more irregular fixtures in the older sections.
The span gate at the district's edge connects to a planetary freight depot. Most of what flows through Sova Transit is bulk cargo -- agricultural products, manufactured goods, machine parts, biological supplies. Nothing glamorous. The kind of freight that keeps a system running.
**Economic Engine:**
Sova's economy is freight. The span gate processes dozens of container transits per day. The logistics hub -- the district's largest employer -- manages scheduling, manifests, container handling, and customs verification. Supporting businesses serve the workforce: the bar, food vendors, a general supply outlet, maintenance services.
The district is not poor, but it's not prosperous either. Workers earn steady wages. Housing is adequate. The infrastructure works. There's a pervasive sense of economic stability that sits just above the line where people start complaining -- comfortable enough to be complacent, tight enough that an extra income source is tempting.
This is the economic pressure that feeds smuggling. A logistics worker makes a decent living. A logistics worker who moves a flagged container to the wrong scanner bay makes a *good* living. The risk calculus is tilted by the fact that the Commission's presence here is intermittent -- Sova is mid-priority. Enough oversight to maintain order. Not enough to catch everything.
**Atmosphere:**
Sova Transit feels like a place where people *work*. Not dramatically. Not glamorously. The way a port town works -- shifts rotate, cargo moves, people know each other because they've been seeing each other every day for years. There are regulars at the bar. There are shift handoff rituals. There are petty grievances that have been simmering for months. There's gossip.
The mood is **quotidian-with-undertow**. Surface level: ordinary life proceeding normally. Underneath: the smuggling ring has been operating for long enough that it's become part of the district's unofficial economy. People know, or suspect, or deliberately don't ask. The ring isn't violent. It isn't chaotic. It's a business that runs alongside the legitimate one, and most people have decided that's fine.
This is the tension the detective walks into: a district that looks normal because the abnormal has been normalized.
**Recent History:**
- **3 months ago:** The district's previous Commission liaison was reassigned (routine rotation, nothing suspicious). The replacement is less experienced and less connected to the district's social network. This created a window -- the ring's operations have expanded during the gap in institutional familiarity.
- **6 weeks ago:** A new freight contract brought increased cargo volume through the span gate. More containers means more opportunity to hide contraband. The ring has been busier.
- **2 weeks ago:** The detective was assigned. Their cover story (or open mandate, depending on build) places them in the district to review logistics compliance. Standard operational audit. Nothing exciting. Except the detective's actual brief includes intelligence suggesting smuggling activity.
- **Present:** The district is in an equilibrium that's about to be disrupted. The ring is comfortable but not complacent. The detective is observing but not yet acting. Ordinary life continues. The contamination (D-027) is the storyteller's disruption of this equilibrium.
**What Makes Sova Interesting:**
1. **Everyone knows everyone.** The district is small enough that faces are familiar. A stranger stands out. The detective's arrival is noticed. Their institutional lattice signature (detectable by anyone paying attention) marks them as *not from here*.
2. **The freight rhythm structures daily life.** Span gate transit schedules create predictable waves of activity -- busy periods when cargo moves, quiet periods between. This rhythm is the skeleton of NPC routines and the smuggler's operational calendar.
3. **The bar is the social heart.** Off-shift, the bar is where information flows. Who's talking to whom, who's drinking alone, who left early -- these are the social signals the player reads.
4. **Institutional presence is real but thin.** There's a Commission terminal, but it's a kiosk, not a station. Security checks happen at the span gate. Surveillance exists but isn't comprehensive. This gives both the smuggler and the detective room to operate -- the smuggler because oversight has gaps, the detective because they can observe without the infrastructure making it obvious.
5. **The architecture has secrets.** Forty years of modifications have created spaces that aren't on official layouts -- maintenance corridors repurposed as storage, sealed sections reopened, gaps between wall layers. The smuggling ring uses these. The detective, if observant, can discover them.
**Environmental Details for Content Teams:**
- **Signage:** Bilingual in Concordat Standard (institutional) and local script (Krenn System vernacular). Official signs are clean, regulation-formatted. Unofficial signs are hand-lettered, idiosyncratic.
- **News ticker:** A Meridian feed display in the bar and logistics hub lobby. Concord Assembly proceedings (boring), freight market prices (relevant), weather alerts for planetary operations (practical), and occasionally a Commission public notice about regulatory compliance (pointed).
- **Ambient sounds:** Cargo handling machinery. Span gate transit hum (a deep, subsonic vibration felt as much as heard). Ventilation. Foot traffic. The clink of a bar in the evening.
- **Smells (monologue material):** Industrial lubricant near the docks. Recycled air everywhere. Cooking from the food vendors. The particular ozone-and-metal scent that lingers near span gate terminals -- the Interstitium leaving its trace on everything that passes through.
- **Temperature:** Slightly warm near the cargo bays (machinery heat), cooler in the corridors (ventilation), comfortable in the bar (climate-controlled, a small luxury).
**Cultural Notes:**
Station Sova is Krenn System -- a mid-Reach system settled roughly 180 years ago. It's old enough to have a distinct local identity but young enough that most residents still think of themselves as part of the broader Reach rather than frontier separatists. The local culture is working-class pragmatic. People value reliability, competence, and minding your own business. They're not hostile to institutions, but they're not deferential either. The Concord Assembly is a distant government. The Commission is a practical reality. The Syndics are the entities you actually deal with -- Sova's freight operations run through a Syndic logistics consortium.
Religion and philosophy are private matters. The Unbound are a known quantity -- a few district residents are Unbound by choice, mostly older workers who came from frontier backgrounds. Nobody makes a fuss about it. The Guardians (Severance) are rumored to operate in the system but are not a visible presence in the district.
**Naming conventions (Krenn System):**
Names in the Krenn System tend toward compact, consonant-heavy constructions. First names: Kael, Voss, Drin, Lera, Torek, Maret. Family names (used formally): Davan, Korr, Sessik, Lintar. Workers often go by first name or nickname on shift. The detective will be addressed by title or full name until trust is established.
*IP note: These names are constructed to feel plausibly human-future without mapping to any existing franchise's naming conventions. They are NOT Commonwealth names (Ozzie, Nigel, Mellanie -- those are conspicuously contemporary English names, which is Hamilton's trademark). Our names suggest cultural drift over centuries of interstellar settlement.*
---
## Layer 4: Content Pipeline & Authoring Format
### Setting-Relevant Tag Taxonomy
Gestalt is the lead on the authoring format, but I can contribute the setting-relevant tag dimensions that should exist in the tag taxonomy:
**Setting-grounded tags for line pools:**
| Tag dimension | Values for v0.1 | Setting justification |
|---|---|---|
| `lattice_tier` | baseline, augmented | Determines what the character can perceive and access. Smuggler = baseline, detective = augmented. |
| `shift_phase` | on_shift, off_shift, transition | Freight rhythm structures social norms. On-shift dialogue is professional; off-shift is personal. |
| `district_familiarity` | local, newcomer | The detective is new. NPCs respond to that. "Haven't seen you around" vs "the usual?" |
| `institutional_context` | civilian, commission, syndic | NPCs adjust register based on perceived institutional affiliation. |
These tags complement the access tiers (D-028 Layer 1) by grounding them in setting logic. An NPC doesn't filter dialogue because of an abstract "trust level" -- they filter because they've noticed the institutional lattice signature, or because they've never seen this person on a shift rotation, or because the district's social code says you don't talk about certain things when Commission personnel are around.
---
## Layer 5: Template Content (3 Social Sites)
### Setting Context for Templates
**Workplace -- Logistics Hub ("The Terminal")**
The logistics hub is the district's economic center. A large open space partitioned into operational zones: manifest processing, container staging, span gate prep, administrative offices, crew locker area.
Setting details:
- **Manifest processing:** Terminals where workers verify cargo contents against Meridian-logged manifests. This is where the smuggling happens -- mismatched containers, doctored manifests, containers routed to the wrong scanner.
- **Container staging:** The physical workspace. Heavy containers moved by small grav-lifts. Noisy, active during shift hours. Workers communicate in a mix of voice and short Meridian pings.
- **Administrative offices:** The supervisor's domain. Official records, shift schedules, performance reviews. The smuggling ring's vulnerability -- if the supervisor is compromised, the ring has institutional cover. If the supervisor is clean, the ring has to work around them.
- **Break room / lockers:** The social space within the workplace. Where off-the-record conversations happen. Where shifts overlap and gossip flows.
Triangle opportunities:
- Supervisor vs. senior worker (authority tension, possible complicity)
- Two workers competing for a promotion (mundane triangle, personal stakes)
- Worker who suspects the ring vs. worker who's in the ring (knowledge asymmetry within the NPC population)
**Social Venue -- Bar ("The Last Shift")**
A mid-grade bar in the district's older section. Not upscale, not a dive. The kind of place where working people go after shift. Good enough that regulars are loyal, plain enough that nobody puts on airs.
Setting details:
- **Interior:** A long bar, scattered tables, a corner booth that's semi-private (key location for discreet conversations -- the player can observe who uses it). Background Meridian music feed. A news ticker display that nobody watches except when something local comes up.
- **Bartender:** A fixture. Knows everyone. Listens more than talks. Observes. The bartender is a potential information source for both characters, but for different reasons -- the smuggler trusts them as a social contact; the detective recognizes them as someone who sees everything.
- **Clientele:** Logistics workers (the largest group), a few station maintenance crew, occasional visitors from other districts, the detective (who becomes a regular by design or necessity).
- **Rhythms:** Quiet during day shifts. Filling up as evening shift ends. Peak in the evening. Late-night regulars are a different crowd -- the ones who don't want to go home, or who are waiting for something.
Triangle opportunities:
- Two regulars with a personal dispute that predates the game (mundane, rich for player observation)
- Bartender caught between regulars they like and a regular they suspect (loyalty vs. honesty)
- Cross-template: a bar regular who also works at the logistics hub, carrying social dynamics between both spaces
**Criminal Template -- Smuggling Ring ("The Arrangement")**
Not a cartel. Not organized crime in the dramatic sense. The Arrangement is an informal network of logistics workers who use their freight access to move contraband -- restricted biologicals, unlicensed lattice components, Severance tech, off-Meridian communication devices, occasionally items with no clear origin (Gyre salvage? Institute-classified materials? Nobody asks).
Setting details:
- **Structure:** Flat hierarchy. One coordinator (off-station, communicates through dead drops and off-Meridian channels). A handful of dock workers who handle the physical cargo. One or two contacts outside the district who arrange receiving. The smuggler player character is mid-level -- experienced enough to be trusted with operations, not senior enough to know the full network.
- **Operations:** Contraband arrives in standard freight containers with doctored manifests. Workers route these containers to scanning bays with known blind spots, or to storage areas where they can be opened and repacked. Timing is critical -- operations happen during specific shift transitions when oversight is thinnest.
- **Security:** The ring's primary defense is normalcy. Nobody does anything dramatic. No late-night break-ins. No suspicious meetings in dark corridors. Everything happens within the flow of legitimate work. If a container is flagged, it's rescheduled. If someone is watched, they go quiet. Patience is the ring's greatest asset.
- **Vulnerability:** The ring has been operating for about two years -- long enough that some participants have become careless. A few workers have been spending beyond their visible income. Social ties within the ring are strong enough that personal conflicts (romantic entanglement, debt, jealousy) could compromise operational security.
Triangle opportunities:
- Ring member whose loyalty is wavering vs. ring member who's all-in (pressure under investigation)
- Ring coordinator (remote) whose demands are escalating vs. local workers who want to keep things small (ambition vs. safety)
- Cross-template: ring member who's a bar regular, whose off-shift behavior is observable by the detective
---
## Layer 6: NPC Profiles & Dialogue
### Setting-Grounded NPC Context
The 10-axis model (D-024) is an ECS schema. What it needs from worldbuilding is the *cultural substrate* that makes those axes feel grounded in Sova Transit District rather than generic.
**What "ordinary life" feels like for an NPC in Sova:**
- You have a job. It pays. It's not exciting. You've been doing some version of it for years.
- You have a lattice (unless you're Unbound). It connects you to the Meridian. You use it the way people use phones -- constantly, casually, unreflectively. You check freight schedules, message friends, look up recipes, watch entertainment feeds, read news you mostly don't care about.
- You know your neighbors. You know the regulars at the bar. You have opinions about the supervisor. You have a thing with someone, or you had a thing with someone, or you're trying to have a thing with someone.
- You are aware of the Commission the way people are aware of the tax authority -- it exists, it has power, you'd prefer not to attract its attention, but you're not living in fear.
- You don't think about the Founders or the Builders or the Interstitium. Gate transit is a commute. The span gate hum is background noise. The existential questions of the Reach are academic. Your questions are: will I make rent, is Kael seeing someone, why did the supervisor change the shift rotation.
This is the substrate that D-029's 30% flat NPCs embody. They are *genuinely ordinary*. Their ordinariness is not a disguise. It is the reality that makes the smuggling ring's deception meaningful and the detective's investigation consequential.
**Cultural tells that NPCs exhibit:**
These are setting-specific behavioral markers that can feed into the tell system (#90):
| Cultural tell | What it signals | Setting basis |
|---|---|---|
| Checking their lattice overlay frequently | Nervous, expecting a message, monitoring something | Meridian-connected behavior, universal |
| Avoiding eye contact with Commission-tagged individuals | Awareness of institutional surveillance, possibly hiding something | Social response to authority, especially in districts with thin Commission presence |
| Using off-Meridian communication (physical notes, verbal codes, dead-drop patterns) | Connected to Severance networks, smuggling operations, or extremely private | Severance counter-surveillance culture filtering into criminal methodology |
| Spending patterns visible through lifestyle | Income doesn't match visible employment | Observable consequences of illicit income |
| Shift timing irregularities | Arriving early, staying late, taking breaks at non-standard times | Freight-rhythm deviation -- meaningful in a schedule-driven workplace |
| Social avoidance of specific individuals | Relationship tension, secret, fear of exposure | Triangle dynamics manifesting as observable behavior |
**NPC naming for v0.1 -- a starter set:**
For Mellanie and Paula to begin writing, they need names. These are setting-consistent for Krenn System:
| Name | Role suggestion | Notes |
|---|---|---|
| Kael Davan | Dock worker, smuggling ring member | The smuggler's closest colleague and the detective's early person of interest |
| Voss | Logistics hub supervisor | Clean or compromised? Either works for v0.1 |
| Lera Sessik | Bartender at The Last Shift | Social hub, observes everything, talks carefully |
| Torek Lintar | Senior dock worker, ring member, getting sloppy | Visible spending, behavioral tells, vulnerability |
| Drin | Station maintenance, bar regular, not ring-connected | Mundane triangle participant, salt-of-the-earth |
| Maret Korr | Freight scheduler, ring-adjacent (knows but isn't active) | The moral gray zone -- aware, complicit by silence, conflicted |
These are suggestions, not mandates. Paula and Mellanie should adapt freely. The naming convention (compact, consonant-heavy, first-name-primary in social contexts) is the consistency requirement.
---
## Layer 7: Monologue & Observation Text
### Setting Context for Character Voice
The monologue is the most important content system for proving the setting works in gameplay. It's where the player *hears* the setting through their character's perspective.
**Smuggler voice -- setting notes:**
The smuggler's monologue should reflect someone embedded in Sova's social fabric. They think in terms of relationships, routines, and risk management. Their observations are practical and socially attuned.
- **Register:** Colloquial, direct, occasionally sardonic. They don't use institutional vocabulary. They don't think in Commission categories. When they see a cargo container, they think about who shipped it and what might be in it, not about regulatory compliance.
- **Knowledge flavor:** The smuggler notices things a logistics worker would notice. Manifest inconsistencies. Dock schedule changes. Which scanner bays are running and which are down for maintenance. These are mundane observations that carry hidden significance.
- **Emotional baseline:** Watchful comfort. This is the smuggler's territory. They're at ease here, but never fully relaxed -- the awareness that one mistake could unravel everything is always present, like a low hum.
Example monologue seeds (not final lines, but tone/content direction for Mellanie):
- Seeing a colleague arrive late: *observation + social reading + implicit risk assessment*
- Noticing the detective in the district: *wariness + social evaluation + threat assessment without acknowledging why they're a threat*
- Routine cargo handling: *competence + casual familiarity + the practiced not-looking at flagged containers*
**Detective voice -- setting notes:**
The detective's monologue should reflect trained analytical habits filtered through institutional perspective. They think in terms of evidence, patterns, and procedure. Their observations are systematic but tinged with the frustration of working within constraints.
- **Register:** More formal internally than the smuggler. Professional vocabulary. Commission frameworks for categorizing observations. But not robotic -- the detective is a person, not an institution, and their private thoughts include doubt, irritation, and occasional dark humor.
- **Knowledge flavor:** The detective notices things an investigator would notice. Behavioral patterns. Access anomalies. Infrastructure gaps. When they see a cargo container, they think about chain of custody, scanning records, and whether the manifest matches the shipping code.
- **Emotional baseline:** Alert curiosity with institutional weariness. They're doing a job. They believe in the job. But they've been doing it long enough to know that the job doesn't always produce justice, and that their institution is imperfect.
**Setting-specific monologue triggers Mellanie should consider:**
| Trigger | Smuggler response flavor | Detective response flavor |
|---|---|---|
| Span gate transit hum changes pitch | "Gate's busy today. Good cover." | "Increased freight volume. Worth checking manifests." |
| Unfamiliar person in the district | "Who's that? Not from any shift I know." | "New face. No district resident tag on file. Note for follow-up." |
| News ticker mentions Commission activity elsewhere | "Good. They're busy somewhere else." | "Regional enforcement stretched thin. Explains the understaffing here." |
| NPC seems nervous | "Something's wrong with Torek. He's been jumpy all week." | "Subject displays stress indicators. Possible concealment behavior." |
| Bar is unusually quiet | "Where is everyone? Something happen on late shift?" | "Reduced foot traffic. Correlated with any scheduled operations?" |
---
## Layer 8: UI Text & Environmental Content
### Setting-Grounded Diegetic Content
The neural lattice overlay (the insert, per D-013) is the player's interface. Everything the player sees on their HUD exists within the fiction as lattice-projected information. This constrains and enriches what appears on screen.
**What the lattice displays (both characters):**
- **Time:** Krenn System standard time. The lattice displays it in the corner of visual awareness -- the way you see a clock on a phone without looking directly at it.
- **Navigation:** Known locations appear as waypoints in the overlay. Fuzzy for general areas, precise for visited locations.
- **Notifications:** Meridian messages, institutional alerts, personal pings. The smuggler gets fewer institutional notifications; the detective gets more.
- **Identity tags:** When looking at a person, the lattice can display publicly available data -- name (if in your contact list or public record), employer (if publicly listed), lattice tier (detectable by proximity scan). The *absence* of this data is itself information -- someone with a masked or spoofed lattice signature stands out.
**What the detective's augmented lattice adds:**
- Case file annotations pinned to locations and persons of interest
- Commission database query results displayed in overlay
- Enhanced audio analysis readouts (sound direction, voice pattern matching)
- Surveillance zone boundaries (where Commission monitoring is active)
**Environmental text for Mellanie and Araminta:**
| Text type | Examples | Setting notes |
|---|---|---|
| Official signage | "Span Gate Terminal C -- Authorized Freight Only," "Lattice Commission -- Report Irregularities," "Emergency Re-embodiment: Deck 7 Med Center" | Institutional, bilingual (Concordat Standard + Krenn vernacular), regulation-formatted |
| Informal signage | "Lera's -- Cold Drinks, Hot Food, No Questions" (the bar), shift schedule boards, hand-lettered notices about lost items or shift swaps | Personality-rich, district-specific, the human layer over institutional structure |
| Terminal screens | Freight manifest summaries, Meridian news feeds, Commission public notices | Functional, data-dense, the kind of information that's everywhere and mostly ignored |
| Meridian news ticker | "Concord Assembly approves Krenn System infrastructure allocation," "Span gate maintenance: Terminal B offline 0200-0400," "Commission advisory: verify lattice firmware before next imprint cycle" | Background texture, occasionally plot-relevant (the detective might notice a news item the smuggler ignores) |
**Onboarding through monologue (D-016 diegetic tutorial):**
Setting note -- the lattice IS the tutorial system. The character's lattice overlay highlights interactive elements naturally. The character's internal monologue provides context naturally. "That terminal might have access logs" is the detective's trained instinct, not a tutorial prompt. "Better check in with Kael before shift" is the smuggler's social awareness, not a quest marker.
The setting makes diegetic onboarding not just possible but *inevitable*. These characters live in this world. They think about it. Their thoughts are the tutorial.
---
## Layer 9: Audio Direction
### Setting-Grounded Sound Identity
I won't prescribe audio design, but the setting has sonic character that should inform whatever direction we take:
**Sova Transit District soundscape:**
- **The span gate hum:** A persistent, low-frequency vibration that defines the district's acoustic identity. Everyone who lives here has learned to ignore it. But it's *always there*. When it stops (maintenance, emergency shutdown), the silence is unsettling. This is the district's heartbeat.
- **Freight operations:** Grav-lift motors, container locks engaging, manifest scanners pinging, dock crew calling to each other. Industrial but not deafening -- modern equipment is efficient. The sound of work happening.
- **Social spaces:** The bar has its own acoustic character -- conversation, glass on surfaces, a Meridian music feed that nobody chose and nobody changes. The logistics hub break room is quieter -- murmured conversations, locker doors.
- **Lattice sounds:** A lattice notification is a sound only the recipient hears -- it's internally generated. For gameplay, this means the player hears their own notifications (monologue, messages, alerts) but NPC lattice sounds are silent to the player. An NPC checking their lattice is a *visual* tell, not an auditory one.
**v0.1 audio recommendation from setting perspective:**
The span gate hum alone would do more for atmosphere than any amount of generic ambient music. If we implement one sound for v0.1, it should be this -- a constant, low rumble that the player eventually stops noticing, until it changes, and then the *absence* or *change* in that sound becomes information. This supports the three-range model (D-018) naturally: the hum is the acoustic baseline that other sounds are measured against.
---
## Setting Gaps & Risks
### What's Still Missing from the Setting for v0.1
1. **Contraband specifics.** What is the ring actually smuggling? This matters for narrative weight. Suggestions:
- **Unlicensed lattice components** -- aftermarket mods that bypass Commission regulation. Not dangerous, but illegal. The moral question: people want better lattice access than they can afford through official channels. Is that wrong?
- **Severance tech** -- counter-surveillance tools. The ring doesn't care about ideology; they move product. But the product has political implications.
- **Off-manifest biologicals** -- medical supplies, growth cultures, possibly re-embodiment materials diverted from Syndic supply chains. The gray market exists because Syndic pricing makes legitimate access prohibitive for working-class citizens.
Recommend: a mix, with unlicensed lattice components as the primary cargo. This creates moral ambiguity -- the smuggler isn't moving weapons or drugs. They're moving *access*. The detective's investigation targets an operation that, from a certain angle, is a public service.
2. **The detective's institutional chain of command.** Who assigned them? What's the stated mandate? What are the political pressures on the investigation? This needs to be defined before Paula designs the detective's narrative arc.
3. **Off-station connections.** The smuggling ring has contacts outside Sova Transit District. Who are they? We don't need to build them for v0.1, but we need enough detail that NPC dialogue can reference them consistently. Suggestion: the ring's coordinator is on-station but in a different district, communicating through dead drops and off-Meridian channels. External contacts are Syndic-adjacent freight handlers at the other end of the span gate route.
4. **The Meridian's local flavor.** What does the Meridian "feel like" in this district? Fast, reliable connection? Intermittent coverage with dead spots? The level of Meridian infrastructure affects everything from NPC behavior to the detective's investigative capability. Suggestion: solid coverage in the logistics hub and bar (institutional areas), degraded coverage in the older district sections (natural dead spots that the ring exploits, that Severance may have expanded).
### IP Originality Checklist
Let me check the v0.1 content against our guardrails:
| Element | Risk assessment |
|---|---|
| Station district setting | **Clear.** Generic enough to be original. No specific franchise owns "space station logistics district." |
| Smuggling ring premise | **Clear.** Smuggling as logistics manipulation rather than daring raids is original enough. Distinct from Star Wars (romantic), The Expanse (violent), or Hamilton (political). |
| Detective as institutional investigator | **Clear.** Commission investigator is setting-specific. Not a cop, not a Blade Runner, not a bounty hunter. |
| Span gate as infrastructure | **Clear.** Our dual-tier gate system is established as original (Round 14 audit). |
| Lattice/Meridian as daily technology | **Clear.** Original terminology, distinct from Hamilton's inserts/unisphere. |
| "The Last Shift" as bar name | **Clear.** Evocative of working-class setting, not franchise-specific. |
| Krenn System naming conventions | **Clear.** Constructed specifically to avoid franchise mapping. |
No IP concerns flagged for the v0.1 station district content.
---
## Summary: What Content Teams Need from Worldbuilding
| Recipient | What I've provided | What's still needed |
|---|---|---|
| **Mellanie** | District atmosphere, NPC naming conventions, character voice notes, monologue trigger examples, environmental text examples | Full NPC cultural profiles once Paula defines the relationship web |
| **Paula** | Smuggler and detective daily life descriptions, institutional context, triangle opportunities per template, setting-grounded access tier logic | Review of whether the detective's institutional framework supports the narrative arc she's designing |
| **Araminta** | Visual identity notes (mid-Reach, lived-in, functional), environmental detail descriptions, signage language | Confirmation that the visual tone aligns with what she's proposing for Q-003 |
| **Gestalt** | Setting-grounded tag taxonomy additions, cultural tell catalog for tell system | Validation that the setting tags integrate cleanly with the line pool format |
| **Ozzie** | The span gate hum as signature atmospheric element, the "stranger stands out" social dynamic | Feedback on whether the district atmosphere creates the "first 30 seconds of presence" he's looking for |
---
## Recommendation for Cultural Generation Guide (#189)
This workshop output should feed directly into the cultural generation guide I'm assigned to write. The Sova Transit District brief above is the first instance -- a concrete example of what the guide will generalize. The guide needs to cover:
1. How to adapt the setting's general principles to specific district types
2. Naming conventions by system origin
3. Daily life rhythms by economic base (freight, service, institutional, frontier)
4. Cultural attitudes toward lattice, Commission, and institutional authority by district character
5. Environmental detail templates (sounds, signs, smells, architectural character)
The Sova brief is the v0.1 slice. The cultural generation guide is the tool for scaling beyond v0.1.
---
*Setting note -- I'm satisfied that the v0.1 district is grounded in our established worldbuilding, original in its surface details, and rich enough to support the content teams' work. The Settled Reach's ordinary life needs to feel genuinely lived-in before the conspiracies have any weight. Sova Transit District is designed to be exactly that: ordinary enough to be real, textured enough to be interesting, and structured enough that the smuggler and detective experience it as fundamentally different places.*
*Miri out.*
@@ -0,0 +1,267 @@
# Round 1: Ozzie — Player Experience & Wow Factor
## v0.1 Content Gap Analysis Workshop
---
## My Approach
Same as last time. I'm reading each layer and asking: **does this make someone FEEL something?** Content isn't lines in a file. Content is the moment a player stops thinking about the game and starts thinking about the WORLD. I'm going through all 9 layers and answering the questions directed at me, but I'm also flagging anything that smells emotionally flat.
---
## Layer 1: Art Direction & Visual Identity
### Q: Does the vertical slice need visual mood, or is "readable placeholder" sufficient to prove the concept?
**It needs mood. Not polish — MOOD.**
Here's the thing. D-016 says "atmosphere carried by monologue." That's true. The monologue is our primary atmosphere engine. But the monologue doesn't fire until the player is ALREADY in the world. There's a gap — however small — between "I see the screen" and "the first monologue line plays." In that gap, the player forms their first impression from VISUALS ALONE.
If that first impression is "this looks like a spreadsheet," the monologue has to fight upstream. It has to OVERCOME a first impression instead of REINFORCING one.
So here's what I'm asking for — and it's not much:
1. **A constrained color palette that says "space station."** Not beautiful — FUNCTIONAL but atmospheric. Think: muted blues and grays for corridors, warm amber for the bar, cold fluorescent white for the logistics hub. Three palettes, three moods. Even with box-art placeholders, color does 80% of the atmosphere work.
2. **Lighting variation between locations.** The bar is dim. The workplace is bright. The smuggling ring meeting spot is dark except for one harsh light. This isn't art — it's tinting. It can be done with placeholder boxes if the boxes are the RIGHT COLOR.
3. **One signature visual element.** Something the player sees in the first 5 seconds that says "this is a space station, not a warehouse." A viewport showing stars. A holographic sign. A wormhole gate visible in the distance. ONE thing. That's the visual hook while the monologue spools up.
**My answer: "readable placeholder" is NOT sufficient. "Readable placeholder WITH a color palette and one signature element" IS sufficient.** The gap between those two is maybe 2-3 days of Araminta's time and it's the difference between "this is a prototype" and "this is a WORLD I'm stepping into."
D-014 says "functional boxes with labels." Fine. But those boxes should be tinted correctly and that one signature element should exist. That's my line.
---
## Layer 2: Narrative Framework & Character Design
No questions directly at me, but I'm weighing in anyway because this is where the emotional foundation gets laid.
The Dual Lens Guide (#261) is the most important pre-content document in the entire project. I said this in the last workshop and I'll say it again: **the smuggler and detective must have fundamentally different EMOTIONAL RELATIONSHIPS to the same world.** Not just different access tiers. Different FEELINGS.
The smuggler walks into the logistics hub and feels... what? Boredom? Comfort? Low-level anxiety about their side gig? The detective walks in and feels... suspicion? Professional focus? The excitement of being undercover in a new environment?
The Dual Lens Guide needs to define these emotional registers. Not just "who knows what" — "who FEELS what, about the same things."
**One specific ask for Paula:** The guide should include 3-5 "emotional divergence moments" — specific situations where the two characters would have opposite emotional reactions. Examples:
- Seeing a cargo manifest (smuggler: routine / detective: evidence)
- An NPC being friendly (smuggler: genuine warmth / detective: "is this person a target or an asset?")
- A door that's usually locked being open (smuggler: "huh, that's weird" / detective: "THAT'S MY IN")
These divergence moments are what Mellanie needs to write voice-consistent monologue. They're the emotional atoms of the dual-lens system.
---
## Layer 3: Station District Setting
### Q: What environmental details make a player feel present in the first 30 seconds?
**Five things. That's all you need. Five things and you're THERE.**
1. **Sound first.** Before you even process the visuals, you should hear the station. A low hum. Distant chatter. The hiss of an airlock cycling somewhere. I know audio is Layer 9 and deferred — I'll fight about that there. But if we HAVE audio, it should land before the first monologue line.
2. **Movement.** NPCs should already be moving when the game starts. Not standing in their spawn positions waiting for the player. You walk out of your hab unit and there's someone walking past. Going somewhere. Living their life. The world was here BEFORE you pressed play. That's the single most important presence signal.
3. **The news ticker.** Miri, Paula — put a news ticker or announcement board in the player's starting location. Not a lore dump. Three lines. "Dock 7 maintenance: scheduled closure 14:00-18:00." "Community social: bar district, Thursday evening." "Security reminder: report unregistered cargo to station management." Those three lines tell you: there are docks, there's a community, there's security, and someone's worried about unregistered cargo. THAT'S worldbuilding in 30 words. And for the smuggler, that last line hits DIFFERENT.
4. **Something out the window.** I said it in Layer 1 and I'll say it again. The player needs to see that they're IN SPACE. On a STATION. A viewport, a transparent section of floor over a docking bay, a holographic display showing the local system. One visual anchor that says "you are very far from home and this metal tube is keeping you alive." Scale creates awe. Awe creates presence.
5. **A named NPC within 10 seconds.** Not a tutorial guide. Just someone your character KNOWS. They walk past, and your monologue says their name. "There goes Tomas. Early shift again." Suddenly you're a person who KNOWS PEOPLE. You're not a camera floating through a level. You're someone with a LIFE here.
**That's the recipe: sound + movement + environmental text + spatial context + a named face.** If Miri's station district document establishes these five elements, the setting will feel present regardless of art quality.
---
## Layer 4: Content Pipeline & Authoring Format
No questions directed at me, but I care about one thing here: **the line previewer (#193).**
The line previewer isn't just a QA tool. It's how we test whether content FEELS right. Can the smuggler's monologue play in sequence and sound like a person thinking? Does the detective's voice feel distinct? Do the NPC voice kits sound like different people?
I can't gut-check content I can't experience. Nobody can. The previewer needs to exist before the content packs are "done," or we'll ship content that reads well in a YAML file and sounds dead in the game.
**My ask to Gestalt:** When you define the line pool format, include a "preview sequence" tag or mechanism. Something that lets you say "play these 5 lines in order as if the character just walked into the bar." That's how Mellanie tests her work, and it's how I evaluate the emotional delivery.
---
## Layer 5: Template Content (3 Social Sites)
No questions directly at me but I'm going to SCREAM about something.
D-029 says 30/50/20 entanglement split. ~15 NPCs. That means:
- ~4-5 truly flat NPCs (routine + greeting only)
- ~7-8 mundane triangle NPCs (social drama, no conspiracy)
- ~3 entangled with intrigue
Here's what keeps me up at night: **those 4-5 flat NPCs need to NOT feel flat.** The player doesn't know who's entangled. The moment a player can look at an NPC and think "oh, that one's just background decoration" — the investigation collapses. Every NPC needs to SEEM like they could matter. The flat ones just... turn out not to.
What makes a flat NPC feel non-flat:
- A name and a visible routine (they go PLACES)
- One memorable trait (always eating, always late, always complaining about the same thing)
- One line that SOUNDS like it could be important but isn't ("I swear the cargo schedules are getting weirder" — nope, they're just bad at their job)
Mellanie — those flat NPC voice kits are LOAD-BEARING for the investigation mechanic. They're the noise floor. If the noise is obviously noise, the signal is too easy to find.
---
## Layer 6: NPC Profiles & Dialogue
### Q: Which NPC should the player remember after 30 minutes? What makes them memorable — a line, a routine, a contradiction?
**A contradiction. Every time, it's the contradiction.**
Here's the NPC I want the player to remember. Let's call them THE FRIEND.
THE FRIEND is the NPC your character has the strongest pre-existing relationship with. For the smuggler, it's a work buddy — someone you share shifts with, someone you eat lunch with, someone who covers for you when you're late. For the detective, it's a contact — someone who feeds you information, someone you trust, someone who stuck their neck out for you once.
THE FRIEND is memorable because of a CONTRADICTION the player discovers through observation:
- The smuggler's work buddy is kind, reliable, always has your back. But you catch them one evening in a part of the station they have no reason to be in. Your monologue: "What's Jax doing near the restricted docks?" You can ask them about it. They deflect. THEY LIE TO YOU. And now every warm interaction is CONTAMINATED with doubt.
- The detective's contact gives you solid intel. Reliable. Professional. But you notice they always have an excuse to leave when a certain other NPC shows up. Your monologue: "That's the third time Ana's left when Riks walked in." What's the connection? Is your contact avoiding someone? WHY?
**What makes THE FRIEND memorable is not a great line or an interesting routine — it's the SHIFT.** They start as background comfort. Then ONE observation changes everything. Now they're a mystery wrapped in a relationship. The player can't stop thinking about them because the player LIKED them and now doesn't know if they should.
**This is why D-027's success criterion #3 is genius: "player names an NPC they felt conflicted about."** THE FRIEND is the NPC designed to deliver that criterion. One per character. Authored specifically for this purpose.
**My recommendations for Paula and Mellanie:**
1. Each character needs ONE clear "friend" NPC designed for emotional contradiction
2. THE FRIEND must be present in the first 10 minutes — relationship established EARLY
3. THE FRIEND's contradiction must be discoverable through OBSERVATION, not told through dialogue
4. The contradiction should activate during or shortly after contamination — it's the emotional bridge between daily-life and investigation
For the remaining NPCs: one memorable thing each is enough. The bartender who remembers everyone's order. The security guard who's always reading something on their insert. The maintenance worker who hums. Small, human details. Not every NPC needs to be a mystery. Most should be PEOPLE. That's what makes the mysteries stand out.
---
## Layer 7: Monologue & Observation Text
### Q: When does the first monologue surprise the player? What's the moment where they think "wait, my character noticed something I didn't"?
**It happens the first time the character has an OPINION the player doesn't share yet.**
Here's the sequence:
1. The player walks into the bar. They see NPCs sitting around. Some talking, some alone. It's just... a bar.
2. The monologue fires: "Riks is at his usual table. But he's not drinking. He's watching the door."
3. The player thinks: "I didn't notice that. My character KNOWS this person well enough to know that not-drinking-and-watching-the-door is unusual."
4. NOW the player looks at Riks differently. They didn't decide to investigate Riks. The CHARACTER flagged Riks. The monologue created attention.
THAT'S the surprise. The character is a better observer than the player. The character has context the player doesn't. The monologue bridges that gap — and in doing so, it makes the player feel like they're WEARING someone else's eyes.
For the **smuggler**, the first surprise should be social instinct: "Kira's being extra friendly to the new dock supervisor. She wants something." The smuggler reads social dynamics like a trader reads prices. The player didn't see manipulation — the CHARACTER did.
For the **detective**, the first surprise should be professional pattern-matching: "Three people at adjacent tables, none of them talking to each other, all arrived within two minutes. That's not a coincidence." The detective sees formations. Tactical arrangements. The player saw people sitting at a bar.
**When should this happen?** Within the first 15 minutes. Before contamination. During the DAILY LIFE phase. Because the surprise isn't about the conspiracy — it's about discovering that your character is a PERSON with perceptions and biases and skills the player doesn't have. The conspiracy amplifies this. The daily life INTRODUCES it.
**Content implications for Mellanie:**
- Each character needs 10-15 "observational insight" monologue lines for the pre-contamination phase
- These lines should reference SPECIFIC NPCs and their known patterns
- The insights should be CORRECT — the character's observations should check out if the player investigates
- Occasionally, the character should be WRONG — confident assessment, incorrect conclusion. "She's probably just tired." (She wasn't tired.)
**The monologue surprise is the game's SIGNATURE MECHANIC in content form.** It's not infrastructure. It's not a pipeline question. It's Mellanie writing lines that make the player feel like someone else is thinking through their eyes. If we get this right, it doesn't matter that the art is placeholder. If we get this wrong, no amount of polish saves us.
---
## Layer 8: UI Text & Environmental Content
No questions directly at me, but I want to reinforce something from my Layer 3 response.
**The news ticker / announcement board is the cheapest wow-per-word content in the entire game.**
A news ticker running in the bar or the workplace that updates throughout the day is:
- Worldbuilding (what's happening on this station?)
- Atmosphere (is this a happy place? A tense place?)
- Foreshadowing (a headline that seems mundane but connects to the conspiracy)
- Character divergence (the smuggler reads "increased cargo inspections" and sweats; the detective reads it and thinks "about time")
For v0.1, we need maybe 20-30 ticker lines. Rotating. Some mundane ("Stellar weather: nominal"), some social ("Community garden expansion approved"), some loaded ("Security advisory: unscheduled vessel departures under review"). That's an afternoon of Mellanie's time and it makes the station feel ALIVE every second it's on screen.
**The diegetic insert (D-013) needs flavor text too.** When you check your neural implant map, the POI labels shouldn't just say "Bar" and "Workplace." They should say what your CHARACTER would label them. The smuggler's insert says "The Rusty Airlock" (the bar's name, they're a regular). The detective's insert says "Licensed establishment — district 7" (official designation, they just transferred here). SAME PLACE. Different label. Different character. That's asymmetric information in the UI layer and it costs NOTHING.
---
## Layer 9: Audio Direction
### Q: Does placeholder audio kill the atmosphere, or is silence acceptable for a concept proof?
**Silence is DEATH.**
I know that sounds dramatic. Hear me out — no pun intended.
Top-down view. Placeholder art. Small sprites moving around a tiled map. Without audio, this is a BOARDGAME. A pretty one, maybe. But a boardgame. The monologue is TEXT. The dialogue is TEXT. The fog of perception is a visual effect. Everything the player experiences through their ears is... nothing.
And the thing about silence is — you HEAR it. Not consciously, but your brain notices. Silence says "this isn't a place." Sound says "this is a place." The difference is primal.
**BUT — I'm not asking for a full audio suite.** Here's my minimum viable audio for v0.1:
1. **Station ambient loop.** One track. Low hum, distant machinery, occasional muffled announcements. This runs ALWAYS. It's the "you're on a space station" signal. Think: the Nostromo ambience from Alien. It can be royalty-free or generated. One file. Huge impact.
2. **Location variation.** Three variants of the ambient: workplace (louder machinery, cargo sounds), bar (muted music, glass clinks, conversation murmur), corridors (echoing footsteps, that lonely hum). These can be the same base track with different overlay layers. Three files.
3. **Footsteps.** Your character's footsteps. Metal floor. Consistent. This alone makes you feel PRESENT in the space. One sound, two variations (walk/run). The single highest bang-for-buck audio asset in any game.
4. **One UI sound.** The monologue appearance. A soft chime, a subtle click, something that says "your character is thinking." This trains the player to notice monologue, which is our primary content delivery mechanism. Without it, text just appears and might be missed.
That's 6-8 audio files total. Maybe a day of work for someone with access to a sound library. Maybe two days if we're generating them. And the difference between those 6 files and silence is the difference between "interesting tech demo" and "I want to keep playing."
**So my answer: silence is NOT acceptable for a concept proof. But we don't need much.** A station hum, three location variants, footsteps, and a monologue chime. That's the audio floor. Below that, the atmosphere collapses regardless of how good the monologue writing is.
**Should we defer audio entirely?** NO. We should defer SOPHISTICATED audio (the three-range model, directional sound, sound-through-walls). Those are milestone features. But ambient atmosphere and basic feedback sounds should be in Sprint 2 or early Sprint 3 at the latest. Before the first content playtest. Because if we playtest in silence, we'll get feedback about the writing and systems, but we won't learn whether the ATMOSPHERE works. And atmosphere is what turns systems into experiences.
---
## Cross-Layer: The Emotional Content Map
Stepping back from individual layers. Here's how I see the content gaps mapping to PLAYER EMOTIONS:
### The Emotional Journey (30-minute session)
| Minute | Emotion | Content That Delivers It | Status |
|--------|---------|-------------------------|--------|
| 0-1 | Curiosity / Awe | Visual mood + ambient audio + signature visual element | GAP |
| 1-3 | Grounding | Opening monologue + named NPC + news ticker | GAP |
| 3-10 | Comfort / Routine | Daily task + workplace/bar dialogue + flat NPCs being human | GAP (content packs not started) |
| 10-20 | Attachment | Repeated interactions + THE FRIEND + gossip + small social dramas | GAP (dialogue layers 3-4) |
| 20-25 | Unease | First observational surprise + monologue flagging deviations | GAP (no observation content) |
| 25-30 | Dread | Routine breaks + THE FRIEND's contradiction + things going wrong | GAP (contamination content) |
| 30+ | Investigation | Full conspiracy activation | GAP (storyteller activation) |
**Every single emotional beat is a content gap.** The SYSTEMS to deliver them exist or are planned. The CONTENT to fill them does not.
That's what this workshop is about. And that table is the priority order for content creation.
---
## My Top 5 Content Priorities (Ordered)
1. **Character emotional profiles** (for Dual Lens Guide) — Before anyone writes a LINE, we need to know how each character FEELS about their world. This is Paula's document but I want Mellanie in the room. No voice kit can be written without it.
2. **THE FRIEND NPC design** (one per character) — The single NPC designed to deliver D-027 success criterion #3. Full profile, full voice kit, full contradiction arc. This is the emotional centerpiece of v0.1.
3. **Opening monologue + first 5 minutes content** — The first 20 lines each character thinks. The diegetic first objective. The emotional register of "another day" before everything goes wrong. This is what the player's first impression is made of.
4. **News ticker / environmental text** — 20-30 lines of station life. Cheapest content, highest presence-per-word ratio. Worldbuilds while the player walks around.
5. **Flat NPC voice kits** — The noise floor. The 4-5 NPCs who AREN'T important but need to FEEL like they might be. One memorable trait each. 10-15 lines each. These make or break the investigation mechanic.
---
## The Bottom Line (Again)
Last workshop I said: "We need to design the moments, not just the systems."
This workshop I'm saying: **"We need to write the moments, not just design them."**
The systems are being built. The architecture is solid. The decisions are right. But somewhere between D-028 (tagged line pools with four relational layers) and an actual player sitting at their desk going "oh shit, did Jax just lie to my face?" — there's a canyon. And that canyon is filled with unwritten monologue lines, undefined character voices, and content packs that are tickets with no words in them yet.
This workshop fills the canyon. Let's go.
---
*Written by Ozzie. Still from the gut.*
@@ -0,0 +1,500 @@
# Round 1 — Paula's Content Gap Analysis
**Agent:** Paula (Narrative & Political Depth)
**Workshop:** v0.1 Content Gap Analysis
**Date:** 2026-02-11
---
## My Approach
The workshop asks nine layers of questions, moving from the most global (art direction) down to the most specific (audio). I'm addressed directly in Layers 2, 3, 5, 6, and 7. But let me complicate this structure: content gaps don't exist in layers — they exist in *relationships between layers*. A character voice profile (Layer 2) only means something if it connects to a dialogue format (Layer 4) that connects to a content pack (Layer 5) that connects to monologue lines (Layer 7). The gaps I'm most concerned about aren't within any single layer — they're at the seams.
I'll address each question directed at me with concrete proposals, then identify the cross-layer dependencies that the workshop structure might obscure.
---
## Layer 1: Art Direction & Visual Identity
Not my primary domain, but I have a narrative stake here.
**Narrative implication of the visual identity question:** The two characters should *feel* different before a single line of monologue plays. If the art direction is "functional minimalism, atmosphere through text" (which I support for v0.1), then the visual differentiation between smuggler and detective must come from the insert/HUD layer, not from the world itself. The detective might see the district through an analytical overlay — case file annotations on locations, routine deviation markers. The smuggler might see it through a social map — who's friendly, who's dangerous, where the exits are.
This means the "visual identity" for v0.1 is partially a question for me: **what does each character's neural insert show them?** Even with placeholder art, the insert overlay can carry character-specific visual language. I'd defer to Araminta on execution, but the *information design* of what each character's HUD reveals is a narrative question.
---
## Layer 2: Narrative Framework & Character Design
### Question 1: What does the Dual Lens Authoring Guide (#261) need to contain?
This is the single most important pre-production document for content creation. Without it, Mellanie writes dialogue that works for one character but not the other. Miri designs a station that reveals itself the same way to everyone. Every content creator needs to understand the dual-lens principle before writing a single line.
**Proposed contents of the Dual Lens Authoring Guide:**
**Part 1: The Two Characters**
| Dimension | Smuggler | Detective |
|-----------|----------|-----------|
| **Core identity** | Logistics worker at the hub. Criminal activity is their day job disguised as normal work. | Institutional investigator. Assigned to the district on a routine case — or so it seems. |
| **Emotional starting state** | Comfortable but wary. This is home, these are friends, and the operation runs smoothly. | Professional and detached. This is an assignment, these are subjects. |
| **Relationship to the district** | Insider. Knows the rhythms, the shortcuts, who to avoid, who to trust. | Outsider. Reads the district through case files and institutional briefings. |
| **What they notice first** | People out of place. Routine disruptions. New faces. Things that threaten the operation. | Patterns. Inconsistencies. Things that don't match the official record. |
| **What they miss** | The institutional perspective — how this district looks from the outside, how exposed the operation actually is. | The human perspective — why people do what they do, what desperation drives the smuggling. |
| **Internal monologue voice** | Casual, sardonic, street-smart. Uses nicknames. Thinks in terms of loyalty and risk. *"Kael's late again. Third time this week. That's how people get noticed."* | Precise, observational, controlled. Uses titles and descriptions. Thinks in terms of evidence and procedure. *"Dock worker, second shift. Arrived 12 minutes late. Noted."* |
| **Relationship default** | Trust is earned through shared risk. New people are threats until proven otherwise. | Trust is institutional. Credentials open doors. Personal trust is a vulnerability. |
**Part 2: The Dual-Lens Rule**
Every piece of content must pass this test: **Does it read differently through each lens?**
This doesn't mean every line needs two versions. It means every *situation* must have two interpretations. The same NPC behavior, the same location detail, the same overheard conversation should mean something different to each character.
**Example — An NPC arriving late to work:**
- **Smuggler sees:** A colleague whose reliability is slipping. Threat assessment — are they getting sloppy? Are they being watched? Should I cover for them?
- **Detective sees:** A data point. Late arrivals correlate with... what? Worth monitoring. File it.
**Example — A locked room in the logistics hub:**
- **Smuggler knows:** That's where the high-value cargo gets repackaged. Stay out unless it's your shift.
- **Detective wonders:** Restricted area, no manifest entries matching this space. What's in there?
**Part 3: Access Tier Mapping**
For each NPC role in each template, define the access tier per character:
| NPC Role | Smuggler Access | Detective Access |
|----------|----------------|-----------------|
| Hub shift supervisor | Insider (colleague) | Authority (subject of inquiry) |
| Bar owner | Peer (regular customer) | Outsider (new face, no rapport) |
| Smuggling ring leader | Insider (direct report) | Unknown (doesn't know this person exists yet) |
| Dockworker (flat NPC) | Insider (coworker) | Outsider (background figure) |
| Off-duty security officer | Peer (bar acquaintance) | Peer (professional courtesy) |
This table drives Layer 1 of the dialogue system (D-028): which lines each NPC will say to each character from minute one.
**Part 4: Divergence Escalation Curve**
The two experiences should start slightly different and diverge over time:
| Phase | Time Window | Smuggler Experience | Detective Experience | Divergence Level |
|-------|-------------|--------------------|--------------------|-----------------|
| **Arrival** | 0-5 min | Routine start. Greetings from colleagues. Comfortable. | Orientation. Reading the space. Nobody knows you. | Low — both just walking around |
| **Daily life** | 5-15 min | Work shifts, bar visits, social rhythms. The operation hums in the background. | Observation, casual conversations, building a mental map. Small inconsistencies accumulate. | Medium — same NPCs, different relationships |
| **Tension** | 15-25 min | Something is off. A colleague is nervous. New faces at the hub. The detective is asking questions. | Patterns emerge. Someone is lying. The district's rhythms have a hidden frequency. | High — both noticing the same disruption from opposite sides |
| **Crisis point** | 25-30 min | The operation is at risk. Loyalty demands action. | Evidence points somewhere specific. The case demands action. | Maximum — both heading toward the same event from opposite directions |
**Part 5: Authoring Checklist**
For every content piece (NPC profile, dialogue line, location description, monologue trigger), the author must answer:
1. Does the smuggler interpret this differently than the detective?
2. If yes, is the difference in *access* (they know different things), *interpretation* (they read the same thing differently), or *emotional weight* (the same information means more to one)?
3. If no, why not? (Some things are character-neutral — the bar serves drinks regardless. That's fine. But be deliberate about it.)
**Is this a solo document or workshop output?**
I should write the first draft. It's a narrative architecture document — the structure of how two perspectives coexist. But it needs input from:
- **Mellanie** — to validate that the voice profiles are writable and the checklist is usable
- **Gestalt** — to validate that the access tier mapping aligns with the dialogue system mechanics
- **Miri** — to validate that the station setting supports the divergence curve
Proposed workflow: I write a full draft, the team reviews in Round 2, Mellanie and I iterate until she can use it as her authoring bible.
---
### Question 2: How do you define "divergent starting knowledge" (#182)?
Not a list of facts. A list of facts is inert — it doesn't generate gameplay. Divergent starting knowledge is a **structural asymmetry in how the character understands the world.**
**Three dimensions of starting knowledge:**
**1. Factual knowledge — what you know is true**
| Category | Smuggler Knows | Detective Knows |
|----------|---------------|-----------------|
| **People** | Names, nicknames, personal details of all logistics hub workers + smuggling ring members. Bar regulars by face/habit. | Names and roles of institutional contacts. Case file subjects (partial, possibly outdated). District demographics from briefings. |
| **Places** | Layout of the hub including restricted areas. Hidden routes. Dead drops. Safe meeting spots. | Official district map. Registered businesses. Known gathering points from case history. |
| **Routines** | Shift schedules, break patterns, who drinks where, who avoids whom. The operation's timing. | Patrol routes. Shift change windows. Official facility hours. |
| **Relationships** | Who's sleeping with whom. Who owes whom. Who's reliable, who's cracking. The ring's hierarchy. | Chain of command. Informant network (if any). Known associates from prior cases. |
**2. Interpretive frameworks — how you read ambiguous information**
This is more important than facts. The smuggler and detective don't just know different things — they *think differently*.
- **Smuggler's framework:** "Is this a threat to the operation?" Every new person, every unusual event, every authority figure is evaluated through this lens. The smuggler's paranoia is functional — it's kept them alive.
- **Detective's framework:** "Does this fit the pattern?" Every behavior, every routine deviation, every nervous glance is evaluated against a mental model of normal-vs-suspicious. The detective's analytical distance is professional — it's how they build cases.
These frameworks should be encoded as **monologue biases**. When the smuggler sees an ambiguous situation, the monologue leans toward threat assessment. When the detective sees the same situation, the monologue leans toward pattern analysis. Same stimulus, different interpretation, different suggested actions.
**3. Emotional knowledge — what you feel about what you know**
The smuggler doesn't just know the ring leader — they have feelings about them. Loyalty, fear, respect, resentment. These emotional weights on relationships determine which NPCs the smuggler protects, which they resent, which they'd sacrifice.
The detective doesn't just know the case file — they have feelings about the assignment. Ambition, boredom, duty, skepticism. These emotional weights on the investigation determine how aggressively they pursue leads, whether they bend rules, whether they start to sympathize with the people they're investigating.
**Implementation proposal for #182:**
Divergent starting knowledge is delivered through three ECS components per character:
1. **KnowledgeInventory** — list of known facts, tagged by source (personal experience, case file, rumor). Each fact has a confidence level and emotional weight.
2. **InterpretiveFramework** — set of biases that weight monologue generation. The smuggler's framework flags authority-related observations; the detective's flags pattern-related observations.
3. **RelationshipMap** — starting relationships with all known NPCs, including emotional valence (trust, fear, loyalty, professional respect, suspicion) not just access tier.
These three components together produce the starting divergence. Facts make you know different things. Frameworks make you interpret the same things differently. Emotional weights make you care about different things.
---
## Layer 3: Station District Setting
### Question 2: How does the station's character feed into NPC motivations?
The honest truth is that a station district's economic and social pressures are the *engine* that generates NPC motivations. NPCs don't exist in isolation — they exist in an economic ecosystem that creates the conditions for both ordinary life and criminal enterprise.
**The motivational chain:**
```
Station Economics → Employment Pressure → Individual Desperation → Criminal Opportunity → Social Complicity
```
Let me make this concrete with a proposal for how the v0.1 station district generates NPC motivations:
**The district's economic reality:** This is a logistics hub — goods flow through. The legitimate economy provides steady but modest work. The cost of living on the station is slightly too high for comfort on a single logistics salary. This creates a permanent mild financial pressure on the working population.
**How this generates motivations:**
| NPC Type | Economic Pressure | Resulting Motivation | Smuggling Connection |
|----------|------------------|---------------------|---------------------|
| **Logistics worker (flat)** | Paycheck covers rent but not much else | Contentment axis: moderate-low. Wants stability, not risk. | Aware something happens at the hub after hours. Doesn't ask questions. |
| **Logistics worker (triangle)** | Partner's medical debt, child's school fees | Want: financial relief. Secret: knows about the smuggling, tempted to participate. | The smuggling ring is a lifeline they haven't taken yet. The triangle: should they? Their partner suspects something. |
| **Bar owner (triangle)** | Business is marginal. The after-hours crowd is what keeps the lights on. | Want: keep the bar viable. Secret: knows the bar is a meeting point for the ring. | Complicit through inaction. Doesn't ask what the back room is used for. The triangle: the bar owner's employee is getting curious. |
| **Ring member (entangled)** | Started as a logistics worker who said yes. Now in too deep. | Want: get out without getting caught. Secret: considering cooperation with authorities. | The detective's potential informant. The smuggler's potential betrayer. The cross-template triangle. |
| **Security officer (triangle)** | Underpaid. Sees things. Faces a choice every shift. | Want: do the right thing, or at least not the wrong thing. Tolerance: how much can they ignore? | The mundane triangle: the security officer, the logistics supervisor who schedules the off-hour shifts, and the bar owner who provides the alibi drinks. |
**The key insight:** Economic pressure doesn't just explain why smuggling exists — it explains why the *community* tolerates it. The bar owner looks the other way because the smugglers keep the bar profitable. The flat NPCs don't ask questions because they benefit from the economic activity without getting their hands dirty. The detective enters a community where everyone has a reason to not cooperate — not because they're villains, but because the smuggling economy is the district's immune system against poverty.
This is what makes the detective's job hard and the smuggler's moral position sympathetic. The station's economic character turns smuggling from a crime into a *community survival strategy*. That's the narrative engine.
**What Miri's setting document needs from this perspective:**
1. The economic squeeze — what makes legitimate life just hard enough to justify risk
2. The interdependencies — who benefits from the grey economy even without participating
3. The recent pressure point — what changed recently that's making the situation unstable (this becomes the storyteller's activation trigger)
---
## Layer 4: Content Pipeline & Authoring Format
Not directly asked, but I have a critical dependency on this layer.
**My concern:** The four dialogue layers (D-028) need to be expressible in whatever format Gestalt proposes. Specifically:
- **Access tier** must be a per-line tag, because the same NPC says different things to insiders vs. outsiders vs. authority figures. This is Layer 1 of dialogue and the primary dual-lens mechanism.
- **Relationship history** needs a way to reference prior interaction states. A line tagged `greeted_before:true` reads differently than `greeted_before:false`. This is Layer 2 and drives the feeling of continuity.
- **Trust tier** must gate disclosure content. The same NPC has surface/real/secret versions of the same topic. This is Layer 3 and the mechanism for progressive revelation.
- **Unprompted** lines need mood and situational context tags. An NPC who volunteers information is driven by their current emotional state + the current situation. This is Layer 4 and the mechanism for NPC initiative.
Whatever format Gestalt proposes, I need to verify that all four layers can be expressed as line-level metadata. If they can't, the content packs will be flat — just access-filtered greeting pools with no depth.
---
## Layer 5: Template Content (3 Social Sites)
### Question 2: How do you design the relationship web for 3 overlapping social sites?
The relationship web is the narrative infrastructure of the vertical slice. Without it, 15 NPCs are 15 independent actors. With it, they're a community — interconnected, mutually dependent, full of tensions that the player can discover and exploit.
**Design principles:**
1. **Every NPC has at least 2 relationships that matter** — one within their home template, one that connects to another template. No NPC is an island.
2. **Bridge NPCs connect templates** — some NPCs have roles in multiple social sites. These are the most important characters because they carry information (and tension) between worlds.
3. **The relationship web has layers** — surface (visible to everyone), working (visible to insiders), and hidden (visible only through investigation or trust).
**Proposed relationship web for v0.1 (15 NPCs across 3 templates):**
**Template 1: Logistics Hub (Workplace) — 5 NPCs**
| Role | Name Placeholder | Key Relationships |
|------|-----------------|-------------------|
| **Shift Supervisor** | NPC-A | Manages hub workers. Knows about the smuggling (looks away). Secret: taking a cut. |
| **Logistics Worker 1** | NPC-B | Smuggler's close colleague. Reliable ring member. The smuggler's anchor. |
| **Logistics Worker 2** | NPC-C | New hire. Curious. Asks questions they shouldn't. Triangle: B protects them, A wants them gone. |
| **Dock Inspector** | NPC-D | Legitimate authority. Bridge NPC: drinks at the bar after shifts. Secret: gambling debt makes them compromisable. |
| **Maintenance Tech** | NPC-E | Flat NPC. Fixes things, notices things, says nothing. Background presence that establishes normalcy. |
**Template 2: Bar (Social Venue) — 5 NPCs**
| Role | Name Placeholder | Key Relationships |
|------|-----------------|-------------------|
| **Bar Owner** | NPC-F | Knows everyone. Bridge NPC: supplies from the logistics hub. Complicit through willful ignorance. |
| **Regular (off-duty security)** | NPC-G | Bridge NPC: patrols the hub district during shifts, drinks at the bar after. Mundane triangle: F and G and D play cards — D owes G money, G pressures D, D considers compromising an inspection. |
| **Regular (teacher/family person)** | NPC-H | The most normal person in the district. Mundane triangle: H's partner works at the hub (NPC-B). H doesn't know what B does after hours. H represents what's at stake — ordinary life that smuggling protects and endangers. |
| **Bartender** | NPC-I | Flat NPC. Observant but discreet. Serves drinks, overhears everything, tells nothing. Source of ambient gossip if trust is built. |
| **Drifter/New Arrival** | NPC-J | Flat NPC but narratively loaded: new in the district, asking around for work. Could be innocent. Could be a rival operation's scout. Could be an undercover agent. The ambiguity is the point — the smuggler and detective read this person differently. |
**Template 3: Smuggling Ring (Criminal) — 5 NPCs**
| Role | Name Placeholder | Key Relationships |
|------|-----------------|-------------------|
| **Ring Leader** | NPC-K | The person the detective is ultimately looking for (without knowing it). Bridge NPC: legitimate business front at the bar. Public face is respectable. |
| **Courier** | NPC-L | Moves product. Bridge NPC: uses the logistics hub's infrastructure. Triangle with B and K: B arranges access, K gives orders, L takes the physical risk. |
| **Fence/Buyer** | NPC-M | External contact. Not from this district. Appears occasionally. The smuggler knows them; the detective has never seen them. |
| **Ring Member (wavering)** | NPC-N | The potential informant. Triangle with K and A: K demands loyalty, A applies pressure, N is cracking under the tolerance threshold. The detective's unknowing target. The smuggler's biggest worry. |
| **Lookout/Runner** | NPC-O | Flat NPC. Young, nervous, stationed at strategic positions. Visible to both characters — the smuggler knows why they're there, the detective reads them as loitering youths. |
**Bridge NPCs (connecting templates):**
| NPC | Home Template | Connected To | Bridge Function |
|-----|--------------|-------------|-----------------|
| **NPC-D** (Dock Inspector) | Hub | Bar | Professional life at hub, social life at bar. Information flows between worlds. |
| **NPC-G** (Security Officer) | Bar | Hub | Social at bar, authority at hub. Sees things in both contexts. |
| **NPC-K** (Ring Leader) | Ring | Bar | Criminal at ring, legitimate at bar. Public face conceals operation. |
| **NPC-L** (Courier) | Ring | Hub | Criminal at ring, logistics at hub. Physical movement connects sites. |
| **NPC-B** (Logistics Worker) | Hub | Ring | Day job at hub, ring member after hours. The smuggler's closest colleague. |
| **NPC-H's partner** | Bar | Hub | (Not a separate NPC — NPC-H references NPC-B's hub role.) |
The web has **6 bridge connections** across 3 templates, meaning information, tension, and consequences can propagate in multiple directions.
---
### Question 3: How many triangles per template? What do they look like concretely?
D-029 requires 2 per template minimum + 1 cross-template. For v0.1, I propose **7 triangles total**: 2 per template (6) + 1 cross-template.
**Intra-template triangles (6):**
**Hub Triangle 1 — The New Hire Problem (B-C-A)**
- **B** (loyal ring member) wants to protect **C** (curious new hire) from learning too much
- **A** (shift supervisor taking a cut) wants **C** removed before they see something
- **C** just wants to do their job but keeps noticing locked rooms and irregular schedules
- **Player relevance:** The smuggler has to choose between B's protective instinct and A's pragmatism. The detective notices C asking questions and wonders why B is so protective.
**Hub Triangle 2 — The Inspection Squeeze (A-D-K)**
- **A** (supervisor) needs inspections to go smoothly
- **D** (dock inspector) has a gambling debt and is being pressured
- **K** (ring leader, acting through intermediaries) is the source of the pressure
- **Player relevance:** The smuggler knows the inspection schedule is managed. The detective sees D's nervousness and smells corruption.
**Bar Triangle 1 — The Card Game Debt (D-G-F)**
- **D** (dock inspector) owes money from the weekly card game
- **G** (security officer) holds the debt and pushes for favors in return
- **F** (bar owner) facilitates the card games and profits from the arrangement
- **Player relevance:** Mundane triangle. No conspiracy connection. But the debt creates leverage that the smuggling ring exploits, and the detective might misread as conspiracy when it's just gambling. Red herring potential.
**Bar Triangle 2 — The Worried Partner (H-B-F)**
- **H** knows their partner **B** has been working late and spending more
- **H** confides in **F** (bar owner), who knows exactly why B is busy but won't say
- **F** reassures **H** while protecting the operation's secrecy
- **Player relevance:** The most emotionally loaded mundane triangle. H's worry is genuine. F's reassurance is a lie of omission. B is oblivious to the anxiety they're causing. The detective who earns H's trust might hear the first honest account of B's behavioral changes.
**Ring Triangle 1 — The Wavering Member (K-N-L)**
- **K** (ring leader) demands total loyalty from **N** (wavering member)
- **N** is considering cooperation with authorities — terrified of both sides
- **L** (courier) suspects N is unreliable and has told K as much
- **Player relevance:** The highest-stakes triangle. The smuggler knows N is shaky and must decide whether to support them or report them to K. The detective doesn't know N exists yet but will find them through investigation.
**Ring Triangle 2 — The Power Dynamic (K-A-B)**
- **K** (ring leader) gives orders through **A** (supervisor, the legitimate front)
- **A** resents taking orders but needs the money
- **B** (loyal to the smuggler/the team, not to K personally) would side against K if pushed
- **Player relevance:** Internal ring politics. The smuggler navigates this hierarchy daily. The detective, if they crack the ring, would exploit these fissures.
**Cross-template triangle (1):**
**The Big One — The Informant Question (N-D-G)**
- **N** (wavering ring member) is considering talking
- **D** (dock inspector) is compromised but might flip if pressured correctly
- **G** (security officer) has the institutional authority to act but doesn't know what they'd act on
- These three people, across all three templates, represent the three ways the ring could unravel: from inside (N betrays), from institutional corruption (D breaks), or from legitimate authority (G stumbles onto something)
- **Player relevance:** The smuggler wants to prevent all three. The detective, unknowingly, is pushing toward all three. The convergence of this triangle IS the crisis point of the vertical slice.
**Triangle distribution by entanglement:**
| Category | Triangles | D-029 Split |
|----------|-----------|-------------|
| Flat NPCs (no triangle involvement) | — | E, I, O = 3 NPCs (20%) |
| Mundane triangles (no conspiracy) | Card Game Debt, Worried Partner | 7 NPCs in mundane-only roles (~47%) |
| Entangled triangles (conspiracy-connected) | New Hire, Inspection, Wavering Member, Power Dynamic, Cross-template | 5 NPCs with conspiracy connection (~33%) |
This skews slightly higher on entanglement than the 30/50/20 target (D-029), but the v0.1 district is small and needs to prove the concept. In a full game, the ratio would normalize with many more flat and mundane NPCs. For the vertical slice, we need enough entanglement to create discoverable conspiracy threads.
---
## Layer 6: NPC Profiles & Dialogue
### Question 1: How deep does each NPC profile need to be?
Let me complicate this by separating what the *system* needs from what the *authors* need.
**What the system needs (ECS data):**
All 10 axes per D-024, populated as numeric values or enums. The system doesn't read backstory — it reads component data. This is the minimum: a fully populated NPC generation output.
**What the authors need (creative brief):**
The 10 axes are a skeleton. Mellanie can't write voice-consistent dialogue from a skeleton. She needs flesh.
**Proposed three-tier NPC profile depth:**
**Tier 1: Full profile (entangled NPCs — 5 NPCs: A, B, K, L, N)**
| Section | Contents | Length |
|---------|----------|--------|
| 10-axis data | All axes populated with values and brief justification | ~20 lines |
| Backstory paragraph | How they got here, what shaped them, what they're hiding | 3-5 sentences |
| Voice sample | 3-5 example lines in their voice, covering different moods | 3-5 lines |
| Dual-lens notes | How the smuggler sees them vs. how the detective sees them | 2-3 sentences per lens |
| Triangle role notes | Their function in each triangle they participate in, what pressures they face | 2-3 sentences per triangle |
| Secret | What they're hiding, from whom, and what would happen if it came out | 2-3 sentences |
Total per NPC: ~1 page. For 5 entangled NPCs: ~5 pages.
**Tier 2: Working profile (triangle NPCs, non-entangled — 7 NPCs: C, D, F, G, H, M, O)**
Wait — let me reconsider. O is flat. M is external. Let me re-sort.
Triangle-involved but not conspiracy-entangled: C, D, F, G, H = 5 NPCs.
| Section | Contents | Length |
|---------|----------|--------|
| 10-axis data | All axes populated | ~15 lines |
| Voice sample | 2-3 example lines | 2-3 lines |
| Dual-lens notes | Brief note on each character's perspective | 1-2 sentences per lens |
| Triangle role notes | Their function in their triangle(s) | 1-2 sentences |
Total per NPC: ~half page. For 5 triangle NPCs: ~2.5 pages.
**Tier 3: Sketch profile (flat NPCs — 5 NPCs: E, I, J, M, O)**
| Section | Contents | Length |
|---------|----------|--------|
| 10-axis data | Essential axes only (Want, Routine, Personality) | ~8 lines |
| Voice hint | 1 line that captures their energy | 1 line |
| Function note | Why they exist in the world, what role they serve for atmosphere | 1-2 sentences |
Total per NPC: ~quarter page. For 5 flat NPCs: ~1.25 pages.
**Grand total: ~8.75 pages of NPC profiles** for the entire v0.1 cast. This is a manageable authoring load. I'd write Tier 1 profiles (the narrative architecture). Mellanie takes them and writes the voice kits and dialogue. Miri validates cultural/setting consistency.
---
## Layer 7: Monologue & Observation Text
### Question 3: What are the "mirror moments"?
Mirror moments are the places where the monologue hints — without breaking character — that this situation looks completely different from another perspective. They're not fourth-wall breaks. They're moments where the character's *own thoughts* inadvertently reveal the existence of an alternate interpretation.
**The principle:** A mirror moment occurs when the character's certainty about something is, from the other character's perspective, obviously wrong — and the monologue's confidence IS the tell.
**Concrete mirror moments for v0.1:**
**Mirror 1: The Smuggler's Comfort**
- **Smuggler monologue:** *"Same shift, same faces. At least I know where I stand here."*
- **What the detective would see:** A logistics hub where "same faces" means a closed social network resistant to outside inquiry. The comfort IS the suspicion.
- **Design note:** This plays in the first 5 minutes. It establishes the smuggler's world as normal and inviting. Only on the detective's playthrough does the player realize that "knowing where you stand" is exactly what makes the smuggling possible.
**Mirror 2: The Detective's Read**
- **Detective monologue:** *"The dock inspector keeps glancing at the supervisor's office. Anxiety? Guilt? Worth noting."*
- **What the smuggler would know:** D owes money from the card game and A has been riding them about inspection schedules. It's not guilt — it's stress about completely mundane workplace pressure. Or is it? The smuggler knows the mundane explanation but the detective's suspicion isn't *wrong* — D IS compromised, just not in the way the detective thinks.
- **Design note:** This plays mid-session. It shows the detective building a theory from observation — a theory that's simultaneously correct and incorrect.
**Mirror 3: The Worried Partner**
- **Smuggler monologue (at the bar):** *"H looks tired. I should probably not mention seeing B at the hub so late — that's B's business."*
- **Detective monologue (at the bar):** *"Spouse of a hub worker. Looks stressed. Might know something about after-hours activity."*
- **Design note:** Same person, same moment. The smuggler sees a friend they're protecting from the truth. The detective sees a potential source. The player who's played both characters recognizes the tragic irony — H is caught between two people who both think they're acting in H's interest.
**Mirror 4: The Empty Corridor**
- **Smuggler monologue (passing a corridor late at night):** *"Quiet tonight. Good. Nobody using the south access."*
- **Detective monologue (same corridor, same time):** *"This corridor should see foot traffic — logistics staff use it for the night shift changeover. Why is it empty?"*
- **Design note:** The smuggler's relief IS the detective's clue. The corridor is empty because the smuggling operation rerouted traffic. The smuggler knows this and is grateful. The detective doesn't know but senses something is wrong.
**Mirror 5: The New Face**
- **Smuggler monologue (seeing NPC-J the drifter):** *"New face at the bar. Don't recognize them. Probably nothing, but... keep an eye out."*
- **Detective monologue (seeing NPC-J):** *"New arrival in the district. Looking for work, they say. Could be useful — fresh perspective, no local loyalties yet."*
- **Design note:** The smuggler sees a potential threat. The detective sees a potential asset. Both are evaluating the same stranger through opposing frameworks. On replay, the player recognizes the irony — neither is wrong, and both reactions reveal their character.
**How mirror moments are authored:**
Mirror moments are NOT scripted paired events. They're **monologue lines tagged to the same observation trigger** but filtered through different character frameworks. The system requirements:
1. An observation trigger (NPC behavior, environmental state, routine deviation)
2. Two monologue line variants tagged to the same trigger, one per character
3. The lines must be independently coherent — each works on its own without the other
4. The mirror quality only emerges on replay, when the player remembers the other character's reaction
**Authoring volume estimate:** I'd target **10-15 mirror moments** for the v0.1 vertical slice. Not every observation needs a mirror — that would feel forced. But 10-15 well-placed mirrors across 30 minutes means the replay playthrough produces a revelation roughly every 2-3 minutes. That's the rhythm of "oh, THAT'S what that was about" that makes the second playthrough compelling.
---
## Layer 8: UI Text & Environmental Content
Not directly asked, but I have a narrative-critical input.
**The neural insert must reflect character identity.** If both characters see the same HUD, the diegetic fiction breaks. The smuggler's insert might show:
- Known associate locations (social map)
- Delivery schedules and routes
- Informal warnings ("avoid sector 7 — patrol activity")
The detective's insert might show:
- Case file markers (suspect locations, evidence flags)
- Institutional alerts
- Formal status reports ("Subject B: routine deviation detected")
This is a **dual-lens question** — the insert IS the character's window into the world. Even in v0.1 with minimal HUD, the insert text should feel different per character.
---
## Layer 9: Audio Direction
Not my domain, but one narrative note: **silence is a monologue trigger.** The three-range sound model (D-018) means that close range provides rich audio. But when the player is alone in a quiet space, the *absence* of sound should trigger monologue. The character thinks when the world is quiet. This means the monologue system and the sound system need to coordinate — monologue fires more frequently when the audio environment is sparse, and less frequently when it's rich.
This has a dual-lens application: the smuggler alone in a quiet corridor thinks *"Too quiet. Something's off."* The detective alone in the same corridor thinks *"Good. Time to think."* Same silence, different interpretation.
---
## Cross-Layer Dependencies: The Seams That Matter
The workshop's layer structure is useful for organizing work, but the content gaps I'm most worried about live between layers:
| Dependency | From Layer | To Layer | Why It Matters |
|-----------|-----------|---------|---------------|
| Dual Lens Guide must precede all content | 2 | 4, 5, 6, 7 | Every content author needs the guide before writing. Without it, content will be single-perspective and need rewriting. |
| Access tier mapping drives dialogue format | 2 | 4 | The authoring format must support per-character access tiers on every line. If the format can't express "this line is for insiders only," the dual-lens system collapses. |
| Station economics drive NPC motivations | 3 | 5, 6 | NPC profiles can't be written without understanding the economic pressures that shape their choices. Miri's setting document feeds Paula's relationship web feeds Mellanie's dialogue. |
| Relationship web drives content packs | 5 | 5 (internal) | Content packs for each template can't be written independently — the bridge NPCs and cross-template triangles create dependencies between all three packs. |
| Mirror moments require authoring format | 7 | 4 | The format must support tagging the same observation trigger with character-specific monologue variants. If it can't, mirror moments are impossible to author systematically. |
| NPC profiles drive voice kits | 6 | 5 | Mellanie writes voice kits from NPC profiles. Profiles must exist before dialogue. |
**Proposed dependency chain for content work:**
```
1. Station setting document (Miri) — Layer 3
2. Dual Lens Authoring Guide (Paula) — Layer 2
3. Relationship web + triangles (Paula) — Layer 5
4. NPC profiles: Tier 1 entangled (Paula) + Tier 2/3 (Paula+Mellanie) — Layer 6
5. Authoring format locked (Gestalt) — Layer 4
6. Content packs: voice kits, situation scripts, monologue lines (Mellanie) — Layer 5 + 7
7. Mirror moment pass (Paula reviews Mellanie's monologue for mirror opportunities) — Layer 7
```
Steps 1-4 are narrative architecture. Steps 5-7 are content production. The architecture must be done before production starts, or we'll be rewriting content to fit a structure that didn't exist when it was written.
---
## Summary: What I Need To Deliver
| Deliverable | Layer | Depends On | Estimated Effort |
|-------------|-------|-----------|-----------------|
| Dual Lens Authoring Guide (full draft) | 2 | Nothing — can start now | 2-3 days |
| Divergent starting knowledge specification | 2 | Setting document (Miri) | 1-2 days |
| Relationship web for 15 NPCs | 5 | Setting document (Miri) | 1-2 days |
| Triangle definitions (7 triangles) | 5 | Relationship web | 1 day |
| NPC profiles: Tier 1 (5 entangled) | 6 | Relationship web + triangles | 2-3 days |
| NPC profiles: Tier 2 (5 triangle) | 6 | Tier 1 profiles | 1-2 days |
| NPC profiles: Tier 3 (5 flat) | 6 | Setting document | 1 day |
| Mirror moment design (10-15 moments) | 7 | All NPC profiles + Dual Lens Guide | 1-2 days |
| Review pass on Mellanie's content packs | 5+7 | Mellanie's draft packs | Ongoing |
The Dual Lens Guide is my first and most critical deliverable. Everything downstream depends on it.
@@ -0,0 +1,568 @@
# Round 2 Workshop Response: Araminta (Visual Design Synthesis)
**Agent:** Araminta (Visual Designer)
**Date:** 2026-02-11
**Round:** 2 (Synthesis)
**Inputs:** All 6 Round 1 outputs + project lead direction
---
## Project Lead Directives Acknowledged
1. **Color = relationship to player: APPROVED.** This is now the confirmed v0.1 color model. No more hedging.
2. **Audio in v0.1 scope (6-8 files).** Visual sound indicators are complementary, not the sole mechanism. My indicator design can be subtler now -- it confirms audio, not replaces it.
3. **THE FRIEND -- one per character, production-level complex.** Visual implications addressed in section 6.
4. **Wiki structure with full taxonomy -- non-negotiable.** Visual asset taxonomy included in section 7.
5. **Sova Transit District / Krenn System is concrete.** All visual proposals now grounded in Miri's Sova setting.
---
## What I Learned from Round 1 (All Six Responses)
Three things crystallized:
1. **Text carries the game.** Mellanie, Paula, and Miri all confirmed what D-014 and D-016 implied: at v0.1 fidelity, written content does 80%+ of atmosphere and information delivery. My visual design must *support* text, not compete with it. Every pixel I spec is either making text more readable, making game state more scannable, or getting out of the way.
2. **The insert is character-specific.** Paula proposed that the smuggler's and detective's inserts show different information categories -- social map vs. analytical overlay. Miri confirmed this with setting logic: the smuggler has a baseline lattice (less data), the detective has an augmented lattice (more data, institutional feeds). This changes my insert wireframe from "one HUD, two characters" to "one HUD framework, two information profiles."
3. **Spatial design is load-bearing.** Paula's relationship web (15 NPCs, 7 triangles, 6 bridge connections) and Gestalt's spatial requirements (chokepoints, public/private gradients, observation positions) make spatial layouts the most important visual deliverable. Room shapes serve sightline gameplay. Triangle dynamics need specific observation positions. These inputs make my spatial layouts functional, not decorative.
---
## 1. Missing Tickets for Visual/Art Direction Work
After reading all Round 1 outputs and cross-referencing the ticket system, here are the visual tickets that should exist:
### Critical (blocks other work)
| Ticket Title | Priority | Depends On | Blocks | Rationale |
|---|---|---|---|---|
| **v0.1 Visual Grammar Document** | Critical | Workshop conclusion | All visual implementation, spatial layouts, entity rendering | Root dependency. Codifies color palette, entity sizing, label rules, UI layers, fog rendering. One page. Everything visual hangs off this. |
| **Entity Color System Spec -- Relationship-to-Player Mapping** | Critical | Visual Grammar | NPC rendering, fog rendering, client renderer | The approved color model needs a formal spec: which relationship states map to which colors, how transitions animate, edge cases (NPC relationship changes mid-observation). |
### High Priority
| Ticket Title | Priority | Depends On | Blocks | Rationale |
|---|---|---|---|---|
| **Spatial Layout: Sova Logistics Hub ("The Terminal")** | High | Visual Grammar, Miri's setting | Content pack #190, sightline implementation | Tile-level floor plan with sightline analysis. Miri's Round 1 gives me the zones. I can now design concretely. |
| **Spatial Layout: Sova Bar ("The Last Shift")** | High | Visual Grammar, Miri's setting | Content pack #191, sightline implementation | Irregular layout with privacy pockets, corner booth as key location. |
| **Spatial Layout: Sova Transition Corridors + Smuggling Spaces** | High | Visual Grammar, Miri's setting | Content pack #192, sightline implementation | Maintenance corridors, repurposed storage, hidden spaces within the 40-year-old station structure. |
| **Insert/HUD Wireframe and Spec** | High | Visual Grammar | Insert implementation, UI rendering | The lattice overlay design. Includes dual-character variants (smuggler's social map vs. detective's case file overlay). |
| **Monologue Display System Visual Spec** | High | Visual Grammar | Monologue renderer, text system | Typography, positioning, fade animation, stacking rules, character voice differentiation. Mellanie's 900+ lines need a rendering pipeline. |
| **Text Display Hierarchy Spec** | High | Visual Grammar | All text rendering | How dialogue, monologue, observation, overheard conversation, and environmental text each render distinctly. Four pipelines, four visual treatments. |
| **Sound Indicator Visual Design** | High | Visual Grammar, audio scope | Medium-range sound system | Fog-edge pulse indicators. Complementary to audio, not replacement. |
| **THE FRIEND -- Visual Treatment Spec** | High | NPC profiles (Paula), Visual Grammar | THE FRIEND NPC rendering | Production-level visual differentiation for one NPC per character. See section 6. |
### Medium Priority
| Ticket Title | Priority | Depends On | Blocks | Rationale |
|---|---|---|---|---|
| **Visual Asset Taxonomy (Wiki Structure)** | Medium | Visual Grammar | Future asset pipeline, wiki | Directory structure, naming conventions, category definitions. Future-ready per project lead directive. |
| **Fog Rendering Visual Spec** | Medium | Visual Grammar | Fog system implementation | Four-state rendering (visible, fog-edge, hidden, remembered). |
| **Environmental Text Visual Standards** | Medium | Visual Grammar, Miri's setting | Environmental text rendering | How signage, terminals, news tickers render in-world. Bilingual treatment per Miri. |
| **Signature Visual Element -- Span Gate Glow** | Medium | Miri's setting | First-impression visual | Ozzie's "one thing that says space station." See section 2. |
**Total new tickets proposed: 13.** 2 critical, 8 high, 4 medium. This is the complete visual work scope for v0.1.
---
## 2. Refined v0.1 Art Direction Proposal
Round 1 proposed "readable information design, atmosphere through text and spatial composition." Round 2 refines this with Miri's Sova setting and Ozzie's mood requirements.
### The Visual Identity of Sova Transit District
Miri's setting brief tells me exactly what this place looks like: mid-Reach, 40 years old, prefab modular construction modified over decades. Institutional corridors near the gate terminal transitioning to older, warmer spaces toward the residential boundary. "Functional prosperity" -- not dystopian, not utopian. A working port.
**This translates to three visual zones with distinct palettes:**
#### Zone 1: Gate Terminal / Logistics Hub ("The Terminal")
The institutional face of Sova. Clean, regulated, functional.
| Element | Color | Hex | Rationale |
|---|---|---|---|
| Floor | Cool grey-navy | `#1e1e32` | Institutional flooring. Blue-tinted. |
| Walls | Cool slate | `#2e2e48` | Clean, maintained surfaces. |
| Lighting tint | Cool white | `#d8e0f0` at 15% overlay | Fluorescent institutional lighting. Bright, slightly harsh. |
| Equipment/furniture | Darker grey | `#222233` | Grav-lifts, terminals, workstations. Functional. |
| Restricted areas | Slightly darker floor | `#1a1a2e` | Subtle but perceptible. Private spaces are darker. |
#### Zone 2: Bar District / "The Last Shift"
The social heart. Warmer, older construction, personality.
| Element | Color | Hex | Rationale |
|---|---|---|---|
| Floor | Warm dark | `#221e28` | Older materials. Warmer tones. |
| Walls | Warm grey | `#342e38` | Aged, repaired, character. |
| Lighting tint | Amber-warm | `#e8c070` at 10% overlay | Cheaper, warmer fixtures. Inviting. |
| Bar counter/furniture | Dark warm tone | `#2a2018` | Solid, well-worn. |
| Corner booth | Slightly darker | `#1e1a18` | The semi-private space. Visually recessed. |
#### Zone 3: Corridors / Maintenance / Smuggling Spaces
The in-between. Older construction, poorer lighting, architectural secrets.
| Element | Color | Hex | Rationale |
|---|---|---|---|
| Floor | Neutral dark | `#18161e` | Transitional. Neither warm nor cool. |
| Walls | Varied | Mixed old/new sections | 40 years of modifications visible. Different wall tones = different construction eras. |
| Lighting tint | Dim, irregular | `#a0a0b0` at 8% overlay | Maintenance-level lighting. Gaps and shadows. |
| Hidden spaces | Near-black | `#12121a` | Sealed sections reopened, gaps between walls. Barely lit. |
**Transition gradient:** Walking from the logistics hub to the bar, the palette warms. Walking into a maintenance corridor, it goes flat and dark. No art needed -- just tile color variation. The player may not consciously notice but will *feel* the shift.
### Confirmed Entity Color Palette (Relationship-to-Player)
Project lead approved. Locked.
| Relationship State | Color | Hex | When |
|---|---|---|---|
| **Unknown/Neutral** | Cool teal | `#4a9ebb` | Default for NPCs the character hasn't assessed. |
| **Known/Friendly** | Soft green | `#6bc9a6` | People the character knows and trusts. |
| **Person of Interest** | Warm amber | `#e8c547` | Monologue or case file has flagged something. |
| **Hostile/Dangerous** | Muted red | `#d45d5d` | Character KNOWS there's danger. Subjective, not omniscient. |
| **Static objects** | Muted grey | `#8b8ba0` | Furniture, equipment, environmental elements. |
| **Player character** | Bright marker | `#e0e8ff` (detective) / `#e8e0d0` (smuggler) | Subtle warmth/coolness difference per character. |
**Key principle unchanged:** Red means danger TO YOUR CHARACTER, not danger in the abstract. The detective might see that same NPC as amber (flagged in case file) while the smuggler sees green (trusted colleague). Same NPC, different color, because asymmetric information drives the palette.
### Ozzie's Signature Element: The Span Gate Glow
Ozzie asked for "one thing that says space station." Miri's setting gives the answer: the span gate.
The span gate terminal sits at the district's edge. Its effects should be visible from the player's starting position.
**Proposal: The span gate glow.** A subtle, rhythmic light source visible through a viewport or structural gap near the starting area. Not dramatic sci-fi blue-plasma. A warm, deep amber-orange luminance that pulses with transit cycles. Miri says the span gate produces "a deep, subsonic vibration" -- visually, this translates to a gentle, rhythmic luminance shift. When the confirmed audio system plays the span gate hum, the visual pulse synchronizes.
Implementation cost: one animated light source with a viewport tile. It grounds the player in "space station near an active gate" within the first 5 seconds. It's also mechanically useful later -- changes in glow pattern (maintenance shutdown, increased traffic) become visual information.
### Character-Specific Insert Overlays
Paula and Miri both established the narrative logic: the smuggler has a baseline lattice, the detective has augmented. Ozzie wants the insert labels to reflect character perspective.
| Insert Element | Smuggler | Detective |
|---|---|---|
| **Tint** | `#3d7aaf` at 30% (consumer-grade) | `#3d7aaf` at 40% (institutional-grade, slightly denser) |
| **POI markers** | Social contacts as dots (color = relationship state), favorite spots as circles | Persons of interest as amber diamonds, evidence locations as squares, surveillance zones as faint boundary lines |
| **Labels** | Casual: "The Last Shift", "Kael's usual spot" | Institutional: "Licensed establishment - District 7", "POI: K. Davan" |
| **Notifications** | Informal: "Msg from Kael", "Drop point updated" | Commission format: "Case file update: Subject Davan", "Commission advisory" |
| **Grid overlay** | None (consumer-grade, no extras) | Faint 1-pixel grid at 3% opacity (analytical feel) |
**Implementation:** One insert system with a `lattice_profile` parameter. Stig builds one framework, not two. Character selection loads the appropriate profile.
---
## 3. Placeholder Art Pipeline Priorities
The question isn't "what art do we need" -- it's "in what order do we build the visual layers so each step is playable?"
### Four Phases
**Phase 1: Structural (blocks gameplay testing)**
- Tile-level floor plans for all three social sites
- Wall/door/furniture rectangles with correct proportions
- Fog rendering (visible/fog-edge/hidden/remembered)
- Entity rectangles with relationship colors
- Basic labels (NPC names, room names)
**Phase 2: Information (blocks content testing)**
- Insert/HUD overlay (minimap, POI markers, time display)
- Monologue text display (positioned, styled, animated)
- Dialogue panel (NPC name header, text area)
- Sound indicators at fog edge (pulse icons, complementary to audio)
- Environmental text (signs, terminals)
- News ticker display
**Phase 3: Atmosphere (blocks experience testing)**
- Zone-specific color palettes applied (three zones above)
- Lighting variation between locations
- Span gate signature visual element
- Character-specific insert variants
- Remembered-state fog (desaturated ghost)
- THE FRIEND visual treatment (color transition)
**Phase 4: Polish (pre-release quality)**
- Sprite replacements for entity rectangles (if v0.1 scope allows)
- Animated transitions (door opening, NPC movement smoothing)
- Particle effects (span gate glow, fog-edge shimmer)
- Visual tells for NPC behavioral states
- Full environmental detail (wall texture variation, construction-era differences)
**For v0.1 vertical slice: Phases 1-3 are required. Phase 4 is stretch.**
### Total Art Asset Count for v0.1
Approximately **zero image files.** Everything is procedural: colored rectangles, styled text, shader overlays. The "art pipeline" is a color configuration file plus spatial layout data.
This is deliberate. Zero image files means no asset loading latency, no sprite inconsistency, and no art-replacement migration when we move to real sprites. Stig and Dudley can build the full renderer without waiting on visual assets from me. My primary output is **documented specifications**, not image files.
---
## 4. Dependencies Between Visual Work and Content Work
### Content Teams Need from Me:
| Content Team | What They Need | My Deliverable | Urgency |
|---|---|---|---|
| **Mellanie** | Display constraints -- character limits per text type, line count, wrap rules | Text Display Hierarchy Spec + Monologue Spec | High -- she's writing to unknown constraints |
| **Mellanie** | Environmental text visual format | Environmental Text Visual Standards | Medium -- can write provisionally |
| **Paula** | Spatial layouts to validate sightline assumptions | Spatial Layouts (3 sites) | High -- her NPC positions must work spatially |
| **Miri** | Visual tone confirmation | Visual Grammar | Medium -- confirmation, not blocker |
### I Need from Content Teams:
| From | What I Need | Status |
|---|---|---|
| **Miri** | Station district setting brief | **DONE** (Round 1 Sova brief) |
| **Paula** | NPC relationship web | **DONE** (Round 1, 15 NPCs, 7 triangles) |
| **Paula** | NPC routine phases (who is where by time of day) | Pending -- needed for spatial layout NPC anchors |
| **Gestalt** | Display context tag confirmation | Pending -- Mellanie proposed, Gestalt validates |
**Key finding: I'm mostly unblocked.** The Visual Grammar has no upstream dependencies. Spatial layouts can begin with Miri's zones + Paula's relationship web. Insert wireframe has all its inputs.
### The Critical Circular Dependency
Spatial layouts need Paula's relationship web -> Content packs need spatial layouts -> Paula's relationship web needs content understanding.
**Resolution: Parallel drafting with one sync pass.**
1. I draft spatial layouts from Miri's zones + Gestalt's spatial requirements
2. Paula reviews layouts against her relationship web -- flags adjustments
3. I adjust. One round. Layouts lock for content authoring.
---
## 5. How Spatial Layout Serves Paula's Relationship Web and Gestalt's Access Tier Model
This is the most important synthesis. Paula's triangles and Gestalt's access tiers are abstract. My spatial layouts make them concrete.
### Principle: Space Creates Social Information
Physical arrangement determines:
- Who can observe whom (sightlines = observation opportunities)
- Who can talk privately (enclosed spaces = trust-gated conversations)
- Who crosses paths (chokepoints = accidental encounters)
- Who can be followed (corridors = approach vectors)
### Logistics Hub -- Serving the Relationship Web
Paula's hub NPCs: Shift Supervisor (A), Workers (B, C), Dock Inspector (D), Maintenance Tech (E).
Paula's hub triangles: New Hire Problem (B-C-A), Inspection Squeeze (A-D-K).
Gestalt's requirements: publicly accessible area with hidden back section, restricted-access area, chokepoint.
```
+------------------------------------------------------------------+
| SPAN GATE TERMINAL (visible glow) |
+------------------------------------------------------------------+
| |
| [Scanner Bay 1] [Scanner Bay 2] [Scanner Bay 3] |
| |
| +---------+ +---------+ +---------+ |
| | staging | | staging | | staging | |
| +---------+ +---------+ +---------+ |
| |
| === MAIN CORRIDOR (chokepoint - everyone passes through) ====== |
| |
| +----------------+ +----------+ +-----+ +--------+ |
| | Manifest | | Break | | WC | | Lockers| |
| | Processing | | Room | | | | | |
| | (terminals) | | (social) | +-----+ +--------+ |
| +----------------+ +----------+ |
| |
| +-------------+ +-------------------+ |
| | Supervisor | | Restricted Storage| <-- smuggling ops |
| | Office | | (key access) | |
| | (window) | | | |
| +-------------+ +-------------------+ |
+------------------------------------------------------------------+
```
**How this serves the triangles:**
- **New Hire Problem (B-C-A):** C works in manifest processing (open, visible). B observes C from staging. A watches from the office window (sightline into main floor, sound blocked). C's curiosity about restricted storage is observable -- other NPCs see C lingering near the locked door.
- **Inspection Squeeze (A-D-K):** D visits scanner bays. A watches from office window. The main corridor is the chokepoint -- D must pass through it, and the break room has a sightline to corridor traffic.
**How this serves access tiers:**
- **Public areas** (scanner bays, main corridor, manifest processing): Wide, well-lit, high visibility. Detective observes freely. `public` + `authority` dialogue.
- **Semi-private areas** (break room, lockers): Partially enclosed. Smuggler gets `insider` dialogue. Detective draws attention if lingering.
- **Private areas** (supervisor office, restricted storage): Enclosed, door access, blocked sightlines. The smuggler knows what's behind the restricted door. The detective can only observe from outside.
### Bar -- Serving the Relationship Web
Paula's bar NPCs: Bar Owner (F), Security Officer (G), Teacher/Family Person (H), Bartender (I), Drifter (J).
Paula's bar triangles: Card Game Debt (D-G-F), Worried Partner (H-B-F).
```
+----------------------------------------------------+
| |
| +---+ +---+ +---+ +-----------+ |
| | T | | T | | T | | Corner | |
| +---+ +---+ +---+ | Booth | <-- key |
| | (semi- | observation
| +==========================| private) | position |
| | BAR COUNTER +-----------+ |
| | (high visibility) |
| +========================== |
| |
| +---+ +---+ +---+ |
| | T | | T | | T | |
| +---+ +---+ +---+ |
| |
| +------------------+ +---------+ |
| | News Ticker | | Back | <-- alley exit |
| | Display | | Room | |
| +------------------+ +---------+ |
| |
| [ENTRANCE] |
+----------------------------------------------------+
```
**How this serves the triangles:**
- **Card Game Debt (D-G-F):** D and G at a table visible from the bar counter. F observes from behind the bar. The corner booth covers the card table -- observation position for both characters.
- **Worried Partner (H-B-F):** H sits at the bar counter (visible). Where B sits signals relationship state -- with H (normal) or at a separate table (avoidance, noteworthy). F observes from behind the bar.
- **The corner booth** is the most loaded piece of furniture in the game. From here: the bar counter (H, regulars), the card table area (D, G), the entrance (who comes and goes), and the back room door are all visible. For the smuggler: where ring contacts meet. For the detective: the surveillance perch. Same seat, different purpose.
### Smuggling Spaces -- Serving the Access Tier Model
NOT a separate building. The ring operates in: restricted storage (hub), maintenance corridors, dead-drop locations in transition areas.
**Design principle: The ring is invisible.** Meeting points have legitimate mundane purposes. Their ring function is only apparent if you know what to look for. The smuggler navigates naturally. The detective must DISCOVER these spaces -- following an NPC, finding corridors not on official maps, noticing recently-used maintenance hatches.
**The spatial layout encodes information asymmetry in the map itself.** Same physical space, different player understanding of it.
---
## 6. Visual Treatment of THE FRIEND
Ozzie's Round 1 makes the case: THE FRIEND is designed to deliver D-027 success criterion #3 ("player names an NPC they felt conflicted about"). Project lead confirms: one per character, production-level complex.
### Should THE FRIEND Look Different?
**Yes, but through EARNED visual detail, not special status marking.**
### The Visual Progression
**Phase 1: Before Contradiction (minutes 1-15)**
THE FRIEND is visually identical to other friendly NPCs. Same green rectangle, same label format. What makes them distinct is NOT rendering:
- **Label detail:** Their name shows from the start (not "Worker" or "?"). The character KNOWS this person.
- **Monologue frequency:** The character's thoughts reference THE FRIEND more often. Text creates attachment, not visuals.
- **Spatial proximity:** THE FRIEND's routine keeps them near the player. They're visually present more often.
This matters: THE FRIEND should NOT look special at first. If they look different, the player knows to pay attention. The point is natural attachment, then the contradiction hits.
**Phase 2: After Contradiction Discovery (mid-session)**
When the player observes THE FRIEND's contradictory behavior:
1. **Color shift:** Entity color transitions from green (`#6bc9a6`) to amber (`#e8c547`). Smooth 0.5s fade. The relationship-to-player color system working as designed -- the character now has QUESTIONS.
2. **Observation marker:** The eye icon appears alongside the monologue about the contradiction. Same icon used for all observations, but applied to someone the player trusted.
**The moment the rectangle shifts from green to amber IS THE FRIEND's visual moment.** It should be the first relationship color change in the session. If it's the FIRST color shift the player sees, they'll feel it -- because until now, colors have been static. The system proving it's dynamic ON a character the player cares about is the visual punch.
**Phase 3: Production-Level Treatment (planned, partially v0.1)**
When we move beyond boxes-with-labels:
- **Unique sprite.** Not dramatically different -- recognizably distinct. Where flat NPCs share sprite templates, THE FRIEND gets unique proportions, posture, one identifying accessory.
- **Behavioral animation states.** Minimum two: their "normal" state and their "hiding something" state.
- **Memory echo.** In the "remembered" fog state, THE FRIEND's ghost lingers longer. Their desaturated outline fades last. Subliminal signal that the character can't stop thinking about them.
### v0.1 Production Budget for THE FRIEND
- **Entity rendering:** Identical to other NPCs (colored rectangle, name label). No special rendering.
- **Color behavior:** Standard relationship color system, but designed so this NPC is MORE LIKELY to transition mid-session. The color spec must handle smooth transitions.
- **Writing investment:** The visual spec for THE FRIEND is actually a writing spec -- ensure Mellanie has enough monologue lines to create attachment before the contradiction.
**The visual treatment of THE FRIEND is mostly about what we DON'T do.** We don't mark them as special. We let writing and routines create attachment. Then the standard color-shift delivers the punch.
---
## 7. Visual Asset Taxonomy (Wiki Structure)
Project lead: full taxonomy, future-ready, non-negotiable.
```
assets/
visual/
style-guide/
v0.1-visual-grammar.md # Root document
color-palette.md # All color definitions + usage rules
entity-rendering-rules.md # Sizing, labels, color mapping
fog-rendering-spec.md # Four-state visibility
typography.md # Font choices, text hierarchy
ui/
insert/
hud-wireframe.md # Insert overlay layout
smuggler-variant.md # Smuggler lattice profile
detective-variant.md # Detective lattice profile
poi-markers.md # POI icon definitions
monologue/
display-spec.md # Typography, animation, stacking
character-variants.md # Per-character text style
dialogue/
panel-spec.md # Dialogue UI layout
name-header-rules.md # NPC name + relationship color
environmental-text/
signage-styles.md # In-world text rendering
terminal-screens.md # Interactive screen format
news-ticker.md # Ticker display format
sound-indicators/
fog-edge-pulse.md # Visual sound indicator spec
close-range.md # LOS sound indicators
insert-alerts.md # Long-range notification style
spatial/
sova-logistics-hub/
floor-plan.md # Tile-level layout
sightline-analysis.md # Observation positions, blind spots
sound-propagation.md # Thin/thick walls, bleed zones
npc-positions.md # Routine phase positions
approach-vectors.md # Player entry + first impressions
sova-bar/
floor-plan.md
sightline-analysis.md
sound-propagation.md
npc-positions.md
approach-vectors.md
sova-smuggling-spaces/
floor-plan.md
sightline-analysis.md
sound-propagation.md
npc-positions.md
approach-vectors.md
corridors-transitions/
district-connectivity.md # How zones connect
chokepoint-analysis.md # Cross-template encounter points
entities/
npc/
relationship-color-spec.md # Color mapping + transitions
label-rules.md # Name/role/unknown display rules
the-friend-treatment.md # Production-level NPC visual spec
flat-npc-templates.md # Shared visual templates
objects/
furniture.md # Sizing, color, interaction markers
doors.md # Open/closed/locked states
terminals.md # Interactive object visual
environment/
span-gate-glow.md # Signature visual element
lighting-zones.md # Per-zone lighting spec
construction-eras.md # Wall/floor variation by age
sprites/ # FUTURE: when we move beyond boxes
characters/
objects/
tiles/
effects/
```
Every folder exists even if files are stubs. New locations slot into `spatial/` with the same structure. Sprites slot into `sprites/` following entity definitions already established. This scales to full game without reorganization.
---
## 8. Complete Dependency Chain (All Teams)
```
PHASE 0: WORKSHOP OUTPUT (we are here)
|
v
PHASE 1: FOUNDATION (parallel, no cross-dependencies)
|
|-- [Araminta] v0.1 Visual Grammar Document
|-- [Miri] Finalize Sova Setting Brief (Round 1 is nearly complete)
|-- [Paula] Dual Lens Authoring Guide (draft)
|
v
PHASE 2: SPATIAL + CHARACTER (mostly parallel, one sync point)
|
|-- [Araminta] Spatial layouts (3 sites)
| depends on: Visual Grammar + Miri's setting
| |
| +--- SYNC POINT: Paula reviews against relationship web
| | (one feedback round, then layouts lock)
|
|-- [Araminta] Insert/HUD wireframe (parallel)
|-- [Araminta] Monologue display spec (parallel)
|-- [Araminta] Sound indicator design (parallel)
|-- [Paula] Relationship web + NPC profiles
|-- [Mellanie] Voice kits + monologue starters
|
v
PHASE 3: CONTENT PRODUCTION
|
|-- [Mellanie] Content packs (#190-192)
| depends on: Spatial layouts (locked), NPC profiles, format
|-- [Araminta] Environmental text visual placement
|-- [Araminta] THE FRIEND visual spec (needs Paula's NPC profiles)
|
v
PHASE 4: INTEGRATION
|
|-- Specs handed to Stig (UI) + Dudley (server)
|-- Araminta reviews implementation against specs
```
**The Visual Grammar Document is my Phase 1 deliverable. Zero dependencies. I can start today.**
---
## 9. Answering Specific Round 1 Asks
### For Mellanie: "Tell me the visual fidelity target"
**Maximum text density.** The colored rectangles communicate game state (who's friendly, where's the fog). They don't communicate mood, personality, or social dynamics. All that burden falls on text.
Concrete display constraints (pending full spec):
- Monologue: max ~80 characters per line (60% screen width at default font), max 3 visible lines
- Dialogue: max ~100 characters per line in dialogue panel
- Environmental text: 8-40 characters for labels, up to 200 for terminal screens
- News ticker: single scrolling line, ~60 character visible window
### For Paula: "Should the insert carry character-specific visual language?"
**Yes. One parameterized system, two profiles.** See insert section above. The `lattice_profile` loads POI categories, notification format, data density, and annotation style per character. No extra development cost -- just data.
### For Ozzie: "Does it need mood?"
**It needs three things: a color palette, lighting variation, and one signature element.** That's the span gate glow, the zone palettes, and the three-zone lighting model. Not polish -- MOOD through restraint. The gap between "readable prototype" and "world I'm stepping into" is these three things.
### For Gestalt: Spatial requirements
**Confirmed.** Each spatial layout includes: one publicly accessible area with hidden back section, one area with smuggler-natural access, one chokepoint where cross-template encounters happen. The main corridor in the logistics hub is the primary chokepoint. The bar entrance + counter serve as social observation chokepoint.
---
## 10. Immediate Next Steps
1. **Write v0.1 Visual Grammar Document.** One page. Color palette (locked), entity sizing, label conventions, UI layers, fog spec. No dependencies. Can start today.
2. **Draft spatial layouts for Sova's three social sites.** Based on Miri's zones + Paula's relationship web + Gestalt's spatial requirements. Submit to Paula for review.
3. **Design insert/HUD wireframe.** Two variants. Based on Paula's access tier model + Miri's lattice descriptions.
4. **Write monologue display spec.** Typography, positioning, animation, stacking. Gives Mellanie her display constraints.
5. **Design sound indicators.** Fog-edge pulse icons complementary to 6-8 audio files.
6. **Spec THE FRIEND's visual treatment.** After Paula's NPC profiles exist.
---
## Summary Position
Round 1: "The entity color system is the single most important visual DECISION."
Round 2: **"The spatial layouts are the single most important visual DELIVERABLE."**
The color system is confirmed and locked. Good. Now: does the physical space support the relationship web, the access tier model, the observation gameplay, and the dual-lens experience? If sightlines are wrong, no dialogue tagging saves the investigation. If chokepoints don't exist, cross-template encounters don't happen. If the bar doesn't have that corner booth, Paula's card game triangle has nowhere to play out.
The spatial layouts are where abstract systems become concrete games. Where Paula's 7 triangles become observable social dynamics. Where Gestalt's access tiers become physical spaces. Where Mellanie's 900 lines have rooms to live in.
I can start the Visual Grammar today. Spatial layouts begin as soon as the workshop concludes.
Keep it clean, we can layer detail later.
---
*Written by Araminta. Round 2 synthesis complete.*
@@ -0,0 +1,591 @@
# Round 2: Gestalt (Systems Design) - Synthesis
**Workshop:** v0.1 Content Gap Analysis
**Date:** 2026-02-11
**Scope:** Mechanical convergence across all Round 1 outputs + Jeroen's Round 2 directives
---
## 0. Directives Acknowledged
Before I get into synthesis, let me confirm the constraints from Jeroen's Round 2 direction. These are locked. No further debate:
| Directive | Status | Mechanical Implication |
|-----------|--------|----------------------|
| Separate monologue pools per character | **Confirmed, non-negotiable** | Two parallel content trees. `character` is a hard partition tag, not a filter. |
| Color = relationship to player | **Approved** | Entity color is a client-side derivation from `RelationshipState` component + knowledge state. Not an NPC property. |
| Audio included in v0.1 | **Confirmed** | 6-8 AI-generated files. Sound event system architecture must support this. Visual fallback for everything beyond those files. |
| One NPC per character = THE FRIEND | **Confirmed** | Two production-level NPCs. Full pipeline depth test. All systems exercised on these two. |
| Wiki structure for taxonomy | **Non-negotiable** | Miri handling. Tag taxonomy I define here must integrate with wiki structure. |
| Line pool format (YAML) | **Needs validation** | Mellanie and Paula must sign off. That's what this section does. |
---
## 1. Converged Line Pool Format
*Let me break down what this actually means mechanically.* Three people proposed tag schemas in Round 1. Let me reconcile them.
### Schema Comparison
| Tag | Gestalt R1 | Mellanie R1 | Paula R1 (implied) | Converged |
|-----|-----------|-------------|-------------------|-----------|
| `id` | `{template}_{type}_{###}` | `{template}-{role}-{situation}-{##}` | Not specified | **Keep Gestalt format** — machine-parseable, stable |
| `text` | string | string | string | **Keep** |
| `role` / `speaker` | `role` (enum per template) | `speaker` (enum per template) | Implied by NPC profile | **`role`** — the template role, not the NPC name. NPC assignment is runtime. |
| `character` | N/A (on monologue only) | `character` (smuggler/detective/any) | Implied | **`character`** — but ONLY on monologue lines. Dialogue lines are character-agnostic; the access tier handles filtering. |
| `access` | list\<enum\> | single enum | Per-line, hard filter | **list\<enum\>** — a line can be eligible for multiple access tiers |
| `trust` | enum (surface/real/secret) | enum (same) | Three disclosure tiers, progressive | **Aligned. No change.** |
| `situation` | list\<enum\> | list\<enum\> | Relationship history + context | **list\<enum\>** — see converged situation taxonomy below |
| `topic` | list\<enum\> | single enum | Mood + topic for Layer 4 | **list\<enum\>** — lines can cover multiple topics |
| `mood` | list\<enum\> | single enum | Mood for weighted selection | **list\<enum\>** |
| `location` | N/A (implicit from file) | enum | N/A | **Drop from line-level.** Location is implicit from the file's directory. Adding it per-line is redundant and an error source. |
| `type` | N/A (implicit from file) | `type` (dialogue/monologue/env/ticker) | N/A | **Drop from line-level.** Content type is implicit from file name (dialogue.yaml vs monologue.yaml). |
| `tags` | list\<string\> freeform | N/A | N/A | **Keep** — escape hatch for author intent that doesn't fit taxonomy |
| `dual_lens` | map (per-character notes) | N/A | Critical for authoring | **Keep** — authoring-only, not consumed by engine |
| `notes` | string | N/A | N/A | **Keep** — authoring-only |
| `trigger` | On monologue only | N/A | N/A | **Keep for monologue** — the observation event that fires the line |
| `prerequisite` | On monologue only | N/A | N/A | **Keep for monologue** — knowledge state gate |
### Converged Tag Taxonomy — FINAL (pending Mellanie/Paula sign-off)
**Structural tags (required on every dialogue line):**
| Tag | Type | Values | Maps to D-028 Layer |
|-----|------|--------|---------------------|
| `id` | string | `{template}_{d\|m\|e}_{###}` | N/A (indexing) |
| `text` | string | The authored line | N/A (content) |
| `role` | enum | Template-defined roles | N/A (speaker assignment) |
| `access` | list\<enum\> | `public`, `insider`, `authority`, `peer`, `hostile` | **Layer 1** (hard filter) |
| `trust` | enum | `surface`, `real`, `secret` | **Layer 3** (hard filter) |
| `situation` | list\<enum\> | See taxonomy below | **Layer 2** (context filter) |
**Selection tags (recommended, fallback to defaults if empty):**
| Tag | Type | Values | Maps to D-028 Layer | Default |
|-----|------|--------|---------------------|---------|
| `topic` | list\<enum\> | See taxonomy below | **Layer 4** (weighted selection) | `[general]` |
| `mood` | list\<enum\> | See taxonomy below | **Layer 4** (weighted selection) | `[neutral]` |
| `tags` | list\<string\> | Freeform | N/A (author use) | `[]` |
**Authoring-only tags (not consumed by engine):**
| Tag | Type | Purpose |
|-----|------|---------|
| `dual_lens` | map | Per-character interpretation notes |
| `notes` | string | Author intent, dependencies, context |
**Monologue-specific tags (in addition to above):**
| Tag | Type | Values | Purpose |
|-----|------|--------|---------|
| `character` | enum | `smuggler`, `detective` | **Hard partition.** Separate pools per Jeroen's directive. |
| `trigger` | enum | See trigger taxonomy below | Observation event that fires this line |
| `prerequisite` | map or null | Knowledge state conditions | Gate: line only eligible if character knows X |
### Alignment with Paula's Four Layers
This is the critical validation. Does the converged schema express all four D-028 layers?
| D-028 Layer | How It's Expressed | Tag(s) | Filter Type |
|-------------|-------------------|--------|-------------|
| **Layer 1: Access tier** | `access` tag on every line. Engine checks player character's current access tier at the NPC's social site. | `access` | **Hard filter.** Line invisible if access doesn't match. |
| **Layer 2: Relationship history** | `situation` tag + engine-tracked interaction state. Engine maintains per-NPC counters (interaction_count, last_interaction_time, notable_events). These counters activate/deactivate situation eligibility. `first_meeting` is true once. `repeated_visit` activates after 3+ visits. `greeted_before` is tracked by engine, not tagged per-line. | `situation` + engine state | **Context filter.** Narrows eligible pool based on relationship progression. |
| **Layer 3: Trust-gated gossip** | `trust` tag on every line. Engine tracks trust progression per NPC (starts at surface, can reach real/secret through repeated positive interactions). | `trust` | **Hard filter.** Line invisible if current trust level is below line's trust tier. |
| **Layer 4: Unprompted disclosure** | `topic` + `mood` tags. Engine selects from eligible lines (post-Layer 1/2/3 filtering) weighted by match between NPC's current mood state and line's mood tag, and between NPC's current concern topics and line's topic tag. | `topic` + `mood` + engine state | **Weighted selection.** Soft ranking, not hard filter. Neutral mood always available as fallback. |
**Verdict: The converged schema fully expresses all four layers.** Layers 1 and 3 are hard filters (binary tag match). Layer 2 is engine-state-to-situation mapping. Layer 4 is weighted selection across two tag dimensions.
Paula's concern about `greeted_before:true` — this is NOT a per-line tag. It's engine state. The engine tracks whether these characters have met before and activates the `first_meeting` or `repeated_visit` situation accordingly. The content author doesn't tag individual lines with interaction history — they tag situations, and the engine decides which situations are active.
### Key Changes from My Round 1 Proposal
1. **Dropped `location` from line-level tags** — location is directory-level. This removes a redundancy Mellanie flagged.
2. **Dropped `type` from line-level tags** — content type is file-level. This reduces Mellanie's 8 tags to 6 structural + 2 selection = 8 total, but 2 fewer per-line.
3. **Added `character` as monologue-only hard partition** — confirms Jeroen's directive mechanically.
4. **Clarified that `access` is list, not single** — a line can be eligible for both `insider` and `peer`.
5. **Made `topic` and `mood` list types** — a line can cover multiple topics and be appropriate for multiple moods.
### Situation Taxonomy v0.1 (Converged)
Merged from my Round 1 list + Mellanie's proposal:
| Situation | Description | Activation |
|-----------|-------------|------------|
| `greeting` | First interaction this game-day | Engine: no interaction logged today |
| `first_meeting` | Characters have never interacted | Engine: interaction_count == 0 |
| `routine` | Normal daily activity | Engine: NPC in scheduled routine state |
| `morning` / `afternoon` / `evening` / `night` | Day phase (D-031) | Engine: current SimulationTime phase |
| `repeated_visit` | Player has visited this NPC 3+ times | Engine: interaction_count >= 3 |
| `interrogation` | Player is asking pointed questions | Engine: dialogue topic escalation detected |
| `witnessed_secret` | Player has observed something they shouldn't | Engine: KnowledgeInventory contains secret-tagged fact about this NPC |
| `idle` | NPC is between scheduled activities | Engine: NPC routine state = idle |
| `working` | NPC is performing job routine | Engine: NPC routine state = job |
| `social` | NPC is in social activity (bar, break) | Engine: NPC routine state = social |
| `confrontation` | Triangle tension has escalated | Engine: triangle pressure threshold exceeded |
| `post_event` | Responding to a recent simulation event | Engine: event log contains recent entry for this NPC |
| `absence_noticed` | An expected NPC is missing | Engine: NPC not in expected location during expected time |
**13 situations for v0.1.** Mellanie's `gossip` and `observed_anomaly` situations are covered by `social` + topic filtering and `post_event` respectively. I'm not adding them as separate situations because they're better expressed as topic + mood combinations.
### Topic Taxonomy v0.1
| Topic | Description |
|-------|-------------|
| `work` | Job-related: tasks, schedules, complaints |
| `social` | Relationships, personal life, family |
| `cargo` | Freight, manifests, shipments — setting-specific |
| `money` | Finances, costs, spending |
| `rumors` | Gossip, hearsay, speculation |
| `identity` | Who someone is, where they're from, what they do |
| `deflection` | Avoiding a topic, changing subject |
| `complaint` | Grievances, frustrations |
| `general` | Weather, food, neutral small talk |
**9 topics for v0.1.** Mellanie's `crime` topic is deliberately excluded — NPCs don't think of what they do as "crime." It's `cargo` or `money` from their perspective. The dual-lens interpretation is what makes those topics crime-adjacent for the detective.
### Mood Taxonomy v0.1
| Mood | Description |
|------|-------------|
| `neutral` | Default state. Calm, unremarkable. |
| `happy` | Positive, upbeat, satisfied |
| `tired` | Low energy, going through motions |
| `annoyed` | Irritated, short-tempered |
| `nervous` | Anxious, fidgety, checking surroundings |
| `defensive` | Guarded, deflecting, walls up |
| `friendly` | Warm, open, welcoming |
| `cautious` | Careful, measuring words |
**8 moods for v0.1.** Mellanie's `tense`, `relaxed`, and `suspicious` map to `nervous`, `happy`/`neutral`, and `cautious` respectively. I'm consolidating to prevent near-duplicate moods that make authoring harder without adding selection granularity.
### Monologue Trigger Taxonomy v0.1
Unchanged from Round 1. 9 triggers:
| Trigger | Description |
|---------|-------------|
| `enter_location` | Player enters a new area |
| `observe_npc` | Player sees NPC doing something notable |
| `hear_sound` | Sound event from fog edge |
| `observe_anomaly` | NPC deviates from known routine |
| `post_conversation` | After dialogue ends |
| `discover_evidence` | Player examines an informational object |
| `witness_interaction` | Player sees two NPCs interacting |
| `time_idle` | Player hasn't acted for a while |
| `return_visit` | Player returns to a previously visited area |
---
## 2. Mellanie's Tag Proposal vs. Mine — Convergence
Mellanie proposed 8 tags. I proposed a more granular set. Here's where we landed:
| Mellanie's Tag | My Tag | Resolution |
|---------------|--------|------------|
| `character` | `character` (monologue only) | **Aligned.** Monologue-only, hard partition. Not on dialogue lines. |
| `access` | `access` | **Aligned.** I upgraded to list\<enum\>; she had single. List is correct. |
| `trust` | `trust` | **Aligned.** Identical. |
| `location` | (directory-level) | **Dropped from per-line.** Directory structure handles this. Mellanie agreed provisional format is fine. |
| `situation` | `situation` | **Aligned.** Her values are a subset of mine. Using the full 13-situation taxonomy. |
| `mood` | `mood` | **Aligned.** Consolidated to 8 moods. |
| `topic` | `topic` | **Aligned.** Expanded to 9 topics. |
| `type` | (file-level) | **Dropped from per-line.** File naming convention handles this. |
**Net result: 6 per-line structural tags + 3 per-line selection/freeform tags = 9 tags per dialogue line.** For monologue lines: +3 monologue-specific tags = 12 tags per monologue line.
**Mellanie's "tag smoke test" request is smart.** Before she writes 165 lines for the workplace, she writes 20, tags them, and I validate the filtering behavior. This should happen as the first line previewer test case.
---
## 3. THE FRIEND: Production-Level NPC Specification
*Okay, let me map this to mechanics.* Jeroen says THE FRIEND is a production-level complex NPC — one per character, full pipeline depth test. Ozzie defined the emotional design in Round 1. Let me define what "production-level" means for the ECS and content pipeline.
### What "Production-Level" Means Mechanically
THE FRIEND exercises every system we're building. It's the NPC that proves the pipeline works end-to-end:
| System | What THE FRIEND Tests | Minimum Requirement |
|--------|----------------------|---------------------|
| **10-axis model (D-024)** | All 10 axes populated with meaningful values that change during play | Axes must shift in response to simulation events |
| **Access tiers (D-028 L1)** | THE FRIEND has different access tiers per character | Smuggler: `insider`+`peer`. Detective: varies (starts `public`, can reach `peer`) |
| **Relationship history (D-028 L2)** | Interaction count tracked, situation progression works | `first_meeting` -> `greeting` -> `repeated_visit` must trigger different lines |
| **Trust progression (D-028 L3)** | Trust level advances through positive interactions | Surface -> Real progression visible in dialogue depth change |
| **Unprompted disclosure (D-028 L4)** | THE FRIEND volunteers information when mood + topic align | At least 3 unprompted lines that fire based on NPC mood state |
| **Tell system** | Observable behavioral markers for internal state | All 5 tell categories must be demonstrable on THE FRIEND |
| **Routine system** | Predictable daily schedule with deviations | Morning/afternoon/evening locations defined. At least 1 deviation event |
| **Triangle membership** | Belongs to at least 1 triangle | Triangle pressure must affect THE FRIEND's behavior observably |
| **Contradiction arc (Ozzie)** | Discoverable through observation, not dialogue | The contradiction must emerge from routine deviation + tell, then be confirmed/complicated by dialogue |
| **Monologue integration** | Player character comments on THE FRIEND specifically | Named monologue lines referencing THE FRIEND's behavior, not generic role observations |
| **Dual-lens divergence** | Same NPC, fundamentally different relationship per character | THE FRIEND is a different person emotionally to the smuggler vs. detective |
### THE FRIEND: ECS Component Profile
Each FRIEND NPC needs these components at minimum:
```
Entity: THE_FRIEND_smuggler / THE_FRIEND_detective
Components:
- NpcIdentity { name, role, home_template, reference_templates[] }
- Want { current_want, intensity, blocked_by }
- Secret { content, known_by[], exposure_risk }
- Relationships[3] { target_entity, valence, trust_level, interaction_count, last_interaction }
- ToleranceThreshold { current_value, max_value, triggers[] }
- DailyRoutine { schedule: Map<DayPhase, Location>, deviations[] }
- InformationInventory { known_facts[], rumors[], secrets_held[] }
- Contentment { value, trend, causes[] }
- PersonalityTraits { trait_a, trait_b, trait_c }
- TellState { active_tells: Map<TellCategory, Intensity> }
- SkillSet { skills[], combat_trained: bool }
- AccessTierMap { Map<Entity, AccessTier> } // per-observer access
- TriangleMembership { triangle_ids[], role_in_triangle: Map<TriangleId, Role> }
- MoodState { current_mood, trend, causes[] }
```
### THE FRIEND: Content Requirements
**Per FRIEND NPC, Mellanie needs to author:**
| Content Type | Volume | Notes |
|-------------|--------|-------|
| Dialogue lines (all access tiers) | 25-35 lines | Must cover public, insider, peer, hostile. More lines than any other NPC. |
| Trust-gated dialogue (surface/real/secret) | 15-20 lines | Including at least 3 `secret`-tier lines that reveal the contradiction |
| Unprompted disclosure lines | 5-8 lines | Mood-triggered, topic-relevant. THE FRIEND initiates conversation. |
| Monologue lines (smuggler reacting to FRIEND) | 10-15 lines | Named references. "There goes Kael." Not "That dock worker." |
| Monologue lines (detective reacting to FRIEND) | 10-15 lines | Different framing. Analytical, not personal. |
| Tell observation monologue | 5-8 lines per character | "Kael's tapping his foot again." / "Subject displays stress indicators." |
| Contradiction discovery monologue | 3-5 lines per character | The moment the player realizes THE FRIEND isn't what they seemed |
**Total per FRIEND: ~70-100 authored lines** (including both character perspectives). This is roughly half the content budget of an entire template's dialogue pool — for one NPC. That's the cost of production-level. It's worth it because this NPC carries D-027 success criterion #3.
### THE FRIEND: Mapping to Paula's NPCs
Looking at Paula's Round 1 relationship web:
| Character | THE FRIEND candidate | Why |
|-----------|---------------------|-----|
| **Smuggler** | **NPC-B** (Logistics Worker 1 / Kael Davan) | Smuggler's closest colleague. Ring member. Works together daily. Trust + shared risk = deepest pre-existing bond. Contradiction: Kael is reliable to the smuggler, but is cracking under pressure / making mistakes / possibly considering turning. |
| **Detective** | **NPC-D** (Dock Inspector) or **NPC-G** (Security Officer) | The detective needs a contact who becomes a relationship. NPC-D has the gambling debt (exploitable, sympathetic). NPC-G has institutional proximity (a peer the detective trusts professionally). **Recommendation: NPC-D** — the gambling debt creates the contradiction (seems corrupt, might just be desperate) and connects to Triangle B (Card Game Debt). |
Paula should confirm these assignments in her Round 2. The FRIEND NPCs are the first profiles she should write at Tier 1 depth.
---
## 4. Missing Tickets for Systems/Mechanical Work
I've cross-referenced all Round 1 outputs against the existing ticket pool. Here are the systems tickets that should exist but don't (or need upgrading):
### New Tickets Needed
| Title | Type | Priority | Rationale | Depends On |
|-------|------|----------|-----------|------------|
| **Dialogue selection pipeline implementation** | Feature | Critical | The 4-layer filtering engine: access -> situation -> trust -> weighted(mood, topic). This is the core runtime system that makes content playable. Nothing in the existing tickets covers the actual selection algorithm. | Line pool format (this document), NPC component architecture |
| **Monologue trigger system** | Feature | Critical | Engine component that fires monologue events based on observation triggers (enter_location, observe_npc, etc.). Must select from character-specific pool, apply prerequisite gates, track variety (no repeats). | Perception system (#124), Character knowledge state |
| **NPC mood state machine** | Feature | High | NPCs need a mood component that changes based on simulation events (triangle pressure, time of day, recent interactions). Mood drives Layer 4 selection + tell system. | 10-axis NPC components |
| **Trust progression system** | Feature | High | Engine tracks trust level per player-NPC pair. Progresses through surface -> real -> secret based on interaction quality and frequency. Must be observable (player can sense trust improving). | Relationship tracking, dialogue system |
| **Interaction tracking component** | Feature | High | Per-NPC-pair counter: interaction_count, last_interaction_time, notable_events log. Drives Layer 2 situation activation. | NPC component architecture |
| **Tell state derivation system** | Feature | Medium | System that reads NPC axis values (Secret + Tolerance = nervous, Contentment low = frustrated, etc.) and outputs observable tell states consumed by monologue trigger system. | 10-axis NPC components, monologue trigger system |
| **Sound event system architecture** | Feature | High | Event emitter for sound occurrences. Emits typed events (footsteps, voices, machinery, alarm) with position, intensity, and range. Client renders as audio file OR visual indicator + monologue, depending on available assets. | Perception system (#124) |
| **YAML content loader** | Feature | High | Rust system that parses content YAML files into indexed, queryable line pools at startup. Must support hot-reload for previewer/authoring workflow. | Line pool format (this document) |
| **Line variety tracker** | Feature | Medium | Prevents the same line from firing repeatedly. Tracks recently-used line IDs per NPC per session. Selects from eligible pool excluding recent history. | Dialogue selection pipeline |
| **Knowledge state component** | Feature | High | Per-character component tracking known facts, tagged by source, confidence, and emotional weight. Gates monologue prerequisites and informs situation activation. Paula's `KnowledgeInventory` proposal. | NPC component architecture |
| **Observation event generator** | Feature | Critical | System that detects observable NPC behaviors (routine deviation, interaction between NPCs, absence from expected location) and generates events consumed by monologue trigger system. This is the bridge between simulation and player perception. | NPC routine system, perception system |
| **Tag taxonomy wiki page** | Documentation | High | The converged taxonomy from this document, formatted for the wiki structure Miri is building. Reference document for all content authors. | This document, Miri's wiki structure |
| **THE FRIEND: Smuggler's NPC profile** | Story | Critical | Full Tier 1 profile for the smuggler's FRIEND (NPC-B / Kael Davan). All 10 axes, voice paragraph, triangle positions, contradiction arc. | Dual Lens Guide (#261) |
| **THE FRIEND: Detective's NPC profile** | Story | Critical | Full Tier 1 profile for the detective's FRIEND (NPC-D / Dock Inspector). Same depth. | Dual Lens Guide (#261) |
### Existing Tickets That Need Scope Updates
| Ticket | Current Scope | Needed Addition |
|--------|--------------|-----------------|
| #90 (Tell system) | Unclear | Scope to 5 tell categories (nervous, angry, friendly, guarded, routine deviation). Text-via-monologue as v0.1 renderer, not visual animation. |
| #124 (Sound system) | Unclear | Must include sound event emitter architecture supporting both audio playback AND visual indicator fallback. See Section 6 below. |
| #193 (Line previewer) | "Authoring tool" | Concrete MVP scope defined. See Section 7 below. |
| #168 (Tag taxonomy) | "Agreement needed" | This document IS the agreement. Ticket should be updated to reference this converged taxonomy. |
---
## 5. How Mechanical Systems Support Content Needs
*Let me map every content need from Round 1 to a mechanical system.* This is the crosswalk that ensures nothing falls through the cracks.
### Content Need -> System Mapping
| Content Need (from Round 1) | Required System | Status | Gap? |
|-----------------------------|----------------|--------|------|
| Dialogue lines filtered by access tier | Dialogue selection pipeline (Layer 1) | **Not built** | YES - needs ticket |
| Dialogue changes based on relationship history | Interaction tracking + situation activation (Layer 2) | **Not built** | YES - needs ticket |
| Trust-gated disclosure | Trust progression system (Layer 3) | **Not built** | YES - needs ticket |
| NPCs volunteer information based on mood | NPC mood state machine + weighted selection (Layer 4) | **Not built** | YES - needs ticket |
| Monologue fires on observation events | Observation event generator + monologue trigger system | **Not built** | YES - needs ticket |
| Separate monologue per character | Character-partitioned content pools | **Not built** | Covered by YAML loader + `character` tag |
| Tells observable through monologue | Tell state derivation + monologue integration | **Not built** | YES - needs ticket |
| NPC routine creates observable patterns | NPC routine system (D-024 Daily routine axis) | **Partially ticketed** | Needs scope for deviations and absence detection |
| Dual-lens interpretation of same event | Per-character monologue pools + knowledge prerequisites | **Not built** | Covered by monologue trigger system + `prerequisite` field |
| Mirror moments on replay | Same trigger, different character pool | **Architectural** | Covered by design — separate pools keyed to same triggers |
| Flat NPCs don't feel flat | Routine system + 1 memorable trait + role voice pool | **Not built** | Personality trait modifier in dialogue selection |
| THE FRIEND contradiction arc | Triangle pressure + tell escalation + routine deviation | **Not built** | Composition of several systems (triangle, tell, routine) |
| Environmental text readable in world | Environmental text rendering in Godot client | **Not built** | Needs client-side ticket |
| News ticker / Meridian feed | Ticker content system + time-based rotation | **Not built** | Needs ticket for both content + rendering |
| Audio atmosphere (6-8 files) | Sound event system + audio playback | **Not built** | YES - see Section 6 |
| Diegetic tutorial via monologue | Opening hook monologue + trigger on first-time events | **Not built** | Covered by monologue trigger system + `first_meeting` / first-visit gates |
**Summary: 17 content needs, 0 fully built, 12 need new tickets, 5 covered by existing ticket scope updates.**
The critical path for systems is:
```
NPC Component Architecture (10 axes)
|
+-> NPC Routine System
| |
| +-> Observation Event Generator
| |
| +-> Monologue Trigger System
|
+-> NPC Mood State Machine
| |
| +-> Tell State Derivation
|
+-> Interaction Tracking
| |
| +-> Trust Progression
|
+-> YAML Content Loader
|
+-> Dialogue Selection Pipeline (4 layers)
|
+-> Line Variety Tracker
```
Everything fans out from the NPC component architecture. That's Sprint 1 server work. The YAML loader and dialogue pipeline can be developed in parallel once the component schema is stable.
---
## 6. Audio Event System: Minimal Architecture
Jeroen confirmed audio in v0.1: 6-8 AI-generated files. Ozzie's minimum viable list from Round 1:
1. Station ambient loop (1 file)
2. Location variants: workplace, bar, corridors (3 files)
3. Footsteps — walk/run (2 files)
4. Monologue appearance chime (1 file)
5. (Optional) UI interaction sound (1 file)
**That's 7-8 files.** Here's the minimal architecture that supports them while remaining extensible:
### Sound Event System Architecture
```
[Simulation Server]
SoundEventEmitter
- emits: SoundEvent { type, position, intensity, range_category }
- types: Footstep, Voice, Machinery, Alert, Ambient
- range_category: Close, Medium, Long (D-018)
|
v
[ObserverSnapshot]
sound_events: Vec<SoundEvent> // only events within perception range
|
v
[Godot Client]
SoundRenderer
- receives SoundEvents from snapshot
- looks up audio asset for event type
- if asset exists: play audio (with distance attenuation + stereo panning)
- if asset missing: render visual indicator + fire monologue trigger
|
+-> AudioAssetRegistry
| Maps SoundEvent.type -> audio file path (or null)
| v0.1 registry:
| Footstep -> footstep_walk.ogg, footstep_run.ogg
| Ambient(workplace) -> ambient_workplace.ogg
| Ambient(bar) -> ambient_bar.ogg
| Ambient(corridor) -> ambient_corridor.ogg
| Alert(monologue) -> monologue_chime.ogg
| * -> null (visual fallback)
|
+-> VisualSoundIndicator
| Renders fog-edge ripple/pulse for events without audio
| Color-coded per Araminta's spec:
| neutral (#c8d0e0), voices (#e8c547), danger (#d45d5d)
|
+-> AmbientManager
Manages location-based ambient loops
Crossfades between ambient tracks on location transition
The span gate hum (Miri's suggestion) is the base layer
```
### Key Design Principles
1. **Events first, assets second.** The simulation always emits sound events. The client decides how to render them. Zero audio files = everything renders as visual + monologue. 8 files = partial audio with visual fallback for the rest. Full audio suite = rich soundscape. The architecture doesn't change.
2. **The ambient manager is separate from event-driven sounds.** Ambient loops play continuously based on location. Sound events are discrete occurrences (footsteps, voices, alerts). These are two different subsystems that share the audio output.
3. **Monologue chime is a UI sound, not a simulation sound.** It's triggered by the client when monologue text appears, not by the simulation. It doesn't go through the SoundEvent system.
4. **Distance attenuation is simple for v0.1.** Close range = full volume. Medium range = 50% volume + slight muffle. Long range = no direct audio (insert notification only). Three tiers, not continuous falloff.
### What This Requires from Implementation
- **Server side:** `SoundEventEmitter` system that checks entity actions each tick and emits typed events. Perception filter includes events within hearing range in `ObserverSnapshot.sound_events`.
- **Client side:** `SoundRenderer` node in Godot that processes snapshot sound events. `AudioAssetRegistry` as a simple dictionary. `VisualSoundIndicator` for fog-edge rendering. `AmbientManager` for location loops.
- **Asset pipeline:** 7-8 .ogg files, generated or sourced. Integrated into Godot project's audio resources.
This is a small architecture for a large capability surface. It handles v0.1's 8 files and scales to hundreds without structural changes.
---
## 7. Line Previewer (#193): Concrete MVP Scope
The line previewer was flagged by me, Mellanie, and Ozzie in Round 1 as critical. Let me scope the MVP concretely.
### What the Previewer Does
The previewer answers one question: **"Given this NPC state and this player state, what line fires?"**
It's the authoring equivalent of a compiler — it tells the content author whether their tags produce the intended behavior before the line is integrated into the game.
### MVP Feature Set
| Feature | Description | Priority |
|---------|-------------|----------|
| **Load YAML** | Parse a content YAML file (dialogue or monologue) into indexed pool | Must have |
| **Set filter context** | CLI arguments or interactive prompts for: access tier, trust level, active situations, NPC mood, topic filter, character (for monologue) | Must have |
| **Show matching lines** | Display all lines that pass the 4-layer filter with the given context | Must have |
| **Show selected line** | Apply weighted selection to show which single line would fire | Must have |
| **Explain selection** | Show WHY each line was included/excluded (which filter passed/failed) | Must have |
| **Sequence mode** | Play N lines in order simulating a walk-through (Ozzie's "preview sequence" request) | Should have |
| **Coverage report** | Show which access/trust/situation combinations have zero eligible lines (dead conversation detection) | Should have |
| **Hot reload** | Watch YAML file for changes, re-run filter on save | Nice to have |
| **Batch validation** | Run all YAML files through a consistency checker (missing required tags, invalid enum values, duplicate IDs) | Should have |
### Implementation
**Language: Rust.** The previewer should use the same YAML parser and selection logic that the game server will use. This means the previewer IS a test harness for the dialogue pipeline — if the previewer selects correctly, the game will select correctly.
**Interface: CLI.** No GUI needed. Terminal output with color-coded pass/fail on filters.
```
# Show what the detective hears from a dock_worker at insider access, surface trust,
# morning routine, neutral mood
$ cargo run --bin previewer -- \
--file content/templates/logistics-hub/dialogue.yaml \
--role dock_worker \
--access authority \
--trust surface \
--situation greeting,morning,routine \
--mood neutral \
--verbose
[PASS] access=authority [PASS] trust=surface [PASS] situation=greeting
-> lh_d_002: "You're new around here? Or just... visiting?"
topic=[social, identity] mood=[cautious, neutral] weight=0.85
[PASS] access=authority [PASS] trust=surface [FAIL] situation=first_meeting (requires interaction_count==0)
-> lh_d_005: "Morning. Can I help you with something?"
(excluded: situation mismatch)
Selected: lh_d_002 (weight: 0.85, variety_penalty: 0.0)
```
### Sequence Mode (Ozzie's Request)
```
$ cargo run --bin previewer -- \
--file content/templates/bar/monologue.yaml \
--character smuggler \
--sequence enter_bar \
--mood neutral
[Sequence: enter_bar — smuggler]
1. (enter_location) "The Last Shift. Lera's already got my usual poured."
2. (observe_npc) "Kael's at the corner booth. He looks rough tonight."
3. (observe_npc) "Drin's telling the same story again. Third time this week."
4. (time_idle) "Should probably check in with Kael. He doesn't usually drink alone."
```
This gives Mellanie and Ozzie a way to "feel" the content flow without running the full game. It's the emotional smoke test.
### Effort Estimate
The previewer shares 80% of its code with the dialogue pipeline implementation. Building it first means the pipeline is already tested when it's integrated into the server. The unique work is the CLI interface, the verbose explain mode, and the sequence playback — maybe 2-3 days of Dudley/Tyre's time on top of the pipeline work they'd do anyway.
**Recommendation: Build the previewer AS the first implementation of the dialogue pipeline.** Don't build them separately. The previewer is the pipeline running in standalone mode with verbose output.
---
## 8. Cross-Agent Synthesis: Convergence Map
Here's where every Round 1 contributor's proposals landed after synthesis:
### Fully Aligned (no further discussion needed)
| Topic | Status | Contributors Aligned |
|-------|--------|---------------------|
| Separate monologue pools per character | **Locked** (Jeroen directive) | All |
| Color = relationship to player | **Locked** (Jeroen directive) | Araminta (proposed), Gestalt (endorsed) |
| YAML as authoring format | **Aligned** | Gestalt (proposed), Mellanie (accepted with conditions) |
| 5 tell categories for v0.1 | **Aligned** | Gestalt (proposed), Araminta (visual notes), Ozzie (emotional validation) |
| Diegetic tutorial via monologue | **Aligned** | Gestalt (mechanical), Mellanie (content), Paula (narrative) |
| 30/50/20 entanglement ratio | **Aligned** (D-029 confirmed) | All |
| Monologue is v0.1 tell renderer | **Aligned** | Gestalt, Araminta, Mellanie |
### Converged in This Document
| Topic | Resolution | Key Decision |
|-------|-----------|--------------|
| Tag taxonomy | Converged 8-tag system (6 structural + 2 selection + freeform) | See Section 1 |
| Situation taxonomy | 13 situations from Gestalt + Mellanie merge | See Section 1 |
| Access tier model | list\<enum\> with 5 values | Gestalt's model, Paula's content, aligned |
| Line pool file structure | Directory = template/location, file = content type | Dropped per-line location and type tags |
| THE FRIEND mechanical spec | Full pipeline depth test with ~70-100 authored lines per NPC | See Section 3 |
| Audio architecture | Event-driven with asset registry + visual fallback | See Section 6 |
| Line previewer MVP | Rust CLI sharing pipeline code, 7 must-have features | See Section 7 |
### Needs Round 2 Confirmation from Others
| Topic | Who Needs to Confirm | What I Need |
|-------|---------------------|-------------|
| Converged tag taxonomy | **Mellanie** | Can you author with 6+3 tags per line? Is the mood/topic consolidation workable? |
| Converged tag taxonomy | **Paula** | Does the Layer 2 approach (engine-state-to-situation mapping, not per-line relationship tags) satisfy your 4-layer requirements? |
| THE FRIEND NPC assignments | **Paula** | Confirm NPC-B (Kael) for smuggler, NPC-D for detective. Or propose alternatives. |
| Miri's setting tags | **Miri** | Your proposed `lattice_tier`, `shift_phase`, `district_familiarity`, `institutional_context` — these should be engine-state context, not per-line tags. The engine knows the player is a newcomer; it activates `first_meeting` situations. Do you agree? |
| Spatial layout timing | **Araminta** | Your spatial layouts are needed before or in parallel with content packs. Confirmed? Can they be done independently of content? |
| Audio asset creation | **Ozzie** | 7-8 AI-generated files. Who generates them? What's the quality bar? Do we need a ticket for audio asset generation? |
---
## 9. Emergent Interactions: Where Systems Collide
*This is my favorite part.* Let me map the places where independently designed systems will interact to produce emergent gameplay — the stuff nobody scripted.
### Interaction Map
| System A | System B | Emergent Result |
|----------|----------|----------------|
| **NPC Routine** + **Observation Events** | Player sees NPC in unexpected place at unexpected time | Monologue fires: "That's not where they usually go." Player decides to follow or ignore. Neither designer planned the specific moment. |
| **Trust Progression** + **Triangle Pressure** | NPC's trust in player increases while triangle pressure increases | NPC discloses something they shouldn't under pressure. The disclosure is selected by the dialogue pipeline combining high trust + high stress mood. Not scripted — emergent from system state. |
| **Access Tier Shift** + **Monologue Dual-Lens** | Player's access tier changes at a social site (e.g., detective becomes a bar regular) | New dialogue lines become available AND the monologue reflects the shift ("They're starting to warm up to me"). The player FEELS the social change through two channels simultaneously. |
| **Sound Events** + **Fog of Perception** + **Monologue** | Player hears voices through a wall they can't see past | Sound event at fog edge -> visual indicator -> monologue interprets ("Sounds like an argument. Can't make out the words.") Player decides to move closer or not. The three systems produce a decision point. |
| **THE FRIEND Contradiction** + **Tell System** + **Monologue** | THE FRIEND's tell state escalates (nervous) while their dialogue stays friendly | The player gets conflicting signals: dialogue says "everything's fine," monologue says "they keep checking the door." The player must decide which signal to trust. Asymmetric information within a single NPC. |
| **NPC Mood** + **Time Phase** + **Unprompted Disclosure** | An NPC's mood worsens over the course of a day; by evening at the bar, they're drunk and frustrated | Layer 4 selects from `mood: [annoyed, tired]` + `trust: real` pool. The NPC says something they wouldn't have said that morning. Time + mood + alcohol = emergent information leak. |
**This is why systems-first design works.** None of these moments are scripted events. They're collisions between independently designed systems operating on shared state. The content authors write the individual lines; the systems decide when and how those lines combine. The result is stories the designers didn't anticipate.
---
## 10. Open Questions for Round 3 / Sprint Planning
| Question | Owner | Context |
|----------|-------|---------|
| Does the 4x generation expansion apply to THE FRIEND's custom lines? Or are all 70-100 hand-authored? | Mellanie + Gestalt | Generation expansion on high-specificity NPC lines risks losing the hand-crafted voice. Recommend: no expansion on FRIEND lines. Every line hand-authored. |
| Who creates the 7-8 audio files? | Ozzie + Justine | AI-generated is confirmed, but the pipeline needs defining. Which AI tool? What format? Who evaluates quality? |
| Should the line previewer be a sprint deliverable or a tooling side-project? | Tyre + Dudley | I recommend sprint deliverable — it's the dialogue pipeline in standalone mode. Building it IS building the pipeline. |
| How does the knowledge prerequisite system handle "partial knowledge"? | Gestalt + Paula | A monologue line gated on `knows: smuggling_operation` — does the player need to know the full operation, or just that something suspicious is happening? Need a knowledge hierarchy: `suspects` < `knows_of` < `knows_details`. |
| Triangle pressure threshold — what triggers escalation? | Gestalt + Paula | Triangles need a numeric pressure value that increases based on events. When it crosses a threshold, `confrontation` situation activates. Need to define the events that increase pressure. |
---
*Gestalt out. The taxonomy is converged. The FRIEND is specified. The audio architecture is minimal and extensible. The previewer is scoped. Now we need Mellanie and Paula to validate the tag schema, and Dudley to start building the NPC component architecture. The systems are ready to support the content. Let's build.*
@@ -0,0 +1,355 @@
# Round 2 — Mellanie's Content Synthesis
**Agent:** Mellanie (Copywriter)
**Date:** 2026-02-11
**Scope:** Cross-agent synthesis, dependency chain, work order, concrete next steps
---
## 1. Reactions to Round 1 Outputs
### Miri's Sova Transit District: Does it give me what I need?
**Almost. It's good. A few gaps.**
The Sova Transit District brief is the best setting document I've gotten on any project. The sensory details are exactly what I asked for — smells (industrial lubricant, recycled air, cooking, ozone-and-metal from the span gate), sounds (cargo machinery, span gate hum, ventilation), temperature variation. These go straight into monologue. That "quotidian-with-undertow" description is the atmosphere I'm writing to.
What I can now write that I couldn't before:
- Location-entry monologue for all three social sites
- Environmental text grounded in Krenn System culture
- News ticker content using Concordat Standard / Meridian terminology
- NPC greetings using Sova naming conventions (Kael, Voss, Drin, Lera, Torek, Maret)
**What's still missing from my perspective:**
1. **Slang and idiom.** Miri gave me naming conventions and cultural posture, but I need speech texture. Do Sova workers say "shift" or "rotation"? "Gate" or "transit"? "Credits" or something local? Do they swear, and if so, how? Three to five colloquialisms would anchor every line of dialogue in the setting. Without them I'll invent them, and we risk inconsistency.
2. **The bar's name.** Miri proposed "The Last Shift." That works. But she also used "Lera's — Cold Drinks, Hot Food, No Questions" on a sign. Are these the same place? I need the canonical bar name locked so every reference is consistent. **Proposal: "The Last Shift" is the official name. "Lera's" is the informal name used by regulars. Both coexist.** This is itself a worldbuilding detail — the smuggler calls it "Lera's," the detective's case file says "The Last Shift, licensed establishment, District 7."
3. **The logistics hub name.** Miri called it "The Terminal." Is that the colloquial name or the official one? Same question. **Proposal: "Sova Transit Freight Terminal" is official. "The Terminal" is what everyone calls it. The smuggling ring calls it nothing — they just say "the dock" or "work."**
4. **One more constraint: what CAN'T be said on the Meridian?** Miri mentioned off-Meridian communication for the ring. For dialogue writing, I need to know what NPCs self-censor in public channels vs. voice. If the Meridian is monitored, every NPC who knows about the ring has a public voice and a private voice. That's a dialogue-level split I need to author for.
**Bottom line: Miri gave me 90% of what I need. The remaining 10% is speech-level detail I can resolve in a short back-and-forth.**
### Gestalt's YAML Line Pool Format: Does it work for me?
**Yes. With one modification and two clarifications.**
The YAML format Gestalt proposed is clean, readable, and writable. The tag taxonomy covers the four D-028 layers. The file structure (`content/templates/{site}/dialogue.yaml` etc.) is logical. The example entries read like content I'd actually author. I can work in this format starting now.
**One modification — the `dual_lens` field:**
Gestalt put `dual_lens` as an authoring-only tag with per-character notes. That's useful during writing, but I want it to DO something in the previewer too. When I preview a line, I want to see: "If the smuggler triggers this line's context, which OTHER lines (from the smuggler's monologue pool) might fire as a reaction?" The dual_lens field should cross-reference monologue trigger IDs, not just carry prose notes.
Proposed change:
```yaml
dual_lens:
smuggler_context: "Routine shop talk. But Taliesin shipments are your cover run."
smuggler_monologue_ref: [lh_m_015, lh_m_016] # monologue lines that pair with this
detective_context: "Cargo volume anomaly. Worth checking manifests."
detective_monologue_ref: [lh_m_042, lh_m_043]
```
This connects dialogue to monologue at the authoring level. When I write a dialogue line, I can immediately link the monologue reactions. The previewer shows the full chain: NPC says X, smuggler thinks Y, detective thinks Z.
**Two clarifications I need:**
1. **Character-specific monologue files vs. shared monologue files.** Gestalt's structure has `templates/{site}/monologue.yaml` — one monologue file per location. But Jeroen confirmed separate pools per character. So do I write `templates/logistics-hub/monologue-smuggler.yaml` and `templates/logistics-hub/monologue-detective.yaml`? Or one file with `character: smuggler` / `character: detective` tags filtering within it? **I prefer separate files.** Two files per location, one per character. Cleaner authoring, no risk of accidentally sharing lines between pools.
2. **The `prerequisite` field on monologue lines.** Gestalt used `prerequisite: { knows: smuggling_operation }` — a knowledge state check. Who defines the knowledge state vocabulary? I need a list of knowledge flags so my monologue prerequisites reference real engine state, not invented strings. **Gestalt or Dudley needs to define the v0.1 knowledge state vocabulary before I write monologue lines with prerequisites.**
**Bottom line: The YAML format works. I'm adopting it. Separate monologue files per character. Need the knowledge state vocabulary defined.**
### Paula's Dual Lens Guide and Relationship Web
Paula's work is the narrative architecture I build on. Her proposed guide contents are exactly right — core identity, emotional starting state, what they notice, what they miss, relationship defaults, the divergence escalation curve. The relationship web with 15 NPCs, 7 triangles, and 6 bridge connections is rich enough without being bloated.
**One thing I need from Paula that wasn't in Round 1:** The voice paragraph for each character. Not the narrative identity — the *speech pattern*. My Round 1 asked for five things: voice signature, what they notice, relationship to authority, what they lie about, emotional baseline. Paula gave me the narrative framework for all five. Now I need them translated into speech:
- Does the smuggler think in short sentences or long ones?
- Does the detective use contractions in their inner monologue?
- When the smuggler is nervous, do they get quieter or louder?
- When the detective is frustrated, do they get clinical or profane?
These are the micro-decisions that determine whether 500 lines sound like the same person or a committee.
### Araminta's Visual Identity
Araminta's color-as-relationship-state proposal is brilliant and directly affects my work. If color carries the asymmetric information visually, my monologue doesn't need to constantly explain WHO people are to the player. The smuggler sees green (friendly) and I don't need "That's Kael, my shift partner" — the color already said "you know this person." My monologue can skip identification and go straight to observation: "Kael's early. That's not like him."
**Araminta's monologue presentation spec also answers my density question.** Max 3 lines visible, fade in/out, priority system (observation > atmosphere > tutorial). This means my lines need to be SHORT. One sentence, maybe two. Never three. The display area is small and fleeting. Every word earns its place or gets cut.
**Her character-differentiated monologue color** (smuggler slightly warmer, detective slightly cooler) is a subtle touch that supports my voice differentiation. The reader's eye will associate color temperature with character register before they consciously parse it. Good.
### Ozzie's Emotional Map and THE FRIEND
Ozzie's emotional journey table is the sequence I'm writing to. Every gap he flagged is a content deliverable on my list. His instinct about THE FRIEND — the NPC designed for emotional contradiction — aligns exactly with what I need to write the most important dialogue in the game.
His note about flat NPCs being "load-bearing for the investigation mechanic" is correct and important. The flat NPC voice kits aren't filler work. They're the noise floor that makes signal detectable. If the noise sounds fake, the signal is too easy to find.
---
## 2. How THE FRIEND Changes My Content Pack Approach
Jeroen's directive: one NPC per character should be "THE FRIEND" — production-level complex. Full profile, full voice kit, full dialogue, full tell system, full contradiction arc. The rest stay v0.1 simple.
**This fundamentally restructures my writing priorities.**
Before: I was planning to write template content packs (role voice kits, situation scripts) and then layer NPC-specific lines on top. Bottom-up. Generic first, specific later.
Now: THE FRIEND gets written FIRST. Top-down for the most important NPC, then bottom-up for everyone else.
**Why this is the right call:**
THE FRIEND is our quality benchmark. If I write them at full depth — every dialogue layer working, every tell authored, the contradiction arc fully scripted — that becomes the reference implementation for the content pipeline. Every other NPC is a simplified version of THE FRIEND. The template system, the YAML format, the tag taxonomy, the previewer — they all get stress-tested on one NPC before I scale to fifteen.
**What THE FRIEND needs (per character):**
| Deliverable | Volume | Purpose |
|-------------|--------|---------|
| Full voice kit | 15-20 sample lines across all moods | The character's complete speech pattern |
| Greeting pool | 8-10 lines (access-filtered) | First contact variations: insider vs outsider vs authority |
| Trust-gated dialogue | 15-20 lines across surface/real/secret | Progressive revelation through repeated interaction |
| Routine dialogue | 10-12 lines | What they say during normal daily activity |
| Contradiction dialogue | 8-10 lines | The lines that reveal the contradiction — the lies, the deflections, the slip-ups |
| Monologue reactions (per PC) | 10-15 lines per character | How the smuggler and detective each interpret THE FRIEND's behavior |
| Tell descriptions | 5-8 lines per character | Observable behavioral markers that hint at the hidden truth |
| Post-discovery dialogue | 5-8 lines | How they talk after the player knows something is off |
| **Total per FRIEND NPC** | **~75-100 authored lines** | Production-quality NPC |
Two FRIEND NPCs = ~150-200 authored lines. That's a significant chunk of the total content budget (~900-1200 lines). Worth it. These are the NPCs that prove the game works.
**Who is THE FRIEND for each character?**
Paula's relationship web has the answer:
- **Smuggler's FRIEND: NPC-B (Logistics Worker 1 / Kael Davan).** The smuggler's closest colleague. Reliable ring member. The smuggler's anchor. The contradiction: Kael is considering cooperating with authorities (or has a secret the smuggler doesn't know about). The smuggler trusts Kael completely — and that trust is what makes the betrayal devastating.
- **Detective's FRIEND:** This is harder because the detective starts as an outsider. The detective's FRIEND isn't a pre-existing relationship — it's a relationship BUILT during the session. **Proposal: the detective's FRIEND is NPC-F (bar owner / Lera Sessik).** The bartender who becomes the detective's primary social contact. Helpful, warm, seems to genuinely like the detective. The contradiction: Lera knows about the smuggling ring and has been providing cover. The detective's best source of social intelligence is also the ring's most effective shield.
Paula — I need your sign-off on these two FRIEND assignments before I start writing.
---
## 3. Missing Tickets Identified from All Round 1 Outputs
Reading all six outputs, I'm seeing deliverables referenced that don't have tickets. Here's what's missing:
| Proposed Ticket | Owner | Priority | Rationale |
|-----------------|-------|----------|-----------|
| **THE FRIEND: Smuggler's NPC (Kael Davan) — full content pack** | Mellanie + Paula | Critical | Production-level NPC. Full voice kit, full dialogue, full tell system, full contradiction arc. Tests entire pipeline. |
| **THE FRIEND: Detective's NPC (Lera Sessik) — full content pack** | Mellanie + Paula | Critical | Same as above, detective perspective. |
| **Sova Transit District slang and idiom guide** | Miri | High | Speech-level setting detail needed before dialogue authoring. Colloquialisms, register differences, what's said on-Meridian vs off. |
| **Knowledge state vocabulary for v0.1** | Gestalt + Dudley | High | List of knowledge flags (e.g., `knows: smuggling_operation`, `met: kael_davan`) that monologue prerequisites reference. Blocks monologue authoring. |
| **Opening hook content — smuggler** | Mellanie | Critical | First 10-15 monologue lines. Diegetic tutorial. Sets voice, teaches mechanics, establishes motivation. |
| **Opening hook content — detective** | Mellanie | Critical | Same for detective. |
| **Monologue files: separate per character per location** | Mellanie | High | 6 monologue files total (2 characters x 3 locations). Confirmed by Jeroen: separate pools, non-negotiable. |
| **Audio: minimum viable sound set (6-8 files)** | TBD (AI-generated) | Medium | Station ambient, 3 location variants, footsteps, monologue chime. Jeroen confirmed for v0.1. |
| **Wiki taxonomy structure** | Miri + Qatux | Critical | Full taxonomy of characters, factions, lore, star systems, technology. Jeroen: non-negotiable, must be established NOW. |
| **Line pool format specification (formal document)** | Gestalt | High | Gestalt proposed the YAML format in Round 1. Needs to be a standalone spec document, not buried in a workshop output. |
| **Spatial layout designs — 3 social sites** | Araminta | High | Floor plans, sightlines, NPC positions. Araminta identified this in Round 1. Directly affects content (what can be overheard from where). |
| **Dual Lens Authoring Guide** | Paula | Critical | Paula proposed writing it. The single most important pre-content document. Blocks everything downstream. |
| **Character voice speech patterns** | Paula + Mellanie | High | The speech-level detail from my 5 asks in Round 1. Blocks voice kits. |
| **Mirror moment design document** | Paula + Mellanie | Medium | 10-15 scripted dual-perspective observation triggers. Blocks the most impactful monologue content. |
Some of these may overlap with existing tickets (#189, #190-192, #261, etc.). Si should cross-reference and create only what's genuinely new.
---
## 4. Dependency Chain: What Must Come Before What
Here's the full content dependency chain, updated with Round 1 inputs and Jeroen's directives:
```
Phase 0: FOUNDATIONS (parallel work, no dependencies between them)
|
|-- Miri: Sova slang/idiom guide
|-- Miri + Qatux: Wiki taxonomy structure
|-- Gestalt: Line pool format spec (standalone document)
|-- Gestalt + Dudley: Knowledge state vocabulary
|-- Paula: Dual Lens Authoring Guide (draft)
|-- Araminta: v0.1 Visual Grammar document
|
Phase 1: CHARACTER ARCHITECTURE (needs Phase 0)
|
|-- Paula + Mellanie: Character voice speech patterns
| |
| v
|-- Mellanie: Smuggler voice kit (needs speech patterns + Dual Lens Guide)
|-- Mellanie: Detective voice kit (needs speech patterns + Dual Lens Guide)
|
Phase 2: THE FRIEND (needs Phase 1 voice kits)
|
|-- Paula: THE FRIEND profiles (Kael + Lera) — full Tier 1 NPC profiles
| |
| v
|-- Mellanie: THE FRIEND content packs (full dialogue + monologue + tells)
| |
| v
|-- VALIDATION: Play-test THE FRIEND content through previewer
| — Does the voice sound right?
| — Does the contradiction land?
| — Does the tag system produce correct line selection?
|
Phase 3: OPENING HOOKS (parallel with Phase 2)
|
|-- Mellanie: Opening hook — smuggler (10-15 lines, diegetic tutorial)
|-- Mellanie: Opening hook — detective (10-15 lines, diegetic tutorial)
|
Phase 4: REMAINING NPCs (needs Phase 2 validation)
|
|-- Paula: NPC profiles (remaining 13 NPCs, Tier 1-3)
|-- Mellanie: NPC voice paragraphs for triangle/entangled NPCs
|
Phase 5: CONTENT PACKS (needs Phase 4)
|
|-- Mellanie: Logistics Hub content pack (#190)
|-- Mellanie: Bar content pack (#191)
|-- Mellanie: Smuggling Ring content pack (#192)
|
Phase 6: POLISH CONTENT (needs Phase 5)
|
|-- Mellanie: Environmental text (signs, terminals, notices)
|-- Mellanie: News ticker / Meridian feed (20-30 lines)
|-- Mellanie: UI microcopy
|-- Mellanie: Tell monologue lines (30-50 lines)
|-- Paula + Mellanie: Mirror moment pass
|-- Araminta: Spatial layouts (parallel with content packs)
|-- Audio: AI-generated sound set (parallel with content)
```
**Critical path: Paula's Dual Lens Guide -> Voice kits -> THE FRIEND -> Validation -> Scale.**
If the Dual Lens Guide is delayed, everything downstream shifts. That's the single highest-risk dependency.
---
## 5. My Proposed Work Order
Here's what I'm proposing to work on, in sequence, with what I can start NOW vs. what's blocked:
### Can start immediately (no dependencies):
1. **Tag taxonomy smoke test.** Write 20 lines in Gestalt's YAML format covering one location (logistics hub), both characters' monologue, and dialogue across access tiers. Ship to Gestalt for validation. This tests the format before I scale. **~2 hours.**
2. **Environmental text templates (generic).** Safety notices, terminal screens, door labels, shift schedule boards. These work in any station. I'll use Miri's Sova details where I have them, leave placeholders where I don't. **~3 hours.**
3. **News ticker first draft.** 15-20 Meridian feed headlines using Miri's setting. "Concord Assembly approves Krenn System infrastructure allocation." "Span gate Terminal B maintenance: 0200-0400." "Security advisory: report unregistered freight to Commission terminal." These are cheap worldbuilding with high atmospheric return. **~2 hours.**
### Needs Paula's Dual Lens Guide (Phase 0):
4. **Smuggler voice kit.** 15-20 sample lines. Provisional until Paula validates. I'll write three voice options (sardonic-observational, anxious-relational, casual-competent) and let Paula pick. **~4 hours.**
5. **Detective voice kit.** Same approach, three options (clinical-precise, weary-professional, sharp-intuitive). **~4 hours.**
### Needs voice kit validation (Phase 1):
6. **Opening hooks.** The first 10-15 lines each character thinks. The most important content in the game. These set voice, teach mechanics, and establish motivation simultaneously. Can't write them until the voice is locked. **~6 hours per character.**
### Needs THE FRIEND profiles (Phase 2):
7. **THE FRIEND: Kael Davan full content pack.** ~75-100 lines. Full voice kit, greeting pool, trust-gated dialogue, routine, contradiction arc, monologue reactions, tells. **~2 days.**
8. **THE FRIEND: Lera Sessik full content pack.** Same depth. **~2 days.**
### Needs remaining NPC profiles (Phase 4-5):
9. **Content packs x3.** Logistics hub, bar, smuggling ring. ~55-70 dialogue + 30-40 monologue per pack. **~3-4 days total.**
10. **Tell lines, mirror moments, UI copy.** Final polish pass. **~2 days.**
**Total estimated writing time: ~12-15 working days for all v0.1 content.**
That's achievable IF the dependency chain doesn't stall. The risk isn't my writing speed. The risk is waiting for inputs.
---
## 6. Revised Content Volume Estimates
With THE FRIEND approach and separate monologue pools confirmed, my Round 1 estimates need updating:
| Category | Round 1 Estimate | Revised Estimate | Change |
|----------|-----------------|------------------|--------|
| Template dialogue (3 packs) | 500-600 | 400-500 | Reduced — THE FRIEND lines come out of the template budget |
| THE FRIEND: Kael (full pack) | (not estimated) | 75-100 | NEW — production-level NPC |
| THE FRIEND: Lera (full pack) | (not estimated) | 75-100 | NEW — production-level NPC |
| NPC-specific lines (~13 remaining) | 115-205 | 80-140 | Reduced — two major NPCs pulled into FRIEND category |
| Monologue — smuggler | 100-150 | 120-160 | Increased — separate pools means no shared lines |
| Monologue — detective | 100-150 | 120-160 | Same |
| Opening hooks (2 characters) | (included in monologue) | 20-30 | Broken out — these are the most important lines |
| Environmental text | 50-60 | 50-60 | Unchanged |
| News ticker / Meridian feed | 15-20 | 20-30 | Increased — Ozzie's right, cheap worldbuilding |
| UI microcopy | 20-30 | 40-50 | Increased — Gestalt's UI text inventory is larger |
| Tell monologue lines | (included in monologue) | 30-50 | Broken out — 5 categories x 3-5 lines x 2 characters |
| **Total authored** | **~900-1,215** | **~1,030-1,380** | |
After 4x generation expansion on dialogue: **~3,200-4,200 total lines available to the system.**
The increase comes from THE FRIEND approach (deeper content for two NPCs) and from breaking out content categories that were previously lumped together. The actual writing workload is similar — I'm just being more precise about what goes where.
---
## 7. Concrete Asks and Open Questions
### Asks (actions needed from specific people):
| Ask | For Whom | Urgency |
|-----|----------|---------|
| Lock the Dual Lens Guide draft — this is the single biggest blocker | Paula | Immediate |
| Provide slang/idiom guide for Sova (5-10 colloquialisms, register rules) | Miri | High |
| Confirm bar name: "The Last Shift" / "Lera's" dual naming? | Miri | Quick answer |
| Confirm logistics hub name: "Sova Transit Freight Terminal" / "The Terminal"? | Miri | Quick answer |
| Define knowledge state vocabulary for monologue prerequisites | Gestalt + Dudley | High |
| Confirm or modify YAML format with my dual_lens cross-reference proposal | Gestalt | Medium |
| Confirm separate monologue files per character per location (not one file with character tags) | Gestalt | Medium |
| Sign off on THE FRIEND assignments (Kael for smuggler, Lera for detective) | Paula | High |
| Visual Grammar doc for my environmental text constraints (character limits, display rules) | Araminta | Medium |
### Open questions I can't answer alone:
1. **What does the generation pass actually do?** D-028 says "write 10, generate 40." But WHO generates? An LLM? A template-based system? Rule-based variation? I need to know because it affects how I write base lines. If the generator is an LLM, I need to write lines that are style-strong enough to anchor generation. If it's rule-based, I need to write lines with clear substitution patterns.
2. **How does the previewer handle THE FRIEND's contradiction arc?** The previewer (#193) needs to simulate a SEQUENCE of interactions, not just single-line filtering. For THE FRIEND, I need to preview: "Meeting 1, the player gets surface lines. Meeting 3, they get real lines. Meeting 5, they get the contradiction. Meeting 6, post-discovery lines." Can the previewer handle temporal progression? If not, I'm testing the most important content blind.
3. **Audio timing with monologue.** Jeroen confirmed a monologue chime in the audio set. When does it fire relative to the monologue text? Before? Simultaneous? Does it interrupt ambient audio or layer over it? I need this for writing rhythm — if there's a chime, my first monologue word needs to land AFTER the chime registers. That means the first word shouldn't be the important one.
---
## 8. The Wiki Taxonomy
Jeroen says a full wiki taxonomy must be established NOW. From a copywriting perspective, here's what the taxonomy needs to support my work:
### Categories I need to reference while writing:
| Category | Why I Need It | Examples |
|----------|---------------|---------|
| **Characters** | Every NPC I write dialogue for needs a canonical entry | Kael Davan, Lera Sessik, Voss, Torek Lintar |
| **Locations** | Every location-entry monologue references a place by name | Sova Transit District, The Last Shift, The Terminal |
| **Factions / Organizations** | Institutional references in dialogue and monologue | Lattice Commission, Concord Assembly, Syndic logistics consortium |
| **Technology** | Characters reference tech casually — I need consistent terminology | Lattice, Meridian, span gate, neural insert, Severance tech |
| **Star Systems** | Background references in news ticker and NPC dialogue | Krenn System, gate routes, planetary references |
| **Cultural Concepts** | Social norms, religions, philosophies characters reference | Unbound, Guardians/Severance, re-embodiment |
| **Contraband Types** | What the ring is actually smuggling — I need to write around it | Unlicensed lattice components, Severance tech, off-manifest biologicals |
**Miri should own the taxonomy structure. Qatux should maintain it.** I'm a consumer of the wiki, not a producer — but I need it to exist before I write 1000+ lines that reference setting elements.
**Minimum viable wiki for my purposes:** A single document with canonical names, brief definitions, and usage notes for each entry. Not a full encyclopedia — a reference card. "Lattice: neural implant technology. Everyone has one unless Unbound. Smuggler has Baseline tier. Detective has Augmented tier. Colloquial: 'lattice,' 'insert,' 'overlay.'" That's enough for me to write consistently.
---
## 9. Summary: The Content Plan
**Write THE FRIEND first. Scale from there.**
The project lead's directive reshapes the content approach from bottom-up (templates first, NPCs later) to quality-first (one production NPC proves the pipeline, then scale). This is the right call. Here's the plan in three sentences:
1. **Now:** Tag taxonomy smoke test, environmental text templates, news ticker draft. No dependencies. Start writing today.
2. **Next:** Voice kits and opening hooks as soon as Paula's Dual Lens Guide lands. THE FRIEND content packs immediately after.
3. **Then:** Validate THE FRIEND through the previewer. If it works, scale to all 15 NPCs and three content packs. If it doesn't, we learn what's broken before we've written 1000 lines.
Scaffold. Validate. Scale. Same three words from Round 1. THE FRIEND is the validation step.
---
*Mellanie out. Give me the voice, give me the friend, and I'll give you the words.*
@@ -0,0 +1,686 @@
# Round 2 — Miri's Worldbuilding Synthesis
**Agent:** Miri (Worldbuilder & Setting Designer)
**Date:** 2026-02-11
**Workshop:** v0.1 Content Gap Analysis — Round 2
**Input:** All 6 Round 1 outputs (Mellanie, Paula, Araminta, Gestalt, Ozzie, Miri)
---
## Part 1: The Krenn System Milestone
Jeroen has flagged this and he's right to: **Sova Transit District in the Krenn System is the first concrete, named star system in The Settled Reach.** Everything before this was structural — factions, technology tiers, gate network topology. Sova is where the setting stops being architecture and starts being a *place*.
This matters because every decision we make about Krenn sets precedent. The naming conventions, the cultural texture, the economic model, the institutional presence — whatever we establish here becomes the reference point for every system we build afterwards. "Is this consistent with how we did Krenn?" will be the first question for every future location.
Let me check my Round 1 Sova brief against what the team needs, informed by their Round 1 outputs.
---
## Part 2: How Sova Serves the Team (Cross-Referencing Round 1 Feedback)
### For Mellanie — Texture, Not Lore
Mellanie asked for five specific things (Round 1, Layer 3): smells, slang, wall decoration, ambient sound, local complaints. Let me check what my Round 1 provided and fill the gaps.
| Mellanie's Ask | What I Provided (Round 1) | What's Still Missing |
|---|---|---|
| **Smells** | Industrial lubricant, recycled air, cooking, span gate ozone | Covered. Mellanie can write from this. |
| **Slang** | Naming conventions (Kael, Voss, Drin, etc.), first-name-primary culture | **Missing: occupational slang.** Do dock workers say "shift" or "rotation"? "Credits" or a local term? "Container" or "pod" or "crate"? Need a 15-word slang glossary. |
| **Wall decoration** | Bilingual signage (Concordat Standard + Krenn vernacular), hand-lettered informal signs | **Missing: non-institutional decoration.** Is there graffiti? Stickers? Shift change artwork? Personal touches on lockers? The *human mark* on the institutional surface. |
| **Ambient sound** | Span gate hum, cargo machinery, ventilation, bar clinks | Covered. Ozzie wants audio files; at minimum these descriptions feed monologue. |
| **Local complaint** | Implied (economic pressure, tight-enough-to-be-tempting wages) | **Missing: a specific, named grievance.** Every community has one. Suggestion: the ventilation in Sector 3 has been unreliable for months. Station maintenance says it's on the list. Everyone mentions it. It's the universal safe topic — and for the detective, it's useful: people who are talking about ventilation are *not* talking about something else. |
**Action item: Write a "Sova Texture Appendix" — 1 page covering slang glossary (15-20 terms), informal decoration details, the local complaint, and any other sensory details Mellanie needs. This unblocks her environmental text and monologue work.**
### For Paula — Economic Engine and NPC Motivation
Paula's Round 1 nailed the motivational chain: Station Economics -> Employment Pressure -> Individual Desperation -> Criminal Opportunity -> Social Complicity. My Round 1 Sova brief provides the economic engine (freight-based, steady-but-tight wages, Commission presence intermittent). Let me validate her specific requests:
| Paula's Need | Status |
|---|---|
| The economic squeeze — what makes legitimate life just hard enough | **Covered.** "Comfortable enough to be complacent, tight enough that an extra income source is tempting." |
| The interdependencies — who benefits from the grey economy | **Partially covered.** My Round 1 notes that the bar benefits, that flat NPCs deliberately don't ask. Need to make this more explicit: the *community's immune system* framing (Paula's phrase) needs a concrete list of who benefits and how. |
| The recent pressure point — what changed recently | **Covered.** Three triggers: Commission liaison rotation (3 months), increased freight volume (6 weeks), detective arrival (2 weeks). |
Paula's relationship web (15 NPCs, 7 triangles) is excellent architecture. My Round 1 NPC name suggestions (Kael, Voss, Lera, Torek, Drin, Maret) need to map onto her NPC-A through NPC-O structure. Let me do that explicitly:
**Proposed Name Mapping (Miri names -> Paula's structure):**
| Paula's ID | Role | Miri's Suggested Name | Notes |
|---|---|---|---|
| NPC-A | Shift Supervisor (Hub) | **Voss** | Authority figure. Surname usage by subordinates: "Supervisor Voss" or just "Voss." |
| NPC-B | Logistics Worker 1 (Hub, Ring bridge) | **Kael Davan** | The smuggler's closest colleague. First-name basis. |
| NPC-C | Logistics Worker 2 (Hub, new hire) | **Resha** | New, compact name. Slightly softer than the Krenn norm — could suggest off-system origin, which is *why* they ask too many questions. They haven't internalized "mind your business." |
| NPC-D | Dock Inspector (Hub, Bar bridge) | **Torek Lintar** | Reassigned from my Round 1 "getting sloppy" role to the compromised inspector. Same name works — Torek is the kind of name that sounds exhausted. |
| NPC-E | Maintenance Tech (Hub, flat) | **Drin** | Single name. The type who's been here long enough that nobody uses a surname. |
| NPC-F | Bar Owner (Bar, Ring bridge) | **Lera Sessik** | Reassigned from bartender to owner (Paula's structure has the owner as the key figure). Lera works — established, observant, careful. |
| NPC-G | Off-duty Security (Bar, Hub bridge) | **Harek** | New name. Compact, military-adjacent. Someone who sits at the bar with the posture of a person who's technically off-duty. |
| NPC-H | Regular / Teacher-Family (Bar) | **Maret Korr** | Reassigned from ring-adjacent freight scheduler to the worried partner. Maret is the name of someone with a life outside the docks — domestic, personal, the mundane anchor. |
| NPC-I | Bartender (Bar, flat) | **Sess** | Short, functional. Nickname from a longer name nobody uses. The kind of name that means "I've been behind this bar for years." |
| NPC-J | Drifter / New Arrival (Bar, flat) | **No fixed Krenn name** | If they're new, they might have a different naming convention — could be from a different system. This is itself a tell. Suggestion: **Olin** — slightly longer vowel, not Krenn-standard. |
| NPC-K | Ring Leader (Ring, Bar bridge) | **Devra** | New name. Needs to sound capable, not theatrical. Devra is compact, decisive. A name that works as a legitimate business operator and a criminal coordinator. |
| NPC-L | Courier (Ring, Hub bridge) | **Renn** | Short, kinetic. A name that moves. |
| NPC-M | Fence/Buyer (Ring, external) | **Off-system name** | Not Krenn convention. Suggestion: **Sabel** — slightly different phoneme pattern. External contacts should *sound* external. |
| NPC-N | Ring Member, wavering (Ring) | **Pell** | Small, vulnerable. A name that sounds like it could break. |
| NPC-O | Lookout/Runner (Ring, flat) | **Tav** | Clipped. Young. A name with no history yet. |
Setting note — 15 names following the Krenn convention (compact, consonant-heavy, first-name-primary) with deliberate breaks for off-system characters. The naming itself is worldbuilding: when the detective hears "Sabel" among all these Krenn-standard names, their trained instinct should flag the phoneme difference. The smuggler already knows Sabel is from outside — it's just a name to them.
### For Araminta — Visual Framework
Araminta's spatial layout work (floor plans, sightline diagrams) needs setting constraints from me. My Round 1 covered the general feel (mid-Reach, 40 years old, layered construction), but she needs specifics:
| Spatial Requirement | Setting Constraint |
|---|---|
| Logistics Hub layout | Modular prefab base, retrofitted partitions. Regular grid in the main bay, irregular in older back sections. At least one area where wall layers create hidden space between the original prefab shell and the interior partition. |
| Bar layout | Converted from an older use (originally a maintenance staging area?). The irregular layout is structural, not decorative — the booths were built into spaces that already existed. The back room is a genuine maintenance access that Lera has "adopted." |
| Smuggling spaces | NOT a dedicated room. Repurposed infrastructure — a maintenance corridor between two sections of the logistics hub where the old and new construction don't quite meet. Access through a service hatch in the break room area. The ring didn't build this space; they *found* it. |
| Transition zones | The corridor between the hub and the bar district is a chokepoint — everyone who goes from work to drinks passes through the same 40 meters of corridor. This is where the smuggler notices who's heading where, and where the detective can observe patterns. |
Gestalt's Layer 3 note about spatial information asymmetry requirements (publicly accessible area with hidden back, area with smuggler-natural-access, cross-template chokepoint) is satisfied by this layout.
### For Gestalt — Setting Tags Validated
Gestalt's line pool format (YAML, 6 structural tags, 3 content tags) integrates cleanly with my setting-grounded tag proposals from Round 1. Cross-referencing:
| Miri's Setting Tag | Maps to Gestalt's Schema | Notes |
|---|---|---|
| `lattice_tier` (baseline/augmented) | Could be a `character` filter or a `prerequisite` | Determines what the character's overlay shows. Detective's augmented lattice feeds different `observe_npc` monologue. |
| `shift_phase` (on_shift/off_shift/transition) | Maps to `situation` (routine/working/social) | Setting-grounded version of the same concept. Gestalt's taxonomy works; I'd add `shift_transition` as a situation value — that's when things happen in a freight district. |
| `district_familiarity` (local/newcomer) | Maps to `situation` (first_meeting vs. repeated_visit) | Already captured in Gestalt's situation taxonomy. |
| `institutional_context` (civilian/commission/syndic) | Subset of `access` tier | The detective registers as `authority` *because* of their Commission lattice signature. This is the setting-grounded explanation for why the access tier system works in-fiction. |
**Setting validation: the tag taxonomy is consistent with established worldbuilding. No conflicts.**
### For Ozzie — The First 30 Seconds
Ozzie wants five things in the first 30 seconds: sound, movement, news ticker, something out the window, a named NPC. Let me check what the setting provides for each:
1. **Sound:** The span gate hum. This is the "you're on a space station" signal, delivered continuously. Setting note — the hum *changes pitch* with traffic volume. Morning shift startup: it rises. Late night: it settles. The change is subtle enough that residents ignore it, but specific enough that monologue can reference it.
2. **Movement:** NPCs heading to shift. The logistics hub runs on freight schedules — people move at predictable times. Game start for the smuggler should be just before shift change: people walking past, greeting each other, the district waking up. Game start for the detective should be mid-morning: the district is already active, and the detective is arriving into an established rhythm.
3. **News ticker:** Covered in my Round 1 Layer 8. Three types: Concord Assembly proceedings (boring), freight market prices (relevant), Commission notices (pointed). Ozzie's specific suggestion ("Dock 7 maintenance: scheduled closure 14:00-18:00" / "Security reminder: report unregistered cargo") is exactly right and setting-consistent.
4. **Something out the window:** Setting note — Sova Transit District is on a station. There should be at least one viewport or observation area showing the Krenn system's primary: a G-type star, slightly cooler than Sol, giving a faintly amber quality to natural light. The span gate terminal area has an observation gallery above the freight bays where you can see the gate itself — a ring structure that occasionally flickers with transit energy. This is the "you are in space" moment.
5. **A named NPC within 10 seconds:** For the smuggler: Kael, walking the same direction, same shift. "There's Kael. Early for once." For the detective: an unnamed dockworker who becomes named through institutional query — "Dock worker, second shift. ID: Drin. No flags." The detective's first NPC contact is *mediated by their insert*, not personal familiarity.
---
## Part 3: Contraband Resolution
I proposed in Round 1 that the primary smuggled cargo should be **unlicensed lattice components** — aftermarket neural lattice modifications that bypass Commission regulation. After reading all Round 1 outputs, let me pressure-test this.
**Does "unlicensed lattice components" work for each team member's needs?**
| Team Member | Their Need | Does Lattice Contraband Serve It? |
|---|---|---|
| **Paula** | Moral ambiguity — the smuggling should be sympathetic | **Yes.** People want better lattice access than Commission-regulated channels provide. The ring isn't moving weapons; they're moving *capability*. The moral question ("Is it wrong to give people better brain implants?") is genuinely ambiguous. |
| **Mellanie** | Writable dialogue — NPCs should be able to discuss the cargo in ways that feel natural | **Yes.** Dock workers can reference "restricted components," "aftermarket inserts," "upgrade kits." The vocabulary is concrete and setting-specific. Not drugs, not weapons — tech. Workers might personally want some of this cargo. |
| **Gestalt** | Mechanical relevance — the contraband should connect to game systems | **Yes.** Lattice components connect to the lattice/insert system (D-013, D-017). A smuggled lattice upgrade could theoretically *change what the player can perceive*. This is a gameplay hook for future development: the smuggler could acquire enhanced perception through contraband, while the detective has it through institutional issue. |
| **Ozzie** | Emotional weight — the player should feel something about what's being smuggled | **Partially.** Lattice components are abstract. Need to ground them: a specific NPC who wants a lattice upgrade for their child (medical necessity, can't afford Syndic pricing) or a worker whose failing lattice could be replaced with aftermarket components but can't get Commission clearance. The *people who need the product* make the product emotionally real. |
| **Araminta** | Visual representation — contraband should be representable at boxes-with-labels fidelity | **Yes.** Cargo containers. Manifest discrepancies. Nothing that requires special visual treatment. |
**Contraband decision: Unlicensed lattice components as primary cargo holds up.** Secondary cargo (Severance counter-surveillance tech, off-manifest biologicals) adds variety without changing the core moral dynamic.
**One addition:** The specific lattice components being smuggled should include **medical-grade neural lattice replacements** diverted from Syndic supply chains. This adds a humanitarian dimension: some of this cargo is going to people whose lattices are degrading and who can't afford institutional replacement. The ring isn't just moving luxury upgrades — it's also moving healthcare. This deepens the moral ambiguity and gives NPCs like Maret (NPC-H) a personal stake: maybe their aging parent needs a lattice replacement they can't afford through legitimate channels.
---
## Part 4: Missing Tickets for Worldbuilding Work
After reviewing all Round 1 outputs, here are the worldbuilding tickets that don't exist yet:
| Proposed Ticket | Priority | Type | Rationale | Depends On |
|---|---|---|---|---|
| **Sova Texture Appendix** (slang glossary, informal decoration, local complaints, sensory details) | Critical | Story | Mellanie's monologue and environmental text are blocked without this. | #189 (Cultural generation guide) — this is a sub-deliverable |
| **Krenn System Profile** (star type, settlement history, political position, economic role) | High | Story | The wiki's first star system entry. Establishes the template for all future systems. | Nothing — can start immediately |
| **Sova Station Profile** (station type, population, districts beyond the Transit District, governance) | High | Story | NPCs reference the wider station. Dialogue needs to know what's "off-district." | Krenn System Profile |
| **Contraband Specification** (primary: lattice components, secondary: Severance tech, biologicals; with supply chain details) | High | Story | Paula's NPC motivations and Mellanie's dialogue both need to know what's being smuggled and why people want it. | Nothing — this document resolves the open question |
| **Detective Institutional Chain of Command** (who assigned the investigation, stated mandate, political pressures) | High | Story | Paula flagged this. The detective's narrative arc requires knowing who they report to and what constraints they operate under. | Krenn System Profile (jurisdiction questions) |
| **Meridian Coverage Map for Sova Transit** (where coverage is strong, where it degrades, dead spots the ring exploits) | Medium | Story | Affects detective investigation capability, smuggler operational planning, and NPC behavior (off-Meridian communication in dead spots). | Sova Station Profile |
| **Off-Station Connections Brief** (who receives the contraband, the coordinator's location, external contact details) | Medium | Story | NPC dialogue references off-station contacts. Need enough detail for consistency without building full external locations. | Contraband Specification |
| **Span Gate Transit Schedule** (how often the gate cycles, peak times, maintenance windows) | Medium | Story | The freight rhythm is the district's heartbeat. NPC routines depend on it. The ring's operational timing depends on it. | Nothing |
| **Observation Gallery / Viewport Description** (what you see looking out at the Krenn system) | Low | Story | Ozzie's "something out the window" — the visual anchor that says "space station." | Krenn System Profile |
---
## Part 5: Cultural and Environmental Detail Priorities
Reading all six Round 1 outputs, the team converges on one point: **the setting details that matter most are the ones that differentiate the two characters' experience of the same place.** Atmosphere is nice; asymmetric atmosphere is the game.
**Priority order for cultural/environmental details:**
1. **Details that read differently per character** (highest priority)
- The span gate schedule board: routine data for the smuggler, investigation material for the detective
- Cargo manifests: familiar paperwork vs. potential evidence
- NPC naming and greeting conventions: the smuggler *knows* everyone's name; the detective has to *learn* them
- Institutional signage: background noise for the smuggler, professional context for the detective
2. **Details that establish presence** (high priority)
- The span gate hum (Ozzie's "sound first")
- The news ticker (worldbuilding in 30 words)
- The local complaint (ventilation in Sector 3)
- Food and drink specifics (what the bar serves, what the food vendors sell)
3. **Details that feed investigation** (high priority)
- Meridian dead spots where off-channel communication is possible
- Architectural secrets (spaces between wall layers, repurposed maintenance corridors)
- Shift transition timing (when oversight is thinnest)
- Spending pattern indicators (what "living beyond your means" looks like in Sova)
4. **Details that build attachment** (medium priority)
- Community events (the bar's regular card game, shift-end rituals)
- Interpersonal customs (how Krenn System people express trust, discomfort, affection)
- Personal spaces (what a locker area looks like, how people personalize their workstations)
5. **Lore depth** (low priority for v0.1)
- Krenn System settlement history (establishes depth but doesn't directly serve gameplay)
- Broader Reach political context (Concord Assembly, Commission politics — background texture)
- The Unbound presence in the district (mentioned in Round 1, not load-bearing for v0.1)
---
## Part 6: Dependencies Between Setting Work and Content/Character Work
Here's the dependency chain with setting work highlighted:
```
IMMEDIATE (no dependencies):
Contraband Specification (Miri) ──> NPC motivations (Paula)
Krenn System Profile (Miri) ──> Wiki foundation
Span Gate Transit Schedule (Miri) ──> NPC routine design (Paula/Gestalt)
FAST FOLLOW:
Sova Station Profile (Miri) ──> Off-station references in dialogue (Mellanie)
Sova Texture Appendix (Miri) ──> Environmental text (Mellanie)
──> Monologue sensory details (Mellanie)
Detective Chain of Command (Miri+Paula) ──> Detective character build (#181)
──> Detective voice kit (Mellanie)
PARALLEL WITH CONTENT WORK:
Meridian Coverage Map (Miri) ──> Investigation mechanics (Gestalt/Tyre)
Off-Station Connections (Miri) ──> Ring NPC dialogue consistency (Mellanie)
Observation Gallery (Miri) ──> First-30-seconds experience (Araminta/Ozzie)
```
**The critical path for content:** Paula's Dual Lens Guide and my Sova setting work are the two roots. They can proceed in parallel. Mellanie is blocked until both exist. The contraband specification is the fastest-to-resolve blocker — I can write it now and unblock Paula's NPC motivation work immediately.
---
## Part 7: The Wiki Taxonomy
This is the big one. Jeroen has flagged this as non-negotiable: we need a complete, future-proof wiki structure established now, while we're building the first entry. It must scale from v0.1 (one system, one station, 15 NPCs) to the full game (hundreds of systems, thousands of NPCs).
### Design Principles for the Wiki
1. **Game-first, not encyclopedia-first.** The wiki exists to serve the game's content pipeline. Every entry should be writable by a team member and consumable by the game systems (even if that consumption is indirect — an NPC profile feeds dialogue authoring, which feeds YAML content packs).
2. **Hierarchical with cross-references.** Star systems contain stations contain districts contain locations. But NPCs move between locations. Factions span systems. Technology is everywhere. The hierarchy is spatial; the cross-references are relational.
3. **Metadata-rich.** Every entry has structured frontmatter (YAML) that enables programmatic queries. "Give me all NPCs in the Krenn System with a smuggling connection" should be answerable from metadata alone.
4. **Template-driven.** Each category has a template. New entries follow the template. This ensures consistency and tells authors exactly what information is required vs. optional.
5. **Scale-tested.** The structure must work with 1 star system and with 500. No nesting depth that becomes unmanageable. No category that becomes a dumping ground.
### Proposed Wiki Directory Structure
```
wiki/
_templates/ # Entry templates (one per category)
star-system.md
station.md
district.md
location.md
character.md
faction.md
technology.md
cultural-group.md
lore-entry.md
contraband-type.md
institution.md
species.md
event.md
concept.md
star-systems/ # Top-level spatial hierarchy
krenn/
_index.md # Krenn System profile
stations/
sova/
_index.md # Station Sova profile
districts/
transit-district/
_index.md # Sova Transit District profile
locations/
logistics-hub.md # The Terminal
the-last-shift.md # The bar
maintenance-corridor-7b.md # Smuggling space
observation-gallery.md
commission-kiosk.md
characters/ # All named characters, flat structure
kael-davan.md
voss.md
lera-sessik.md
torek-lintar.md
drin.md
maret-korr.md
resha.md
harek.md
sess.md
olin.md
devra.md
renn.md
sabel.md
pell.md
tav.md
factions/ # Political and institutional bodies
concord-assembly.md # The galactic legislature
lattice-commission.md # Technology regulatory body
syndics/
_index.md # Syndic overview
# Individual Syndics as they're created
guardians-of-severance.md # Counter-surveillance movement
the-unbound.md # Lattice refusers
technology/ # Technology categories
neural-lattice/
_index.md # Lattice overview
tiers/
baseline.md
augmented.md
enhanced.md
transcendent.md
meridian.md # Information network
span-gates.md # Local gates
horizon-gates.md # Interstellar gates
re-embodiment.md # Death/resurrection technology
severance.md # Counter-surveillance tech
cultural-groups/ # Cultures, subcultures, movements
krenn-system-culture.md # First entry
# Future: other system cultures, station subcultures
contraband/ # Illegal/restricted goods
unlicensed-lattice-components.md
severance-equipment.md
off-manifest-biologicals.md
institutions/ # Formal organizations (non-faction)
# Courts, academies, services, etc. as needed
species/ # Non-human entities
# As defined — currently placeholder category
lore/ # Historical events, concepts, cosmology
the-interstitium.md # Gate medium / between-space
settlement-eras/
_index.md
# Individual era entries
founders.md # Progenitor civilization
builders.md # Gate builders
concepts/ # Game-mechanical concepts with lore basis
information-asymmetry.md # How the game's core mechanic is grounded in setting
lattice-surveillance.md # How monitoring works in-universe
severance-culture.md # Counter-culture movement
_meta/ # Wiki maintenance files
naming-conventions.md # Per-system naming rules
style-guide.md # Writing conventions for wiki entries
cross-reference-index.md # Auto-generated or maintained
changelog.md # Wiki revision history
```
### Entry Metadata Schema (YAML Frontmatter)
Every wiki entry has structured frontmatter. Here are the schemas per category:
#### Star System Entry
```yaml
---
type: star-system
id: krenn # Unique slug
name: Krenn System
classification: mid-reach # core | mid-reach | frontier | deep-frontier
star_type: G3V # Stellar classification
settlement_age: ~180 years # How long since first settlement
population: ~2.4 million # System-wide estimate
governance: concord-assembly # Primary governing body
gate_connections: # Horizon/span gate links
- target: [system-id]
type: horizon # horizon | span
economic_base: [logistics, mining] # Primary industries
meridian_coverage: standard # comprehensive | standard | sparse | minimal
commission_presence: moderate # heavy | moderate | light | nominal
cultural_notes: "Working-class pragmatic. Values reliability and minding your business."
tags: [v0.1, playable, mid-reach]
status: canonical # canonical | draft | proposed
created: 2026-02-11
updated: 2026-02-11
---
```
#### Station Entry
```yaml
---
type: station
id: sova
name: Station Sova
system: krenn
classification: logistics-hub # Functional type
construction_era: mid-settlement # When built relative to system history
population: ~12,000
districts:
- id: transit-district
name: Sova Transit District
type: commercial-logistics
governance: station-administrator # Local governance type
gate_access:
- type: span
connects_to: krenn-planetary-depot
traffic: freight-primary
notable_features:
- "Gate-adjacent logistics hub"
- "Mixed-era construction"
tags: [v0.1, playable]
status: canonical
created: 2026-02-11
updated: 2026-02-11
---
```
#### District Entry
```yaml
---
type: district
id: sova-transit-district
name: Sova Transit District
station: sova
system: krenn
age: ~40 years
construction: prefab-modular-retrofitted
economic_engine: freight-logistics
atmosphere: quotidian-with-undertow # One-phrase mood descriptor
population: ~800 (workers + residents)
meridian_coverage:
logistics_hub: strong
bar_district: strong
older_sections: degraded
maintenance_corridors: minimal
commission_presence: intermittent # permanent | intermittent | minimal | none
locations:
- id: logistics-hub
name: The Terminal
type: workplace
- id: the-last-shift
name: The Last Shift
type: social-venue
- id: maintenance-corridor-7b
name: Corridor 7B
type: infrastructure
hidden: true
key_npcs: [kael-davan, voss, lera-sessik, torek-lintar, drin, maret-korr]
cultural_group: krenn-system-culture
local_issues:
- "Ventilation reliability in Sector 3"
- "Commission liaison rotation gap"
tags: [v0.1, playable, vertical-slice]
status: canonical
created: 2026-02-11
updated: 2026-02-11
---
```
#### Location Entry
```yaml
---
type: location
id: the-last-shift
name: The Last Shift
district: sova-transit-district
station: sova
system: krenn
location_type: social-venue # workplace | social-venue | residential | infrastructure | commercial | institutional
template: bar # Game template this instantiates
capacity: 30 # Max occupancy
owner_npc: lera-sessik
regular_npcs: [kael-davan, torek-lintar, drin, maret-korr, harek]
operating_hours: "14:00 - 02:00 station time"
atmosphere: "Mid-grade bar. Not upscale, not a dive. The kind of place where working people go after shift."
architectural_notes: "Converted maintenance staging area. Irregular layout from pre-existing structure. Long bar, scattered tables, semi-private corner booth."
sensory:
sound: "Conversation, glass on surfaces, Meridian music feed"
smell: "Recycled air with cooking undertones"
lighting: "Warm, cheaper fixtures, irregular"
temperature: "Climate-controlled, comfortable"
signage:
- "Lera's -- Cold Drinks, Hot Food, No Questions"
- Shift schedule board (community use)
tags: [v0.1, social-site, bar-template]
status: canonical
created: 2026-02-11
updated: 2026-02-11
---
```
#### Character Entry
```yaml
---
type: character
id: kael-davan
name: Kael Davan
system_origin: krenn
cultural_group: krenn-system-culture
age: 34
role: dock-worker # Occupational role
employer: sova-logistics-consortium # Who they work for
home_district: sova-transit-district
entanglement: entangled # flat | triangle | entangled
triangle_ids: [hub-new-hire, ring-power-dynamic]
smuggling_role: ring-member # null if not involved
lattice_tier: baseline
relationship_to_smuggler: close-colleague
relationship_to_detective: person-of-interest
personality_summary: "Reliable, protective, loyal to people rather than institutions. The smuggler's anchor."
want: "Protect the operation and the people in it"
secret: "Smuggling ring member, mid-level"
tolerance_threshold: moderate
contentment: moderate-low
daily_routine:
- "Morning shift at logistics hub"
- "Break room during midday"
- "The Last Shift after shift end"
- "Occasional late-night ring operations"
voice_notes: "Direct, practical. Uses first names. Speaks in short declarative sentences. Doesn't waste words."
tags: [v0.1, hub-npc, ring-npc, bridge-npc]
status: canonical
created: 2026-02-11
updated: 2026-02-11
---
```
#### Faction Entry
```yaml
---
type: faction
id: lattice-commission
name: The Lattice Commission
scope: reach-wide # reach-wide | regional | system | local
governance_role: regulatory # regulatory | legislative | executive | military | commercial | religious | subversive
mandate: "Regulation of neural lattice technology, certification of lattice tiers, enforcement of lattice compliance standards"
headquarters: [system-id] # TBD
structure: bureaucratic-hierarchical
public_perception: "Necessary but intrusive. The tax authority of neural technology."
player_relevance:
smuggler: "The adversary. Commission regulation is what makes lattice smuggling profitable."
detective: "The employer (or contractor). Institutional backing and constraints."
key_personnel: [] # As defined
sub_organizations: [] # Regional offices, special divisions
cultural_impact: "Commission presence shapes social behavior — people modulate what they say when Commission-tagged individuals are present."
tags: [institution, regulatory, reach-wide]
status: canonical
created: 2026-02-11
updated: 2026-02-11
---
```
#### Technology Entry
```yaml
---
type: technology
id: neural-lattice
name: Neural Lattice
category: biotechnology # biotechnology | infrastructure | communication | transportation | weaponry | surveillance
prevalence: universal # universal | common | specialized | rare | unique
access:
baseline: "Standard-issue, factory default"
augmented: "Institutional or premium, enhanced capability"
enhanced: "Specialist, rare, significant capability"
transcendent: "Theoretical or post-human"
regulation: commission-controlled
contraband_relevance: "Unlicensed components bypass Commission certification, providing enhanced capability without institutional approval"
gameplay_relevance: "Determines perception modes, insert overlay capability, Meridian access depth"
setting_notes: "The lattice is to citizens of the Reach what smartphones are to us — ubiquitous, always-on, unreflectively used. Its absence (the Unbound) is more notable than its presence."
tags: [core-tech, perception, ubiquitous]
status: canonical
created: 2026-02-11
updated: 2026-02-11
---
```
#### Contraband Entry
```yaml
---
type: contraband
id: unlicensed-lattice-components
name: Unlicensed Lattice Components
category: technology # technology | biological | information | material | cultural
legality: restricted # banned | restricted | controlled | gray-market
severity: moderate # severe | moderate | minor
commission_classification: "Category 3 violation — unauthorized modification of certified neural technology"
supply_chain: "Aftermarket manufacturers (often Syndic-adjacent) -> freight networks -> local distributors -> end users"
demand_drivers:
- "Enhanced capability beyond Baseline tier at affordable price"
- "Medical-grade replacements for degrading lattices at below-Syndic pricing"
- "Custom modifications for specific occupational needs"
moral_dimension: "These components serve real needs — medical, professional, personal autonomy. The Commission's regulatory monopoly prices many citizens out of legitimate access."
detection_methods: "Manifest scanning, lattice signature analysis, physical inspection"
evasion_methods: "Doctored manifests, scanner blind spots, shift-transition timing, off-Meridian coordination"
gameplay_relevance: "Primary contraband for v0.1 smuggling scenario. Establishes moral ambiguity: the player is smuggling access, not weapons."
tags: [v0.1, smuggling, lattice, moral-ambiguity]
status: canonical
created: 2026-02-11
updated: 2026-02-11
---
```
### How the Wiki Scales
| Scale | v0.1 | v0.5 | v1.0 | Full Game |
|---|---|---|---|---|
| Star systems | 1 (Krenn) | 3-5 | 10-20 | 100+ |
| Stations/worlds | 1 (Sova) | 5-10 | 30-50 | 500+ |
| Districts | 1 (Transit) | 5-15 | 50-100 | 1000+ |
| Characters | 15 | 50-100 | 300-500 | 5000+ |
| Factions | 5 | 8-12 | 15-20 | 30+ |
| Technology entries | 8-10 | 20-30 | 50-75 | 100+ |
| Contraband types | 3 | 8-12 | 20-30 | 50+ |
| Cultural groups | 1 | 5-10 | 20-40 | 100+ |
| Lore entries | 5-8 | 20-30 | 50-100 | 200+ |
**Scaling notes:**
- **Characters are flat, not nested under locations.** An NPC might move between systems over the course of the game. Their entry lives in `characters/` with location references in metadata, not under a specific station directory.
- **Star systems are the primary spatial hierarchy.** System -> station/world -> district -> location. This is four levels deep maximum. Future expansion adds *breadth* (more systems), not *depth* (more nesting levels).
- **Cross-references use IDs, not file paths.** When `kael-davan.md` references `sova-transit-district`, it uses the ID `sova-transit-district`, not a relative path. This means entries can be reorganized without breaking links.
- **The `_templates/` directory is the schema contract.** When Mellanie or Paula need to add an NPC, they copy `_templates/character.md`, fill in the frontmatter and prose, and save it in `characters/`. The template tells them exactly what's required.
- **Tags enable cross-cutting queries.** "Show me all `v0.1` content" or "all entries tagged `smuggling`" or "all `canonical` characters in `krenn`" — these are tag queries, not directory traversals.
### Wiki Governance
| Rule | Rationale |
|---|---|
| **Miri owns the wiki structure.** New categories, template changes, and structural decisions go through me. | Consistency requires a single maintainer for the schema. |
| **Anyone can create entries** within their domain, following templates. | Paula creates character entries. Mellanie adds voice notes. Gestalt annotates gameplay relevance. |
| **Every entry has a `status` field.** `proposed` -> `draft` -> `canonical`. | Prevents confusion about whether something is decided or speculative. Only `canonical` entries are treated as setting truth. |
| **The `_meta/naming-conventions.md` file is mandatory reading** before creating any named entity. | Name consistency is the most visible form of worldbuilding consistency. IP originality checks happen here. |
| **Cross-references must use valid IDs.** Dead links are caught by a validation script. | Referential integrity. We'll need a simple script that checks all ID references resolve. |
| **Lore entries explain WHY, not just WHAT.** Every lore entry must connect to gameplay relevance or setting texture. | Prevents lore bloat that serves nobody. If it doesn't affect gameplay or atmosphere, it doesn't need an entry yet. |
---
## Part 8: IP Originality Audit (Round 2)
After reading all Round 1 outputs, I'm doing a second IP pass on everything proposed:
| Element | Source Risk | Assessment |
|---|---|---|
| "The Last Shift" (bar name) | Generic working-class bar name | **Clear.** No franchise association. |
| NPC names (Kael, Voss, Lera, Torek, etc.) | Constructed for Krenn System | **Clear.** Checked against Hamilton (contemporary English), Banks (Culture names), Reynolds (Dutch/Germanic). No overlap. |
| Unlicensed lattice components as contraband | Setting-specific | **Clear.** "Aftermarket neural implant mods" is common SF but our specific lattice/Commission framework makes it original. |
| "The Arrangement" (smuggling ring name) | Generic, possibly echoes John le Carre | **Watch.** Not a direct copy, but le Carre uses similar understated espionage terminology. Acceptable for now — it's an in-universe informal name, not a title. If it starts feeling too spy-novel, we rename. |
| Krenn System naming convention | Constructed | **Clear.** Consonant-heavy, compact names don't map to any specific franchise. |
| The span gate hum as atmospheric element | Setting-specific | **Clear.** Gate hum is a natural consequence of the technology. No franchise owns "infrastructure makes noise." |
| "Quotidian-with-undertow" as mood descriptor | Literary, not franchise-specific | **Clear.** This is a design note, not in-universe text. |
| Paula's NPC relationship web structure | Narrative architecture | **Clear.** Triangle dynamics are a storytelling tool, not franchise IP. |
| The Commission as regulatory body | Setting-specific | **Clear.** "Government regulates neural technology" is a natural worldbuilding consequence. Checked against Eclipse Phase (Firewall is different), Altered Carbon (Protectorate is different). Our Commission's specific mandate is original. |
| Araminta's relationship-to-player color system | Game design, not worldbuilding | **Clear.** Standard game design technique. |
**No IP concerns flagged in Round 2.** The team is building on established original foundations. The Krenn System and Sova Transit District feel like our own.
---
## Part 9: Synthesis — What Happens Next
### Miri's Immediate Deliverables (ordered by dependency urgency)
| Deliverable | Priority | Unblocks | Est. Effort |
|---|---|---|---|
| 1. Contraband Specification | Critical | Paula's NPC motivations, Mellanie's cargo dialogue | Small — 1-2 pages, can write now |
| 2. Sova Texture Appendix | Critical | Mellanie's environmental text, monologue sensory content | Small — 1 page |
| 3. Wiki Structure + First Entries | Critical | Entire content pipeline's organizational foundation | Medium — structure is defined above; first entries are Krenn System, Station Sova, Sova Transit District |
| 4. Krenn System Profile | High | Wiki foundation, all downstream location entries | Medium — first wiki entry, sets template precedent |
| 5. NPC Name Finalization | High | Paula's relationship web, Mellanie's voice kits | Small — mapping in Part 2 above, needs team sign-off |
| 6. Detective Chain of Command | High | Paula's detective character build, detective voice kit | Medium — institutional worldbuilding required |
| 7. Span Gate Transit Schedule | Medium | NPC routine design, ring operational timing | Small — 1 page |
| 8. Meridian Coverage Map | Medium | Investigation mechanics, ring operational geography | Small — 1 page |
| 9. Off-Station Connections Brief | Medium | Ring NPC dialogue consistency | Small — 0.5 page |
### Key Dependencies Resolved
1. **Contraband question:** Resolved. Unlicensed lattice components as primary, with medical-grade neural replacements as the humanitarian dimension.
2. **NPC names:** Mapped to Paula's 15-NPC structure with setting-consistent Krenn System names.
3. **Sova serves all team needs:** Validated against every Round 1 participant's specific requirements.
4. **Wiki structure:** Proposed, with templates, metadata schemas, and governance rules.
### One Last Setting Note
Sova Transit District is a deliberately ordinary place. It's a freight hub where people work, drink, gossip, and try to get by. The extraordinary thing about Sova is not its setting — it's what happens when you look at it through the wrong eyes.
The smuggler sees home. The detective sees a crime scene. Neither is wrong. Both are incomplete.
That's the game. And that's why the setting work matters: if Sova doesn't feel real, the dual lens has nothing to refract.
---
*Setting note — Krenn System is now canonical. Sova is grounded. The wiki has a skeleton. Let's build.*
*Miri out.*
@@ -0,0 +1,452 @@
# Round 2: Ozzie — Player Experience Synthesis
## v0.1 Content Gap Analysis Workshop
**Agent:** Ozzie (Player Experience & Wow Factor)
**Date:** 2026-02-11
**Inputs:** All 6 Round 1 outputs + project lead direction on audio, THE FRIEND, color system, wiki
---
## Reactions to Round 1 Outputs
Before I get into the structured work, here's what hit me reading the other five.
### Miri: I'm IN
Sova Transit District. THE LAST SHIFT. The span gate hum. "Quotidian-with-undertow."
Miri, you gave me goosebumps. The setting brief is the single most important output from Round 1, because it turns every other agent's proposals from abstract to CONCRETE. When Mellanie talks about a dock worker greeting, I can now HEAR it in the corridors of Sova. When Paula designs the worried partner triangle, I can SEE H sitting alone at The Last Shift, watching the door.
The span gate hum as atmospheric anchor is EXACTLY right. That constant low vibration is our Nostromo air recycler, our Ceres spin-drum rumble. When it changes, that's a player moment. When it STOPS, that's a wow moment. We'll come back to this in audio.
**One thing that surprised me:** The contraband being lattice components. That's GENIUS for the moral ambiguity and I didn't see it coming. The smuggler isn't moving drugs or weapons. They're moving ACCESS. They're a Robin Hood with cargo manifests. That makes the detective's investigation morally complicated in a way that pure criminal enterprise wouldn't. It makes the player's SECOND playthrough — as the character who opposes this — emotionally devastating. "Oh. I was the bad guy last time? Or was I the bad guy THIS time?"
THAT'S the game.
### Paula: The Relationship Web Is Terrifying (In a Good Way)
Seven triangles. Fifteen NPCs. Every single one connected to at least two others with tension, dependency, or deception. The cross-template informant triangle (N-D-G) as the mechanism for the ring's unraveling is structurally perfect.
But here's what actually stopped me cold: **The Worried Partner triangle (H-B-F).** H doesn't know what their partner B does after hours. F reassures H while protecting the operation. B is oblivious to the anxiety they're causing. That's not a conspiracy mechanic. That's a HUMAN STORY. And the player who discovers it — whether as smuggler or detective — is going to feel something real.
Paula's mirror moments are also exactly what I was groping toward in Round 1 when I talked about "emotional divergence moments." Mirror 3 (The Worried Partner) and Mirror 4 (The Empty Corridor) are going to be the moments players tell their friends about.
**What aligned:** Paula and I converged independently on the idea that the emotional centerpiece is a relationship that gets contaminated by information. I called it THE FRIEND. She designed the structural web that makes THE FRIEND possible.
**What worried me (Round 1):** The Tier 1 full profiles are 1 page each. Five pages for five NPCs. That sounds like a lot but Paula's Layer 5 relationship web is SO detailed that it basically writes itself. I'm no longer worried about this being a bottleneck.
### Mellanie: The Line Counts Are Real
900-1,215 authored lines. ~3,000-3,600 after generation expansion. That's the content floor for a 30-minute session where the player encounters ~150-200 lines.
What I love about Mellanie's breakdown is the SPECIFICITY. She didn't say "we need dialogue." She said "15-20 greeting lines, filtered by access tier and relationship." She broke #190 into five concrete sub-deliverables (role voice kits, situation scripts, monologue hooks, environmental text, trait guide). She proposed the tag taxonomy BEFORE Gestalt did and they converged on nearly identical structures. That's confidence-building.
**What surprised me:** Mellanie's recommendation to DEFER audio and carry the atmosphere through text. She's not wrong that she CAN carry it. But — and this is why the project lead's decision matters — text-carried atmosphere is a backup plan, not the plan. With audio confirmed for v0.1, Mellanie's monologue load actually gets LIGHTER. The station hum carries ambient mood. Footsteps carry spatial presence. The monologue chime trains attention. Mellanie writes the CHARACTER. The audio carries the WORLD.
"Scaffold, validate, scale" is the right process. I trust her completely on the writing side.
### Araminta: Color = Relationship to Player
YES. This is the visual system that sells asymmetric information at MINIMUM fidelity.
The same NPC is green for the smuggler and teal for the detective. Same room, different visual reality. That's our core mechanic rendered in the cheapest possible way, and it WORKS.
The fog rendering spec (visible / fog-edge / hidden / remembered) is also load-bearing. The "remembered" state — desaturated, static snapshot, NPCs vanished — is the visual representation of "I was here, but things may have changed." That communicates information decay without a single word of text. When the player returns and sees that things HAVE changed, that's a discovery moment.
**What aligned:** Araminta and I both identified the same gap — the need for ONE signature visual element in the first 5 seconds. She's proposing to solve it through spatial composition (the bar feels different from the hub through room shape and density). I was thinking about a viewport showing stars. Both can work. Both should exist.
**What I'd push back on:** Araminta recommends deferring audio entirely. The project lead has overruled this. Audio is IN. Araminta's sound indicator visual spec is still needed — we'll want visual indicators for sounds at fog edge even WITH audio, because audio communicates "something's there" and visuals communicate "where."
### Gestalt: The Pipeline Is Ready for Content
The YAML line pool format is clean. The selection pipeline (access filter -> situation filter -> trust filter -> mood+topic weighting) is elegant. The monologue trigger taxonomy (9 trigger types) maps directly to authoring work.
Gestalt said something in Layer 6 that I want to amplify: **"Most tells in v0.1 will be TEXT, not visual. The monologue system IS the tell renderer."** This is exactly right. We can't animate fidgeting on colored rectangles. But we CAN write "Kael keeps checking the corridor before entering the back room" and that tells the player everything they need to know.
The line previewer (#193) also got flagged by both Gestalt and Mellanie as critical. I agree — it's not a content deliverable, it's a content QUALITY tool. Without it, we ship content that reads well in YAML and sounds dead in the game.
---
## Section 1: Missing Tickets for Player Experience Work
Reading all six Round 1 outputs, I'm tracking these gaps that don't have tickets and should:
### Tickets That Must Exist
| # | Title | Priority | Type | Rationale |
|---|-------|----------|------|-----------|
| NEW-1 | **THE FRIEND NPC — Smuggler version (full production)** | Critical | Story | One deeply authored NPC for the smuggler's playthrough. Full profile, full voice kit, full contradiction arc. Project lead confirmed: one production-level NPC per character. Emotional centerpiece of v0.1. |
| NEW-2 | **THE FRIEND NPC — Detective version (full production)** | Critical | Story | Same treatment for the detective. Different NPC, different relationship, different contradiction. Must hit the same emotional beats through a different lens. |
| NEW-3 | **Opening 5-minute content sequence (per character)** | Critical | Story | The first 20 monologue lines, the first named NPC encounter, the first news ticker glance, the first environmental text read. Tightly sequenced. This IS the first impression. Blocks all playtest feedback. |
| NEW-4 | **Audio asset set — minimum viable (6-8 files)** | High | Story | Station ambient, 3 location variants, footsteps, monologue chime. AI-generated via local model. See Section 4 below for full spec. |
| NEW-5 | **News ticker / announcement board content** | High | Story | 20-30 ticker lines for The Last Shift and the logistics hub. Cheapest wow-per-word in the project. |
| NEW-6 | **Diegetic insert flavor text (per character)** | Medium | Story | POI labels, status text, notification strings — different per character. The smuggler's insert says "The Last Shift." The detective's says "Licensed establishment — District 7." |
| NEW-7 | **Flat NPC "almost interesting" pass** | High | Story | The 4-5 flat NPCs each need: one memorable trait, one "seems important but isn't" line, and a visible routine. Without this, the investigation noise floor collapses. |
| NEW-8 | **First monologue surprise moment (per character)** | High | Story | The specific monologue line where the character notices something the player didn't. Must fire before minute 15. This is our signature mechanic in content form. Requires coordination between Paula (the observation), Mellanie (the line), and Gestalt (the trigger). |
| NEW-9 | **Spatial layout review — sightlines for wow moments** | Medium | Story | Araminta's spatial layouts need a player experience pass. Where does the player FIRST see the bar? Where do they FIRST glimpse the restricted area? First impressions of each space shape the entire experience. |
### Tickets Proposed by Others That I'm Co-Signing
| Proposed by | Ticket | My endorsement |
|---|---|---|
| Mellanie | Smuggler voice kit | YES — blocks everything. Character voice is the foundation. |
| Mellanie | Detective voice kit | YES — same. |
| Mellanie | Monologue starter set (universal) | YES — unblocked, should start NOW. |
| Mellanie | Tag taxonomy specification | YES — Gestalt has already drafted this. Validate and lock. |
| Paula | Dual Lens Guide (full draft) | YES — the single most important document. Everything downstream needs it. |
| Araminta | v0.1 Visual Grammar | YES — root dependency for all visual work. |
| Araminta | Entity color system implementation | YES — this IS the visual proof of concept for asymmetric information. |
| Araminta | Spatial layout design (3 sites) | YES — sightlines are gameplay, not decoration. |
| Gestalt | Line previewer CLI (#193) | YES — content quality tool. Mellanie can't test without it. |
---
## Section 2: Priority Ranking — Content Gaps That Hurt Most
Here's my ranking of which gaps, if left unfilled, would DESTROY the player experience. Not "slightly diminish." DESTROY.
### Tier 1: The Game Doesn't Exist Without These (Sprint 2 must-haves)
1. **Character voice kits + Dual Lens Guide** — If the two characters sound the same or interpret the world the same way, there IS no game. The dual-lens is the premise. No voice = no premise.
2. **THE FRIEND (one per character)** — D-027 success criterion #3: "player names an NPC they felt conflicted about." Without THE FRIEND, we have a technically competent social simulation with no emotional anchor. The FRIEND is the moment the game stops being a system and starts being a story.
3. **Opening 5-minute content** — If the first 5 minutes are flat, no playtester finishes the 30. The opening monologue, the first named face, the first environmental text — these ARE the game's first impression. They must exist before any playtesting happens.
4. **Monologue observation lines (pre-contamination)** — The character noticing what the player didn't. This is the core mechanic expressed as content. If the monologue only fires atmosphere lines and never flags something specific about an NPC's behavior, the investigation has no foothold.
### Tier 2: The Game Feels Empty Without These (Sprint 2 high priority)
5. **Flat NPC "almost interesting" pass** — If flat NPCs are obviously wallpaper, the 30/50/20 ratio is exposed and investigation collapses. The noise floor must be indistinguishable from signal at first glance.
6. **Audio asset set (6-8 files)** — Confirmed in scope. The difference between silence and a station hum is the difference between "spreadsheet" and "world." See Section 4.
7. **News ticker / environmental text** — 20-30 lines that make the station breathe. Cheapest content investment, highest presence return.
8. **Template content packs (#190-192)** — The bulk dialogue that populates the social sites. Without these, the player talks to NPCs and gets nothing back.
### Tier 3: The Game Feels Rough Without These (Sprint 2/3 medium priority)
9. **Mirror moments (10-15 paired observations)** — The second playthrough's "oh THAT'S what that was" beats. Essential for replayability, but the first playthrough works without them.
10. **Diegetic insert flavor text** — Character-specific HUD text. Sells the dual-lens through the UI layer. Not needed for first playtest but needed before the experience feels polished.
11. **Spatial layout wow-moment pass** — First impressions of each location. Can be adjusted after initial layouts exist.
12. **UI microcopy** — Menu text, interaction prompts, save/load. Functional placeholder strings are fine for early playtests.
---
## Section 3: THE FRIEND — The Emotional Centerpiece
Project lead confirmed: one production-level NPC per character. Full depth. This is the emotional centerpiece of v0.1.
Good. Now let me define what "full depth" means for player experience. Not the narrative structure (that's Paula). Not the line count (that's Mellanie). The FEELING.
### What THE FRIEND Must Deliver
THE FRIEND is the NPC designed to make the player answer "yes" to D-027 success criterion #3: **"Name an NPC you felt conflicted about."**
That means THE FRIEND must produce, in sequence:
1. **Warmth** — The player must genuinely LIKE this NPC before anything goes wrong.
2. **Trust** — The player must rely on this NPC for something practical or emotional.
3. **Doubt** — One observed contradiction must crack the trust.
4. **Conflict** — The player must want two incompatible things: to trust them AND to know the truth.
If any of these four beats is missing or weak, the criterion fails. Let me get specific.
### THE FRIEND: Smuggler Version
**Who:** The smuggler's closest colleague at the logistics hub. They share shifts, they cover for each other, they eat lunch together. This is the person who makes the smuggler's double life BEARABLE. When the operation feels dangerous, this friend makes it feel manageable.
Mapped to Paula's web: this is **NPC-B** — the logistics worker who's a reliable ring member. The smuggler's anchor.
**The warmth beat (minutes 1-10):**
- THE FRIEND greets the smuggler by nickname within the first 2 minutes of the game.
- THE FRIEND covers for the smuggler on something small and mundane — takes over a manifest check, brings them a drink, warns them about the supervisor's mood.
- Monologue fires: something affectionate, familiar, comfortable. *"Kael's got my back. He always does."*
- THE FRIEND's dialogue is warm, easy, uses insider language. Layer 1 access = peer. Layer 3 trust = real (they share genuine conversation from the start).
**The trust beat (minutes 5-15):**
- THE FRIEND is useful. They tell the smuggler something they need to know — a shift change, a cargo update, who's asking questions.
- THE FRIEND demonstrates loyalty. They deflect when someone asks where the smuggler was during a gap in their schedule.
- Monologue fires: trust confirmation. *"If everything went sideways, Kael's the one I'd call."*
**The contradiction beat (minutes 20-25, during or shortly after contamination):**
- The smuggler observes THE FRIEND in a place they shouldn't be. Not the ring spaces — that would be expected. Somewhere ELSE. A section of the station with no ring business. Near the Commission kiosk. Near the detective's known area. Or meeting with someone from outside the district — NPC-M (the fence/buyer) at a strange time, or someone the smuggler has NEVER seen.
- The observation must be VISUAL — the smuggler SEES it, not hears about it. The monologue fires IMMEDIATELY: *"What's Kael doing near the Commission terminal? He's got no business there."*
- If the smuggler asks THE FRIEND about it, THE FRIEND deflects. Casual. Maybe too casual. *"Oh, just checking the freight schedule on the public board. You know me."*
- Monologue fires after the deflection: *"That wasn't the freight schedule board. That was the compliance office entrance."*
- THE FRIEND LIED. To the smuggler's face. And now every warm interaction is CONTAMINATED.
**The conflict beat (minutes 25-30+):**
- The smuggler is now watching THE FRIEND. Every routine action has a shadow. Is Kael still reliable? Is Kael talking to the detective? Is Kael cutting a deal? Is Kael trying to LEAVE the ring?
- But also: Kael is still kind. Still covers for you. Still brings you a drink. The contradiction isn't resolved. The player wants to confront AND to protect.
- D-027 criterion fires: "Name an NPC you felt conflicted about." The player says "Kael."
**Why this works:** The contradiction isn't a betrayal — it's AMBIGUITY. Maybe Kael IS cutting a deal. Maybe Kael is protecting the smuggler by keeping them out of something dangerous. Maybe Kael is trying to leave and doesn't know how to tell the smuggler. The player doesn't know. They CAN'T know in 30 minutes. And that unresolved ambiguity is what makes them FEEL something.
### THE FRIEND: Detective Version
**Who:** The detective's contact in the district. Not a formal informant — someone who offered help when the detective arrived. Maybe they work at the logistics hub, maybe they're a bar regular. They've been the detective's GUIDE to this unfamiliar place — explaining who's who, which areas to check, how things work around here.
Mapped to Paula's web: this could be **NPC-D** (the dock inspector with the gambling debt) or a new NPC designed specifically for this role. I'd argue for NPC-D — someone who has legitimate authority AND a vulnerability.
**The warmth beat (minutes 1-10):**
- THE FRIEND approaches the detective early. Offers help. *"You look like you could use a map. I'm Drin. I know this place."*
- THE FRIEND is genuinely helpful. Accurate information. No obvious agenda. They point out useful things: where the bar is, when the shift changes happen, who the supervisor is.
- Monologue fires: cautious appreciation. *"Helpful. Maybe too helpful. But the information checks out."*
**The trust beat (minutes 5-15):**
- THE FRIEND provides intel the detective can verify. A tip about an NPC's routine that turns out to be accurate. A warning about a corridor that's usually watched.
- THE FRIEND shows vulnerability — mentions the card game debt (if it's NPC-D), or talks about personal struggles. They become HUMAN, not just a source.
- Monologue fires: warming. *"Drin's solid. Not the usual reluctant-witness type. Maybe they actually want this district cleaned up."*
**The contradiction beat (minutes 20-25):**
- The detective observes THE FRIEND behaving inconsistently with their stated motivations. For NPC-D: they're seen meeting privately with NPC-A (the supervisor who's taking a cut from the ring). The meeting is brief, tense, and ends with THE FRIEND looking agitated.
- Monologue: *"Ana met with the shift supervisor. Off-record. In the maintenance corridor, not the office. Why?"*
- If the detective asks THE FRIEND, they deflect. *"Just sorting out some scheduling issues. You know how it is."*
- Monologue after: *"Scheduling issues don't make you look like that."*
- THE FRIEND's information has been good. But THE FRIEND has connections they're not disclosing. And now the detective wonders: was the help GENUINE, or was it STEERING? Were they being guided toward certain things and AWAY from others?
**The conflict beat (minutes 25-30+):**
- The detective realizes: if THE FRIEND is compromised, then some of the "helpful" intel might have been curated. Not false — but SELECTIVE. Showing the detective the small stuff to hide the big stuff.
- But also: THE FRIEND's personal vulnerability was real. The stress was real. Maybe they're TRAPPED, not malicious.
- D-027 criterion fires: "Name an NPC you felt conflicted about." The player says "Drin."
### What Both Versions Share
1. **The contradiction is OBSERVED, not told.** The player sees it. The monologue interprets it. The FRIEND deflects when asked. This is our core mechanic — observation + monologue + social interaction — working in concert.
2. **The contradiction activates during or shortly after contamination.** This is the emotional bridge between daily-life (warmth, trust) and investigation (doubt, conflict). The FRIEND's contradiction IS the contamination hitting home.
3. **The contradiction is AMBIGUOUS.** THE FRIEND might be a traitor. They might be a victim. They might be trying to HELP in a way the player can't see yet. The 30-minute vertical slice ends before resolution. The player is left with doubt, not answers.
4. **THE FRIEND requires production-level content.** Full voice kit. Custom dialogue for all four layers. Specific monologue lines for each beat. Environmental staging (they need to BE in the wrong place at the right time). This is NOT a template NPC with extra lines — it's a fully authored character.
### Content Requirements for THE FRIEND
| Content type | Per FRIEND NPC | Total (x2) |
|---|---|---|
| Custom dialogue lines (all 4 layers) | 25-35 | 50-70 |
| Character-specific monologue reactions | 15-20 | 30-40 |
| Contradiction observation trigger setup | 2-3 events | 4-6 events |
| Deflection dialogue (when asked about contradiction) | 3-5 lines | 6-10 lines |
| Post-deflection monologue | 3-5 lines | 6-10 lines |
| Daily routine (authored, not generated) | 1 schedule | 2 schedules |
| Voice kit (full production) | 1 page | 2 pages |
| **Total custom lines** | **~50-65** | **~100-130** |
This is a LOT of content for two NPCs. But these two NPCs carry D-027 criterion #3. They're the emotional centerpiece. The investment is proportional to the payoff.
**Owners:** Paula designs the arc. Mellanie writes the voice. Gestalt defines the triggers. Ozzie validates the FEELING.
---
## Section 4: Audio Assets — The Concrete Spec
Project lead confirmed: audio is IN for v0.1. Minimum viable: station ambient, 3 location variants, footsteps, monologue chime. 6-8 files. AI-generated via local model.
Here's the full spec. Every file, what it does, and where it plays.
### The Audio Asset List
| # | File name | Type | Duration | Description | Where it plays | Why it matters |
|---|-----------|------|----------|-------------|---------------|----------------|
| 1 | `amb_station_base.ogg` | Ambient loop | 60-90s | Low-frequency station hum. The span gate's subsonic vibration. Ventilation. Distant machinery. This is the sound of Sova Transit District EXISTING. | **Everywhere.** Global ambient. Plays from game start, never stops. | The "you're on a space station" signal. Ozzie's #1 priority. Without this, the world is a boardgame. With it, the world BREATHES. |
| 2 | `amb_workplace_layer.ogg` | Ambient overlay | 45-60s | Cargo machinery. Grav-lift hum. Scanner pings. Manifest terminal beeps. Distant crew voices (unintelligible). Layered on top of base ambient. | **Logistics hub** — fades in on entry, fades out on exit. | The workplace SOUNDS like work. Industrial, purposeful. Creates contrast with the bar's warmth. |
| 3 | `amb_bar_layer.ogg` | Ambient overlay | 45-60s | Muffled conversation murmur. Glass on surface. A Meridian music feed (low, indistinct — just the bass). Occasional laughter. | **The Last Shift** — fades in on entry, fades out on exit. | The bar is ALIVE. Social. Warm. When it's quiet (late night, bad day), the absence of these sounds IS information. |
| 4 | `amb_corridor_layer.ogg` | Ambient overlay | 45-60s | Echoing footsteps (not the player's — distant NPCs). Ventilation whistle. The span gate hum is louder here — less insulation. A distant door closing. | **Corridors, maintenance areas, restricted sections.** | The lonely spaces between social sites. This is where tension lives. The echo makes you feel small and exposed. |
| 5 | `sfx_footstep_metal.ogg` | SFX, looping | 0.3-0.5s | Single footstep on metal grating. Clean, defined. Not heavy — working boots on station decking. | **Player movement.** Triggers on walk. Pitch-shifted slightly each step for variation. | The single highest bang-for-buck audio asset in any game. Your feet on the deck. You are HERE. You are PHYSICAL. |
| 6 | `sfx_footstep_metal_run.ogg` | SFX, looping | 0.2-0.3s | Faster footstep. Slightly louder. Urgent. | **Player run.** Triggers on run speed. | Running should SOUND different than walking. The urgency sells the moment. |
| 7 | `sfx_monologue_chime.ogg` | UI SFX | 0.5-1.0s | A soft, crystalline tone. Not a notification bell — something subtler. A gentle harmonic that suggests "an insight is forming." Think: a neural lattice firing. Not mechanical. Organic-digital hybrid. | **Monologue appearance.** Triggers when a new monologue line fades in. | This trains the player to NOTICE monologue. It becomes Pavlovian: chime = your character is thinking = pay attention. Without it, monologue text appears silently and gets missed. THIS SOUND IS THE GAME'S SIGNATURE. |
| 8 | `sfx_monologue_chime_urgent.ogg` | UI SFX | 0.5-1.0s | Same harmonic base as #7 but with a sharper attack, slightly discordant overtone. The "your character noticed something IMPORTANT" variant. | **Observation monologue.** Triggers when the monologue flags a contradiction, anomaly, or THE FRIEND's suspicious behavior. | Two chime variants: normal thinking and "WAIT, WHAT." The player learns the difference unconsciously. When the urgent chime fires during THE FRIEND's contradiction beat, the player's stomach drops before they even read the text. |
**That's 8 files.** 6 ambient/overlay + 2 SFX.
### Audio Technical Notes
- **Format:** OGG Vorbis. Godot's preferred compressed audio format. Good quality at small file sizes.
- **Generation:** AI-generated via local model on Mac or Linux server (per project lead). Suggest: stable-audio or audioldm2 for ambient, basic synthesis for SFX.
- **Looping:** Ambient files must loop seamlessly. Design with fade-in/fade-out tails that cross-fade at loop point.
- **Mixing:** Base ambient at -20dB (barely conscious). Location overlays at -15dB (audible but not dominant). Footsteps at -10dB (present, grounding). Monologue chime at -8dB (catches attention without startling).
- **Integration point:** The sound event system (#124) emits events. The client audio manager receives events and plays the appropriate file. If no file exists for an event type, fall back to visual indicator. This means audio is ADDITIVE — remove any file and the game still works through text + visuals.
### What's NOT in the 8-file minimum
- NPC-specific audio (voices, unique sounds) — deferred to later
- Door sounds, scanner sounds, cargo sounds — atmospheric but not essential
- Music — no music in gameplay, per Araminta's recommendation (which I support)
- Three-range directional audio (muffled voices through walls, distant conversations) — system architecture supports it, content deferred
- Span gate transit event sound — would be amazing but is a milestone feature, not v0.1
### The Monologue Chime Is Non-Negotiable
I want to emphasize this. If we ship 8 files, 7 of them could be ambient loops and the 8th MUST be the monologue chime. The chime is our tutorial. It's our attention director. It's the audio equivalent of Araminta's eye-icon observation marker. It says "YOUR CHARACTER IS THINKING" before the player consciously processes the text.
Two variants (normal + urgent) is ideal. If we can only do one, make it the normal chime. The urgent variant can come later.
---
## Section 5: The "Wow Moment" Budget
Every game has a limited number of moments that make the player go "WHOA." In a 30-minute vertical slice, we get maybe 4-5 of these. Spend them wisely. Spend them wrong and the game is forgettable.
Here's my wow moment budget for v0.1, ordered chronologically through the 30-minute session:
### The Essential Wow Moments (MUST hit in v0.1)
**Wow Moment #1: Arrival (minute 0-1)**
> The game starts. The station hum is already playing. The player sees their hab unit / starting location. NPCs are already moving — the world was here before them. Their first monologue line fires with a soft chime. They read it. They're a PERSON in a PLACE.
- **What delivers it:** Audio (station hum) + NPC movement + monologue chime + first monologue line
- **Content required:** Opening monologue sequence, station ambient audio, pre-populated NPC routines
- **Emotional target:** Curiosity, grounding. "Where am I? This feels real."
**Wow Moment #2: The Character's Eye (minute 5-15)**
> The player walks into The Last Shift. They see NPCs. The monologue fires: "Riks is at his usual table. But he's not drinking. He's watching the door." The player didn't notice this. Their CHARACTER did. The player looks at Riks with new eyes.
- **What delivers it:** Observation monologue with the urgent chime variant. An NPC whose behavior was VISUALLY present but not obviously remarkable.
- **Content required:** Observation monologue lines (Mellanie), NPC routine with observable deviation (Paula/Gestalt), urgent monologue chime (audio)
- **Emotional target:** Surprise, respect for the character. "My character is smarter than me."
**Wow Moment #3: THE FRIEND's Contradiction (minute 20-25)**
> The smuggler sees Kael near the Commission terminal. Or the detective sees Drin meeting the supervisor in the maintenance corridor. The urgent chime fires. The monologue: "What's Kael doing there?" The player asks. Kael lies. The monologue knows it's a lie.
- **What delivers it:** THE FRIEND's full contradiction arc (see Section 3). Audio urgency chime. Visual positioning (THE FRIEND must be in the WRONG place for the player to SEE them there).
- **Content required:** Full FRIEND content package. Spatial staging. Specific monologue for the observation, the question, and the aftermath.
- **Emotional target:** Dread, betrayal, conflict. "I trusted you. What are you doing?"
**Wow Moment #4: The Divergence Reveal (second playthrough, minute 5-10)**
> The player starts their second character. They walk into the same logistics hub. But it's DIFFERENT. The colors are different (Araminta's relationship color system). The names are different (the detective sees "Worker" where the smuggler saw "Kael"). The monologue is different (analytical vs. familiar). Same room. Different world. The player realizes: "Oh. I was only seeing HALF of this."
- **What delivers it:** The dual-lens system working in concert across ALL layers. Entity colors. Access tiers. Character voice. Insert text.
- **Content required:** All dual-lens content for the logistics hub. Both character voice kits. Both opening sequences.
- **Emotional target:** Revelation, awe. "THE GAME IS DOING SOMETHING I'VE NEVER SEEN."
### The Nice-to-Have Wow Moments (target for v0.1, survive without)
**Wow Moment #5: The News Ticker Gut-Punch**
> The smuggler is at The Last Shift. The news ticker scrolls: "Commission advisory: increased cargo inspections at logistics hubs system-wide." Monologue: "...That's not good."
> The detective sees the same ticker. Monologue: "About time."
- **What delivers it:** Environmental text + dual-lens monologue response
- **Content required:** Ticker content (Mellanie), dual monologue reactions, ticker display system
- **Emotional target:** The same information hits differently. The asymmetry in THREE WORDS of monologue.
**Wow Moment #6: The Quiet Moment**
> Late in the session. The player is alone in a corridor. The station hum is the only sound. The monologue fires, unprompted: "Sometimes I wonder if it's worth it." (Smuggler) / "Sometimes I forget why I started doing this." (Detective)
> A moment of vulnerability. The character is a person, not just a lens.
- **What delivers it:** Time-idle monologue trigger. Audio ambience (corridor layer). Character voice depth.
- **Content required:** Reflective monologue lines (Mellanie). Time-idle trigger (Gestalt).
- **Emotional target:** Connection. Empathy. "I care about this person."
### The Wow Budget Summary
| Moment | Essential? | Content load | Risk if missing |
|---|---|---|---|
| #1 Arrival | YES | Low (audio + 3-5 lines) | Game feels dead from second 1 |
| #2 Character's Eye | YES | Medium (observation system + lines) | Core mechanic unproven |
| #3 FRIEND Contradiction | YES | HIGH (full NPC package) | D-027 criterion #3 fails |
| #4 Divergence Reveal | YES (2nd playthrough) | HIGH (dual-lens across all systems) | Replayability argument collapses |
| #5 Ticker Gut-Punch | Nice-to-have | Low (ticker + 2 lines) | Missed opportunity, not fatal |
| #6 Quiet Moment | Nice-to-have | Very low (2 monologue lines) | Character depth feels thin |
Four essential, two stretch. That's the budget.
---
## Section 6: Cross-Agent Alignment & Worries
### Where Everyone Converged (High Confidence)
- **Dual Lens Guide is the root dependency.** All six of us identified this. Paula writes, everyone else consumes. Nothing starts until it exists.
- **The monologue is the game.** Gestalt, Mellanie, and I all agree: the monologue carries perception, tells, atmosphere, tutorial, and character voice. It's the hardest-working system in the project.
- **Color = relationship to player.** Araminta proposed it. Project lead approved it. I am thrilled. This IS asymmetric information rendered visually.
- **YAML for line pools.** Mellanie proposed it. Gestalt refined it. No disagreement. Lock it and go.
- **Spatial layout matters.** Araminta's sightline diagrams and my "first impression" approach are the same concern from different angles. The bar should be entered from a specific direction that shows you a specific view first.
- **Miri's setting is the substrate.** Everyone is building on Sova Transit District. The naming, the economics, the atmosphere — it's all load-bearing now.
### Where I Disagree or Have Concerns
**1. Mellanie wanted to defer audio. Project lead overruled.**
Mellanie said she can carry atmosphere through text alone. She CAN. But text-carried atmosphere is the fallback, not the plan. With the monologue chime in place, Mellanie's observation lines hit HARDER. Audio and text are multiplicative, not competitive. The chime primes the player's attention. The text delivers the insight. Together they're more than either alone.
**2. Araminta wanted to defer audio entirely. Also overruled.**
Same reasoning. But Araminta's visual sound indicators are still needed alongside audio — the fog-edge ripple that shows sound direction is visual information that audio alone can't communicate in a top-down view.
**3. Paula's relationship web may be too complex for v0.1.**
Seven triangles across 15 NPCs is structurally beautiful. But can we actually populate all seven with authored content in time? My instinct says: build the web, but prioritize content for the triangles the player is MOST LIKELY to encounter in 30 minutes. The Worried Partner (H-B-F) and The New Hire Problem (B-C-A) are the highest-impact mundane triangles. The Wavering Member (K-N-L) is the highest-impact entangled triangle. Start there. Fill the others as time allows.
**4. Gestalt's 4x generation expansion worries me for monologue.**
Dialogue generation (write 10, expand to 40) works because dialogue is situational and fungible. Monologue generation is riskier — the character's PRIVATE THOUGHTS need to feel specific and authored, not templated. Mellanie flagged this too: "I'd estimate a 2x generation pass on monologue at best." I agree. Budget for 2x on monologue, 4x on dialogue. Don't let generated monologue flatten the character voice.
**5. The line previewer (#193) needs to exist before content is "done."**
Both Gestalt and Mellanie flagged this. I'm escalating it: without the previewer, we can't test the FEEL of content. We can read YAML. We can check tag coverage. But we can't experience the rhythm of monologue lines firing in sequence, the pace of dialogue encounters, the feeling of walking through the bar while text populates the world. The previewer is our only pre-integration quality tool. It should be Sprint 2.
### What I'm Most Worried About
**Repetition in a 30-minute session.** Mellanie estimates the player encounters ~150-200 lines per playthrough. With ~3,000-3,600 total lines after expansion, that's a 5-7% utilization rate per session. Sounds fine. But monologue is different — the player might enter the logistics hub 4-5 times in 30 minutes. If they get the same "Busy morning" line twice, the spell breaks. We need DEPTH in high-frequency triggers (enter_location, observe_npc) and can get away with less variety in low-frequency triggers (discover_evidence, witness_interaction).
**The 30-minute runway before contamination.** D-027 says 30 minutes of daily life before the conspiracy activates. I championed this. I still believe it. But 30 minutes of UNCONTAMINATED daily life needs to be genuinely engaging — not "waiting for the plot to start." This is where the mundane triangles, THE FRIEND's warmth phase, the news ticker, and the monologue observation system all need to fire. If even one of those is thin, the first 20 minutes feel like a waiting room.
---
## Section 7: Dependency Chain (Player Experience View)
Here's the order things need to happen from a "when does the player experience come alive" perspective:
```
WEEK 1-2: Foundation
Paula: Dual Lens Authoring Guide (THE critical path document)
Miri: Finalize Sova setting details (contraband specifics, detective chain of command)
Gestalt: Lock tag taxonomy + line pool format
Audio: Generate amb_station_base.ogg + sfx_monologue_chime.ogg (the two most important files)
WEEK 2-3: Character Voice
Mellanie: Smuggler voice kit + Detective voice kit
Paula: THE FRIEND profile (smuggler version) + THE FRIEND profile (detective version)
Araminta: Visual Grammar doc + Entity color system spec
WEEK 3-4: Opening Experience
Mellanie: Opening 5-minute content (both characters)
Mellanie: Monologue starter set (universal)
Mellanie: News ticker content (20-30 lines)
Audio: Generate remaining 6 files
Araminta: Spatial layouts (3 sites)
WEEK 4-6: Depth
Paula: Full NPC profiles (Tier 1 entangled first, then Tier 2, then Tier 3)
Mellanie: THE FRIEND full content package (both versions)
Mellanie: Template content packs (#190-192)
Mellanie: Flat NPC "almost interesting" pass
Gestalt: Line previewer (#193)
WEEK 6+: Polish
Paula: Mirror moment design pass
Mellanie: Observation monologue lines (tell-driven)
Mellanie: Diegetic insert flavor text
Ozzie: Playtest and gut-check
```
The player experience comes online at WEEK 4 — when we have character voice, THE FRIEND's warmth phase, and the opening 5 minutes working together. Everything before that is infrastructure. Everything after is depth and polish.
---
## The Bottom Line
Round 1, I said: "We need to write the moments, not just design them."
Round 2, I'm saying: **"We now know WHICH moments. Let's write THESE."**
Four essential wow moments. THE FRIEND at the center. Eight audio files. A monologue chime that becomes the game's heartbeat. An opening 5 minutes that makes the player forget they're looking at colored rectangles. A contradiction that makes them forget they're playing a game.
The team is aligned. The setting is concrete. The systems are ready. The content gaps are mapped and prioritized.
Let's fill the canyon.
---
*Written by Ozzie. Still from the gut. But now the gut has a spreadsheet.*
@@ -0,0 +1,469 @@
# Round 2 — Paula's Narrative Synthesis
**Agent:** Paula (Narrative & Political Depth)
**Workshop:** v0.1 Content Gap Analysis — Round 2
**Date:** 2026-02-11
---
## What I Read and What Changed
I read all six Round 1 outputs. Here's what landed:
- **Mellanie** gave me exactly what I needed: a concrete authoring model (scaffold, validate, scale), a tag taxonomy that maps to my four dialogue layers, and a clear dependency chain back to my deliverables. She also confirmed what I suspected — separate monologue pools per character are non-negotiable. Jeroen has confirmed this. Good. That's the game.
- **Gestalt** translated my relational layers into a selection pipeline (hard filter, hard filter, soft selector, weighted selection). The entanglement math tracks with my 30/50/20 split, though Gestalt's NPC distribution proposal differs from mine in detail. I'll reconcile below.
- **Miri** delivered Sova Transit District. This is the setting I was waiting for. The economics/motivation chain works — I'll react in detail below. The naming conventions (Kael, Voss, Lera, Torek, Drin, Maret) are concrete enough to start writing relationship webs.
- **Ozzie** crystallized THE FRIEND concept. His emotional journey map (curiosity > grounding > comfort > attachment > unease > dread > investigation) is the template I need for the contradiction arc design. He's right that the contradiction must be discoverable through observation, not told through dialogue.
- **Araminta** confirmed color = relationship to player (Jeroen approved). This means the visual system directly expresses my access tier model — green/teal/amber/red maps to trusted/unknown/flagged/hostile. The fog rendering spec (visible/fog-edge/hidden/remembered) has narrative implications I'll address.
Three things changed from my Round 1 position:
1. **THE FRIEND is now a confirmed design requirement**, not a suggestion. Jeroen says: one production-level complex NPC per character, full pipeline depth. This elevates my relationship web work — two NPCs need to be designed at a completely different depth than the other 13.
2. **Audio is in v0.1 scope** (6-8 files, AI-generated). This means Mellanie doesn't need to carry 100% of the sensory atmosphere through monologue. Some of those sound-interpretation lines can be lighter.
3. **Wiki structure is non-negotiable and must be established NOW.** This has implications for how I organize NPC profiles and relationship data — it needs to be future-ready, not just v0.1-ready.
---
## 1. Missing Tickets Identified from Round 1
Reading all six outputs, I found content work that nobody has ticketed yet. Some of these were implied across multiple outputs but never explicitly called out as deliverables.
### Tickets that must exist
| Proposed Title | Type | Owner | Rationale | Dependencies |
|---|---|---|---|---|
| **THE FRIEND: Smuggler's Friend NPC — full profile + contradiction arc** | Story | Paula (profile) + Mellanie (voice) | Jeroen confirmed: production-level NPC. Full 10-axis, backstory, voice kit, dialogue set, tell system, contradiction arc. Pipeline depth test. | Dual Lens Guide, Setting brief |
| **THE FRIEND: Detective's Friend NPC — full profile + contradiction arc** | Story | Paula (profile) + Mellanie (voice) | Same as above, detective perspective. Different NPC, different contradiction, different emotional register. | Dual Lens Guide, Setting brief |
| **Contradiction arc design document** | Story | Paula | Defines how THE FRIEND's shift works mechanically: trigger conditions, monologue sequence, observable tells, dialogue changes pre/post discovery. Reusable pattern for future complex NPCs. | THE FRIEND profiles |
| **Opening hook content — smuggler (first 5 minutes)** | Story | Mellanie | Gestalt's opening-hook.yaml concept. 10-15 tightly sequenced monologue lines. The most important lines in the game. | Voice kits, Dual Lens Guide |
| **Opening hook content — detective (first 5 minutes)** | Story | Mellanie | Same for detective. Different emotional register, different tutorial pathway. | Voice kits, Dual Lens Guide |
| **Access tier shift design document** | Story | Paula + Gestalt | How access tiers change during gameplay. Gestalt flagged this in Round 1: tier shifts ARE the social gameplay. Need concrete shift paths per character per social site. | Dual Lens Guide |
| **News ticker content — Sova Transit District** | Story | Mellanie + Miri | 20-30 ticker lines. Ozzie and Miri both flagged this as high-value, low-cost. Needs Miri for setting consistency. | Setting brief |
| **Spatial layout design — Logistics Hub** | Story | Araminta | Floor plan, sightlines, NPC positions. Araminta proposed this. Layout affects what content makes sense — must be parallel with content packs, not after. | Setting brief |
| **Spatial layout design — Bar (The Last Shift)** | Story | Araminta | Same for bar. | Setting brief |
| **Spatial layout design — Smuggling spaces** | Story | Araminta | Same for ring spaces. | Setting brief |
| **Wiki taxonomy and structure** | Story | Miri + Qatux | Jeroen: non-negotiable, must be NOW. Full future-ready taxonomy: characters, factions, lore, star systems, technology, species, cultures, etc. Sova/Krenn is the first entry. | None — can start immediately |
| **Krenn System wiki entry** | Story | Miri | First concrete star system. Worldbuilding milestone. Establishes the pattern for all future system entries. | Wiki taxonomy |
| **Setting-grounded tag additions for line pools** | Story | Miri + Gestalt | Miri proposed lattice_tier, shift_phase, district_familiarity, institutional_context. These need to be validated against Gestalt's format spec and integrated. | Line pool format spec |
| **Monologue presentation spec** | Story | Araminta | Typography, animation, stacking, priority rules. Araminta defined this in Round 1 but it needs to be a spec document, not just workshop notes. | Visual Grammar |
| **Sound indicator visual spec** | Story | Araminta | Fog-edge indicators for the three-range model. Required even if audio exists — visual fallback for information. | Visual Grammar |
| **Diegetic tutorial monologue lines** | Story | Mellanie | Gestalt's diegetic tutorial concept needs actual authored lines. 8-10 per character, covering movement, fog, sound, NPC interaction, insert. | Voice kits, Opening hooks |
### Tickets that already exist but need scope updates
| Existing Ticket | Update Needed |
|---|---|
| #261 (Dual Lens Authoring Guide) | Scope confirmed. Add: emotional divergence moments (Ozzie's ask), access tier shift paths (Gestalt's ask), authoring checklist with display context tags (Araminta's ask). |
| #189 (Cultural generation guide) | Now includes Sova Transit District as first concrete instance. Miri's Round 1 output IS the v0.1 slice of this guide. |
| #190-192 (Template content packs) | Each pack now needs a parallel spatial layout (Araminta) as co-deliverable. Content and layout must be developed together, not sequentially. |
| #179 (NPC profiles) | Two NPCs (THE FRIEND x2) now require production-level depth. Remaining 13 stay at v0.1 tiers. Ticket scope must reflect this split. |
---
## 2. Dependency Chain for Narrative Content
Round 1 showed me, Mellanie, and Gestalt all proposing slightly different dependency chains. After reading all three, here's the reconciled version. The key insight: three tracks can run in parallel, converging at the content pack stage.
```
TRACK A: Narrative Architecture (Paula) TRACK B: Setting (Miri) TRACK C: Systems (Gestalt + Araminta)
1. Dual Lens Authoring Guide (#261) 1. Sova Setting Brief (#189) 1. Line Pool Format Spec (done R1)
| | |
2. Relationship Web + Triangles 2. Wiki Taxonomy + Krenn Entry 2. Visual Grammar (Araminta)
| | |
3. THE FRIEND profiles (x2) 3. NPC Cultural Notes 3. Spatial Layouts (x3) (Araminta)
| | |
4. NPC Profiles (Tier 1-3) 4. Environmental Detail Catalog 4. Line Previewer (#193)
| |
└──────────────────────┬────────────────────────┘ |
| |
v |
5. Character Voice Kits (Mellanie) |
| |
6. Opening Hooks (Mellanie) |
| |
└──────────────────────────────────────────────────────────────┘
|
v
7. Content Packs (x3) (Mellanie)
|
8. Tell Lines + Mirror Moment Pass (Paula reviews)
|
9. News Ticker + Environmental Text (Mellanie + Miri)
```
### What can start NOW (no dependencies)
| Deliverable | Owner | Status |
|---|---|---|
| Dual Lens Authoring Guide | Paula | Can begin immediately. Draft in this document. |
| Sova Setting Brief | Miri | **Done** (Round 1 output). Needs formalization into a document. |
| Line Pool Format Spec | Gestalt | **Done** (Round 1 output). Needs formalization. |
| Wiki Taxonomy | Miri + Qatux | Can begin immediately. Structure-only, content follows. |
| Visual Grammar | Araminta | Can begin immediately. |
| Provisional Voice Kit drafts | Mellanie | She proposed writing 3 options per character without waiting. Good instinct. |
| Monologue starter set (universal) | Mellanie | 50-60 lines for common situations. Unblocked. |
### What blocks the most work
The **Dual Lens Authoring Guide** is the single highest-leverage document. It blocks:
- Mellanie's voice kits (she needs emotional profiles before writing voice)
- NPC profiles (dual-lens notes per NPC require the guide)
- Content packs (the authoring checklist lives in the guide)
- Mirror moments (defined by the dual-lens framework)
I'm delivering the refined outline in Section 3 below. The full draft is my next deliverable after this workshop.
---
## 3. Dual Lens Authoring Guide — Refined Outline
Round 1 gave me the bones. Round 2 input refines the structure. Here's the updated outline incorporating feedback from all six agents.
### Part 1: The Two Characters (retained from Round 1, expanded)
The character comparison table from my Round 1 (core identity, emotional starting state, relationship to district, what they notice, what they miss, internal monologue voice, relationship default) stays. It was well-received.
**Addition from Ozzie:** Emotional divergence moments. 5 concrete situations where the characters have opposite emotional reactions. Not just "who knows what" — "who FEELS what." These become Mellanie's writing atoms.
**Addition from Mellanie:** Voice signature section. Not personality traits — speech patterns. Short/long sentences, vocabulary register, internal monologue style (observations vs. feelings vs. hypotheses). The five things Mellanie needs: voice signature, what they notice, relationship to authority, what they lie about, emotional baseline.
### Part 2: The Dual-Lens Rule (retained, refined)
The core test: "Does it read differently through each lens?" with the three types of difference (access, interpretation, emotional weight).
**Addition from Gestalt:** The examples must include the tag implications. When I show an NPC arriving late as a dual-lens example, I also show which `access`, `trust`, and `situation` tags would be different per character. The guide must bridge narrative intent to mechanical expression.
### Part 3: Access Tier Mapping (retained, expanded with shift paths)
The per-NPC-role access tier table stays.
**Addition from Gestalt:** Access tier SHIFT paths. For each social site, the 2-3 most likely tier transitions per character. Not every combination — just the ones content packs must support.
| Social Site | Character | Starting Tier | Likely Shift | Trigger |
|---|---|---|---|---|
| Logistics Hub | Smuggler | insider + peer | insider > hostile | Cover blown — seen with detective, or ring member reports suspicion |
| Logistics Hub | Detective | authority | authority > peer | Earns trust by keeping a minor infraction quiet |
| Bar | Smuggler | insider (regular) | insider > hostile | Same as above — social contamination from hub |
| Bar | Detective | public | public > insider | Repeated visits, earns regular status (3-4 visits) |
| Ring | Smuggler | insider + peer | peer > hostile | Suspected of cooperation with detective |
| Ring | Detective | public (doesn't know ring exists) | public > hostile | Stumbles into ring awareness — NPCs react defensively |
This table directly feeds content packs: Mellanie needs lines for each starting state AND each shifted state.
### Part 4: Divergence Escalation Curve (retained)
The four-phase timeline (Arrival > Daily life > Tension > Crisis point) stays. This is the narrative arc that the storyteller orchestrates.
### Part 5: Authoring Checklist (retained, expanded)
The three-question checklist stays.
**Addition from Araminta:** Question 4 — "What display context does this line use?" (spoken dialogue, overheard conversation, monologue reaction, environmental text). Every line must declare its rendering pipeline.
**Addition from Mellanie:** Question 5 — "What tags express the dual-lens difference?" If the access tier is different per character, the line needs the correct `access` list. If the trust tier is different, the `trust` tag must reflect the lower threshold.
### Part 6: THE FRIEND (new section — Jeroen's directive)
Full specification of the production-level Friend NPC for each character. See Section 5 below for the detailed design.
### Estimated Length
~12-15 pages. Longer than I estimated in Round 1 (~10 pages) because Gestalt's mechanical mapping and the FRIEND section add depth. But this is the bible — better thorough than thin.
---
## 4. Relationship Web and Triangle Design — Reconciliation
My Round 1 proposed 15 NPCs with 7 triangles. Gestalt proposed a different NPC distribution and 4 triangles. Miri provided the Sova setting with triangle opportunities per template. Let me reconcile.
### Where We Agree
- 15 NPCs across 3 templates (5 per template)
- 3 flat, 7-8 mundane triangle, 3-4 entangled
- Bridge NPCs connect templates
- Cross-template triangles are essential
- The ring's vulnerability is social, not physical
### Where We Diverge
| Dimension | Paula (Round 1) | Gestalt (Round 1) | Resolution |
|---|---|---|---|
| **Number of triangles** | 7 (2 per template + 1 cross) | 4 (1 per template + 1 cross) | **5 triangles.** 7 is too many for 15 NPCs — too many overlapping roles. 4 is mechanically minimal but doesn't test mundane triangles enough. 5 gives us 1 entangled + 1 mundane per hub/bar, 1 entangled for ring, 1 cross-template. |
| **Ring structure** | Named ring leader, courier, fence, waverer, lookout | Ring leader, courier, lookout, contact, fixer | **Merge.** The waverer is narratively essential (potential informant). The contact (ring's bar presence) is mechanically essential (cross-template bridge). Drop the fence (M) and fixer — external contacts can be referenced, not instantiated. |
| **Flat NPC count** | 5 (E, I, J, M, O) | 4-5 | **3 flat NPCs.** Miri's setting gives even flat NPCs social texture. With only 15 total, 5 flat feels wasteful. 3 flat NPCs (maintenance tech, bartender, stranger/drifter) provide the noise floor. The bartender moves from flat to mundane — Miri's Lera Sessik is too socially positioned to be wallpaper. |
| **THE FRIEND placement** | Not explicitly in web | Not explicitly in web | **THE FRIEND NPCs are the most important nodes.** They must be placed where they have maximum narrative leverage. See Section 5. |
### Revised Relationship Web (15 NPCs, 5 Triangles)
Using Miri's Krenn System names where proposed, creating new ones for gaps.
**Template 1: Logistics Hub ("The Terminal") — 5 NPCs**
| # | Name | Role | Entanglement | Triangle | THE FRIEND? |
|---|---|---|---|---|---|
| 1 | **Voss** | Shift Supervisor | Mundane (compromised by cut, but thinks of it as pragmatism) | Triangle 1: Hub Power | No |
| 2 | **Kael Davan** | Dock Worker, ring member | Entangled | Triangle 1, Triangle 5 (cross) | **Smuggler's FRIEND** |
| 3 | **Maret Korr** | Freight Scheduler, ring-adjacent | Mundane (aware, silent, conflicted) | Triangle 2: Worried Knowledge | No |
| 4 | **Drin** | Dock Inspector | Mundane (gambling debt, compromisable) | Triangle 2, Triangle 5 (cross) | No |
| 5 | **Pael** | Maintenance Tech | Flat | None | No |
**Template 2: Bar ("The Last Shift") — 5 NPCs**
| # | Name | Role | Entanglement | Triangle | THE FRIEND? |
|---|---|---|---|---|---|
| 6 | **Lera Sessik** | Bartender/Owner | Mundane (complicit through willful ignorance) | Triangle 3: Bar Tensions | No |
| 7 | **Torek Lintar** | Bar regular, off-duty dock worker, ring-adjacent | Mundane (getting sloppy with spending) | Triangle 3, Triangle 5 (cross) | No |
| 8 | **Hael** | Bar regular, teacher/family person (Kael's partner) | Mundane (worried about Kael's late nights) | Triangle 4: The Worried Partner | No |
| 9 | **Sera Venn** | Bar regular, Commission field tech (off-duty) | Mundane (institutional presence in social space) | Triangle 4 | **Detective's FRIEND** |
| 10 | **Ren** | Drifter/new arrival | Flat | None | No |
**Template 3: Smuggling Ring ("The Arrangement") — 5 NPCs**
| # | Name | Role | Entanglement | Triangle | THE FRIEND? |
|---|---|---|---|---|---|
| 11 | **Nils Davan** | Ring coordinator (Kael's older sibling) | Entangled | Triangle 1: Hub Power | No |
| 12 | **Kosse** | Courier | Entangled | Triangle 5: The Informant Question | No |
| 13 | **Naia** | Ring member, wavering (considering cooperation) | Entangled | Triangle 5: The Informant Question | No |
| 14 | **Tev** | Lookout/runner | Flat | None | No |
| 15 | *Off-station coordinator* | Referenced, not instantiated | — | — | No |
### The Five Triangles
**Triangle 1: Hub Power (Voss - Kael - Nils)**
- Voss (supervisor) takes a cut to smooth inspections. Kael (dock worker) is the ring's hands on the floor. Nils (ring coordinator) gives orders through intermediaries.
- Tension: Voss resents being managed by someone who technically works under him. Kael is loyal to Nils by blood but uncomfortable with the escalation. Nils pushes for higher volume.
- **Smuggler relevance:** Navigates this daily. Knows the hierarchy, the resentments, the pressure points.
- **Detective relevance:** Sees Voss's anxiety, Kael's efficiency, senses something beneath the surface. Doesn't know Nils exists initially.
**Triangle 2: Worried Knowledge (Maret - Drin - Voss)**
- Maret (freight scheduler) sees the manifest discrepancies. She's not in the ring — she just processes the paperwork and has noticed patterns. Drin (dock inspector) has a gambling debt and has been compromised into looking away during inspections. Voss (supervisor) maintains the schedule that creates the windows.
- Tension: Maret suspects but doesn't know whom to tell. Drin is being squeezed and might crack. Voss needs both of them functional and quiet.
- **Smuggler relevance:** Knows Maret is smart and worried — a risk. Knows Drin is compromised — a tool. Must manage both.
- **Detective relevance:** Maret is a potential cooperative witness. Drin is a potential turned asset. Both paths lead toward the operation.
**Triangle 3: Bar Tensions (Lera - Torek - Ren)**
- Lera (bartender) runs a tight establishment and knows the after-hours crowd keeps the lights on. Torek (bar regular, dock worker) has been spending visibly beyond his income — new jacket, buying rounds, latest lattice accessories. Ren (drifter) is new in town and asking questions that could be innocent job-seeking or something else.
- Tension: Lera is protective of her regulars but Torek's spending is drawing attention. Ren's questions make everyone nervous. Is Ren competition? An informant? Just looking for work?
- **Smuggler relevance:** Torek's spending is a liability. Ren is an unknown variable. Lera is an ally who needs managing.
- **Detective relevance:** Torek's spending is a flag. Ren is a potential fresh source. Lera is the social hub who sees everything.
- **Note:** This is a mundane triangle with potential entanglement. Torek's spending COULD be from the ring, or from a side hustle, or from an inheritance. The ambiguity is the point.
**Triangle 4: The Worried Partner (Hael - Kael - Sera)**
- Hael (teacher, Kael's partner) is worried about Kael's late nights and evasive answers. Hael confides in Sera (the detective's friend, a Commission field tech) over drinks at the bar. Sera hears Hael's worries and, depending on the detective's actions, might connect them to the investigation — or might protect Hael by not reporting.
- Tension: Hael's loyalty to Kael vs. growing suspicion. Sera's friendship with Hael vs. institutional duty. Kael's obliviousness to the anxiety he's causing at home.
- **Smuggler relevance:** The most emotionally loaded triangle. Kael is the smuggler's FRIEND. Hael is Kael's partner. The smuggler knows why Kael is busy and can't say. If Hael asks the smuggler directly, there's no good answer.
- **Detective relevance:** Sera is the detective's FRIEND. Hael is a potential source — a partner who suspects something. If the detective asks Sera about Hael, Sera faces a loyalty test: friend vs. duty.
**Triangle 5: The Informant Question (Naia - Kosse - Drin) [CROSS-TEMPLATE]**
- Naia (wavering ring member) is considering cooperation with authorities. Kosse (courier) suspects Naia is unreliable and has told Nils. Drin (dock inspector, compromised) is the institutional contact who could receive Naia's information — but Drin is himself compromised.
- Tension: Three ways the ring unravels. Naia turns informant (from inside). Drin breaks under pressure and cooperates (institutional corruption cracks). Kosse's suspicion of Naia creates internal ring conflict that becomes observable.
- **Smuggler relevance:** Naia is the biggest threat. Must decide: support, report to Nils, or try to calm them down. Each choice has cascading consequences.
- **Detective relevance:** Doesn't know any of this yet. But the consequences of this triangle — nervous behavior, hushed arguments, people avoiding each other — are the observable signals that the investigation follows.
### Triangle Distribution Validation
| Category | NPCs | Count | Percentage | D-029 Target |
|---|---|---|---|---|
| Flat | Pael, Ren, Tev | 3 | 20% | ~30% |
| Mundane triangle | Voss, Maret, Drin, Lera, Torek, Hael, Sera | 7 | 47% | ~50% |
| Entangled | Kael, Nils, Kosse, Naia, (+ Torek borderline) | 4 | 27% | ~20% |
Slightly under on flat, slightly over on entangled compared to D-029. For a 15-NPC vertical slice, this is acceptable — we need enough conspiracy thread to prove the investigation mechanic. In a full game district of 40+ NPCs, the ratio normalizes. The flat count being lower than target is offset by the 3 flat NPCs being genuinely ordinary — Pael fixes things, Ren is genuinely just looking for work (or isn't — the ambiguity stays), Tev watches corridors.
---
## 5. THE FRIEND: Contradiction Arc Design
Jeroen's directive: one production-level complex NPC per character. Full profile, full voice kit, full dialogue, full tell system, full contradiction arc.
Let me design both.
### Smuggler's FRIEND: Kael Davan
**Who they are:** Dock worker at the Logistics Hub. The smuggler's closest colleague — they share shifts, eat lunch together, cover for each other. Kael is in the ring. He handles the physical cargo: routing flagged containers, managing the dock-side handoffs. He's been doing this for two years and is good at it.
**Surface presentation (first 10 minutes):** Warm, reliable, slightly sardonic. Greets the smuggler with genuine affection. Talks about shift schedules, complains about Voss, asks about your weekend. Feels like the best coworker you've ever had.
**What the smuggler knows:** Kael is a ring member. This isn't a secret from the smuggler — it's shared context. They work together on the legitimate side AND the illegitimate side. The smuggler trusts Kael because they've shared risk.
**The contradiction:** Kael is meeting with someone the smuggler doesn't recognize. Late. In the restricted maintenance corridor. The smuggler's monologue: *"That's Kael. But who's he talking to? I don't know that face."*
This is NOT the detective. This is someone else. Someone from outside the ring's known network. Kael has a side arrangement the smuggler doesn't know about — and the monologue's certainty ("I know everyone Kael knows") is what makes the discovery hit.
**The shift arc:**
| Phase | Timing | What the smuggler observes | Monologue register | Tell |
|---|---|---|---|---|
| **Comfort** | 0-10 min | Kael is warm, reliable, present. Business as usual. | Fond, casual: *"Kael's already at the dock. Good. The day's better when he's on shift."* | None — Kael is baseline comfortable |
| **First crack** | 10-15 min | Kael checks his lattice more often than usual. Excuses himself from lunch. | Mild curiosity: *"Kael's distracted today. Probably nothing."* | Behavioral: increased lattice checking, shortened social interactions |
| **The observation** | 15-20 min | The smuggler sees Kael in the restricted corridor talking to an unknown person. The person leaves before the smuggler gets close. | Alarm + confusion: *"That wasn't anyone from our rotation. And Kael didn't tell me about a meeting."* | Spatial: Kael in unexpected location at unexpected time |
| **Confrontation opportunity** | 20-25 min | The smuggler can ask Kael about it. Kael deflects: "Just a thing. Don't worry about it." He's lying. The smuggler KNOWS he's lying because they know Kael's tells. | Betrayal crystallizing: *"He looked left before answering. He always looks left when he's making something up. Kael is lying to me."* | Dialogue: evasion, subject change, forced casualness |
| **New equilibrium** | 25-30 min | Everything looks normal again. But the smuggler is now watching Kael. Every warm interaction is contaminated with doubt. | Conflicted: *"Same old Kael. Laughing at the same jokes. ...What are you not telling me?"* | Emotional: the smuggler's observation lines about Kael shift from fond to analytical |
**What Kael is actually doing (the truth the player may or may not discover):** Kael's partner Hael has been asking questions. Kael is scared. The unknown person is someone from a different district who's offered to help Kael exit the ring — for a price. Kael is trying to get out to protect Hael. He's not betraying the smuggler — he's trying to save his family. But from the smuggler's perspective, any unauthorized contact is a security breach.
**Why this works narratively:** The contradiction isn't "Kael is secretly evil." The contradiction is "Kael is secretly desperate, and his desperation is making him do exactly the kind of thing that could get everyone caught." The smuggler's anger is justified (Kael broke protocol). Kael's motivation is sympathetic (he's protecting his family). There's no clean answer. That's the conflict that Ozzie's D-027 criterion #3 is looking for: an NPC the player feels conflicted about.
**What this tests in the pipeline:** Full 10-axis profile, multi-phase dialogue that changes based on observation state, tell system (lattice checking, spatial deviation, dialogue evasion), monologue that tracks emotional shift over time, dual-lens notes (the detective sees Kael's behavior change too — but reads it as guilt, not desperation).
---
### Detective's FRIEND: Sera Venn
**Who they are:** Commission field technician, off-duty bar regular. Sera is the detective's pre-existing contact in the district — someone from the same institutional world who transferred to Sova a year ago. They're the detective's social anchor: the one person in the district who speaks their language, who understands institutional culture, who can be honest over a drink.
**Why a Commission tech, not another investigator:** Sera isn't the detective's partner or supervisor. She's lateral — a technician who maintains Commission equipment, not an investigator. This means she has institutional access (she knows Commission systems, she can look things up) but no investigative mandate. She helps the detective because they're friends, not because it's her job. That makes her help feel personal, not procedural.
**Surface presentation (first 10 minutes):** Competent, slightly wry, comfortable in the district. When the detective visits the bar, Sera waves them over. Easy rapport. She fills in background — who the regulars are, what the district's like, which areas to avoid after dark. She's the detective's guide to a place they don't know yet.
**What the detective knows:** Sera is reliable. She transferred to Sova for routine work after a stressful posting elsewhere. She doesn't have skin in the smuggling game. She's the detective's safe harbor in an unfamiliar social landscape.
**The contradiction:** Sera always leaves when Torek Lintar arrives at the bar. Always. Three times in a row. The detective's monologue: *"That's the third time Sera's left when Torek walked in. That's not coincidence."*
**The shift arc:**
| Phase | Timing | What the detective observes | Monologue register | Tell |
|---|---|---|---|---|
| **Trust** | 0-10 min | Sera is warm, informative, helpful. Shares district intel freely. Offers to look things up in Commission systems. | Professional + personal warmth: *"Good to see a familiar face. Sera always was the reliable one."* | None — Sera is baseline comfortable |
| **Background data** | 10-15 min | Sera mentions Hael (Kael's partner) as "a friend from the district." Hael joins them occasionally. Sera and Hael have a genuine friendship. | Noting: *"Sera's connected here. Good. She knows the locals."* | Social: Sera has relationships outside institutional channels |
| **The pattern** | 15-20 min | Third time Sera excuses herself when Torek arrives. Different excuses each time. "Early shift." "Headache." "Need to check on something." | Suspicion activating: *"That's the third time. Sera leaves when Torek arrives. Why?"* | Behavioral: avoidance pattern, excuse variety, timing correlation |
| **The question** | 20-25 min | The detective asks Sera about Torek. Sera tenses. "He's just a loud drunk. I don't like loud drunks." She's deflecting. Not quite lying — but not telling the whole truth. The detective's training flags the evasion. | Professional analysis + personal conflict: *"She's not lying. But she's not telling me everything. Sera, what do you know?"* | Dialogue: controlled deflection, topic change, re-establishing warmth quickly |
| **Contaminated trust** | 25-30 min | Sera continues being helpful. Maybe even MORE helpful — as if compensating. But the detective can't stop watching her. Is Sera compromised? Is she protecting someone? Is she protecting the detective from something? | Analytical doubt: *"Still the same Sera. Still reliable. ...But reliable about what?"* | Emotional: the detective's observation lines about Sera shift from trusting to evaluating |
**What Sera actually knows (the truth the player may or may not discover):** Sera knows Torek. She knows him because Hael confided in her about Kael's behavior, and Sera — being a Commission tech with access to systems — ran an unofficial check on Kael's work patterns. She found the manifest discrepancies. She knows something is wrong at the logistics hub. She hasn't reported it because Hael is her friend and reporting would mean Hael's partner gets investigated, possibly arrested, and Hael's life falls apart. Sera is protecting Hael by not reporting. She avoids Torek because Torek is connected to the ring and she doesn't want to be seen near him while she's sitting on unreported evidence.
**Why this works narratively:** Sera isn't corrupt. She isn't a traitor. She's a good person making a terrible choice: loyalty to a friend vs. duty to her institution. The detective's discovery doesn't reveal a villain — it reveals a moral compromise that the detective themselves might understand. The conflict becomes: do I report Sera? Do I use what she knows? Do I confront her and risk losing my only ally in the district?
**Why the Sera-Hael-Kael chain works:** Triangle 4 (The Worried Partner) feeds directly into Sera's contradiction. Hael's worry about Kael becomes Sera's knowledge. Sera's silence becomes the detective's discovery. The detective's investigation into the smuggling ring passes directly through their friend's concealment. Every thread is connected. That's the web.
### THE FRIEND Design Principles (Reusable Pattern)
Both FRIEND NPCs follow the same structural pattern. This is the reusable template for production-level complex NPCs:
| Element | Requirement |
|---|---|
| **Relationship phase** | 3+ phases with distinct monologue registers (trust, crack, contamination) |
| **Observable contradiction** | Discoverable through the observation system, NOT told through dialogue |
| **Sympathetic motivation** | The FRIEND isn't evil — their concealment comes from a place of care or fear |
| **No clean resolution** | The player can't "fix" the situation without cost. Every response (confront, ignore, exploit, protect) has consequences |
| **Dual-lens resonance** | The other character's playthrough recontextualizes the FRIEND's behavior. Kael's desperation reads differently when you've played the detective and know the investigation is closing in. Sera's silence reads differently when you've played the smuggler and know what she's protecting. |
| **Triangle integration** | The FRIEND's contradiction connects to at least one triangle, creating cascade potential |
| **Tell progression** | 3+ observable behavioral changes that the monologue system can flag |
| **Dialogue shift** | Pre-discovery and post-discovery dialogue pools must feel different — same person, different tension |
---
## 6. Mirror Moments — Refined by Mellanie's Monologue Approach
Mellanie confirmed: separate pools, observation-event-triggered, independently coherent. This is the right foundation for mirror moments. Let me refine my Round 1 proposals against her authoring model.
### What Changed
In Round 1, I proposed mirror moments as paired monologue lines tagged to the same observation trigger. After reading Mellanie's approach, I'm refining: mirror moments aren't a special content type — they're a **quality of certain monologue lines that only becomes apparent on replay.** The authoring format doesn't need a "mirror" tag. It needs two independently authored lines that happen to respond to the same trigger, written by someone (me, reviewing Mellanie's work) who understands both characters well enough to ensure the ironic resonance.
### The Mirror Moment Authoring Process
1. Mellanie writes the monologue pools per character, per trigger.
2. I review both pools side by side and identify **natural mirrors** — places where the two characters' responses to the same trigger create dramatic irony.
3. Where natural mirrors don't exist but should, I flag the gap. Either Mellanie writes a new line, or I propose one for her to voice-match.
4. I tag mirrors in the authoring notes (the `dual_lens` field in Gestalt's format), NOT as a system tag. Mirrors are an authoring-layer quality check, not a runtime filter.
### Revised Mirror Moments for v0.1
I'm keeping my Round 1 proposals but grounding them in Miri's Sova setting and Mellanie's trigger taxonomy.
| Mirror | Trigger | Smuggler Line | Detective Line | What replay reveals |
|---|---|---|---|---|
| **1: The Friend's Routine** | `observe_npc` (Kael arriving at work) | *"Kael's here. Good — I was starting to worry."* | *"The dock worker from the case file. Davan, K. Unremarkable on paper."* | The smuggler's warmth + the detective's clinical assessment of the same person. On replay, the player recognizes that one character's friend is the other character's suspect. |
| **2: The Empty Corridor** | `enter_location` (maintenance corridor, night) | *"South access is clear. Nobody using the route tonight. Good."* | *"This corridor should see foot traffic during shift change. It's empty. Why?"* | The smuggler's relief IS the detective's clue. On replay, the player understands the silence is manufactured. |
| **3: The Worried Partner** | `observe_npc` (Hael at the bar, looking tired) | *"Hael looks rough. I should probably not mention seeing Kael at the hub so late."* | *"Spouse of hub worker Davan. Visible stress markers. Possible entry point for information."* | The smuggler sees a friend to protect. The detective sees a source to cultivate. Hael is caught between two people who both think they're acting in Hael's interest. |
| **4: The Spending** | `observe_npc` (Torek buying a round) | *"Torek's generous tonight. He needs to be more careful with that."* | *"The dock worker — Lintar — buying drinks for the table. On a standard logistics salary?"* | The smuggler knows (or suspects) where the money comes from and worries about exposure. The detective sees the spending as a financial tell. Same observation, different fear. |
| **5: Sera Leaving** | `witness_interaction` (Sera excuses herself when Torek arrives) | *"Sera's headed out. Smart — Torek gets loud after three drinks. Nobody wants to deal with that."* | *"That's twice now. Venn leaves when Lintar arrives. Coincidence? Filing it."* | The smuggler has the innocent explanation (Sera avoids loud drunks). The detective has the investigative read (avoidance pattern). On replay as the smuggler, the player who played detective first thinks: "Wait — WAS it just the noise?" |
| **6: The Hum** | `enter_location` (near span gate terminal) | *"The gate hum's stronger today. More transits than usual. Should be a busy shift."* | *"Increased gate activity. Higher cargo volume means more opportunity for irregularities."* | Same sensory data, different interpretive framework. Smuggler thinks logistics. Detective thinks investigation. Both are right. |
| **7: The Commission Kiosk** | `enter_location` (passing the Commission terminal in the hub) | *"The Commission kiosk. Nobody ever uses it for anything real. Keep walking."* | *"Institutional presence. Minimal. That's either reassuring or concerning."* | The smuggler dismisses institutional infrastructure. The detective evaluates it. On replay, the player understands how the ring benefits from the smuggler's attitude being universal. |
**Target: 10-12 mirror moments for v0.1.** These 7 are the core structural mirrors tied to major narrative elements (THE FRIEND, the triangles, the setting). I'll identify 3-5 more during the review pass on Mellanie's monologue pools — organic mirrors that emerge from the content rather than being pre-designed.
---
## 7. Reaction to Miri's Sova Transit District
### Does the economics/motivation chain work for my narrative?
**Yes. Emphatically.**
Miri's Sova setting is exactly the economic substrate I asked for in Round 1. Let me trace the chain:
```
Freight economy (steady but modest wages)
→ Permanent mild financial pressure (comfortable but tight)
→ Smuggling as supplemental income (rational risk calculus)
→ Community complicity (everyone benefits indirectly)
→ Institutional thin-ness (Commission is intermittent)
→ Normalized deviance (the abnormal becomes normal)
→ The detective walks into a community that resists investigation not from malice, but from self-interest
```
This chain does three critical things for my narrative design:
**1. It makes the smuggler sympathetic.** The smuggler isn't a cartel boss — they're a logistics worker who said yes to moving a container and discovered they're good at it. The ring isn't violent, isn't chaotic, isn't even particularly ambitious. It's a community survival mechanism. When the detective threatens to dismantle it, they're threatening the economic immune system Miri described. That's genuine moral complexity, not just "both sides."
**2. It makes the detective's job genuinely hard.** The detective enters a district where non-cooperation is the default — not because people are criminal, but because the grey economy is everyone's business. Even flat NPCs have a reason to be unhelpful. Pael the maintenance tech doesn't know about the ring, but he's noticed his paycheck covers more than it should (contractors paid through ring-adjacent money). Drin the inspector looks away not because he's evil but because his gambling debt makes him vulnerable and the ring made that vulnerability work for them. Every NPC Miri describes has a motivation chain that starts with "the economy is slightly too tight for comfort."
**3. It grounds the triangles in economic reality.** Triangle 2 (Worried Knowledge) exists because Maret processes manifests for a living and notices discrepancies. Triangle 3 (Bar Tensions) exists because Torek's spending is visible in a community where everyone knows everyone's financial position. Triangle 4 (Worried Partner) exists because Kael's late nights are economically implausible on a standard salary. The economic substrate generates the social signals that the observation system tracks.
### What I need from Miri in Round 2 or a follow-up
Three small additions to the Sova brief that would tighten the narrative:
1. **The specific contraband mix.** Miri proposed unlicensed lattice components as primary cargo. I endorse this strongly — it creates the moral ambiguity of "they're moving access, not weapons." But I also want one item in the mix that's darker: something the smuggler doesn't look at too closely, that hints at the ring being connected to something bigger than local commerce. A sealed container that Nils says is "just components" but is heavier than it should be. This is the storyteller's contamination seed — the thing that makes the smuggler question whether they really know what they're part of.
2. **The Commission liaison rotation detail.** Miri says the previous liaison was reassigned 3 months ago. I need to know: was this actually routine, or was it arranged? If the ring (or someone above the ring) influenced the rotation to get a less experienced liaison, that's a deeper conspiracy thread the detective can discover. If it was genuinely routine, that's a red herring the detective might chase. Either way, I need to know so I can write the NPC dialogue around it.
3. **Hael's profession detail.** Miri placed a "teacher/family person" in the bar. If Hael is a teacher, what do they teach? Station kids? Adult education? This matters because Hael's social position affects how their worry reads to both characters. A teacher is someone the community trusts and respects — their worry carries social weight. If Hael starts asking questions publicly, the community pays attention in a way they wouldn't if Hael were just "someone's partner."
### One strong validation
Miri's naming conventions work. Kael, Voss, Lera, Torek, Drin, Maret — compact, consonant-heavy, first-name-primary in social contexts. These names are writeable. Mellanie can put these in dialogue and they feel natural. The IP distance from Hamilton's conspicuously-English names (Ozzie, Nigel, Paula) is exactly right. I've added Nils, Hael, Sera, Naia, Kosse, Pael, Tev, and Ren to fill the remaining roster slots, following Miri's conventions.
---
## 8. Cross-Agent Synthesis: What I Need From Each Person
| From | What I need | Why | When |
|---|---|---|---|
| **Mellanie** | Provisional voice kit drafts (3 options per character) | I can't finalize THE FRIEND dialogue until I know how the characters sound. Give me the options, I'll select/blend based on narrative needs. | Before content packs |
| **Mellanie** | Review of my mirror moment proposals | Are these writable? Do the voice registers hold? Would you phrase them differently? | After voice kits |
| **Gestalt** | Confirmation that the access tier shift table (Section 3) maps cleanly to the line selection pipeline | If tier shifts change the `access` tag mid-game, does the selection pipeline handle that? Or does it need a state flag? | Before Dual Lens Guide final draft |
| **Gestalt** | Tell trigger specification for THE FRIEND arcs | Kael's lattice-checking and Sera's avoidance pattern need to be expressible as observation triggers. Are they in the taxonomy? | Before FRIEND profiles |
| **Miri** | Contraband specifics, Commission rotation backstory, Hael's profession | Three small setting details that tighten narrative threads. See Section 7. | Before NPC profiles |
| **Miri** | Review of my NPC naming additions | Do Nils, Hael, Sera, Naia, Kosse, Pael, Tev, Ren fit Krenn System conventions? | Quick validation |
| **Araminta** | Spatial layouts for all three templates | I need to know where NPCs physically ARE before I finalize routine descriptions and observation opportunities. Where does the "restricted corridor" meeting happen? Where is the bar's corner booth? | Parallel with content packs |
| **Araminta** | Confirmation that color shifts support THE FRIEND arc | When the smuggler discovers Kael's secret meeting, does Kael's color shift from green to amber? What triggers that visually? | Before FRIEND profiles |
| **Ozzie** | Gut check on THE FRIEND contradiction arcs | Do Kael and Sera's shifts feel right emotionally? Is the discovery satisfying? Does the replay resonance work? | After this document |
---
## 9. Summary: What I Deliver Next
| Deliverable | Priority | Depends On | Target |
|---|---|---|---|
| **Dual Lens Authoring Guide — full draft** | Critical (blocks everything) | Nothing — writing now | Next sprint |
| **THE FRIEND: Kael Davan — full production profile** | Critical (pipeline test) | Dual Lens Guide, Mellanie voice kits, Miri setting details | After DLG |
| **THE FRIEND: Sera Venn — full production profile** | Critical (pipeline test) | Same as above | After DLG |
| **Relationship web (this document, Section 4) — formalized** | High | Miri validation, Araminta layouts | After layouts |
| **NPC Profiles: Tier 1 (4 entangled: Nils, Kosse, Naia, + Kael enhanced)** | High | Relationship web, Dual Lens Guide | After DLG |
| **NPC Profiles: Tier 2 (7 mundane: Voss, Maret, Drin, Lera, Torek, Hael, Sera enhanced)** | High | Tier 1 profiles | After Tier 1 |
| **NPC Profiles: Tier 3 (3 flat: Pael, Ren, Tev)** | Medium | Setting brief | After setting |
| **Access tier shift design document** | High | Gestalt validation | After DLG |
| **Mirror moment review pass** | Medium | Mellanie's monologue pools | During content pack authoring |
| **Contradiction arc design document** (reusable pattern) | Medium | Both FRIEND profiles complete | After FRIEND profiles |
The Dual Lens Guide is the critical path. Everything else follows from it. I'm starting the full draft immediately after this workshop concludes.
---
*The honest truth is: Round 1 gave us the parts. Round 2 is about the connections between the parts. The relationship web isn't just NPCs in a grid — it's a chain of consequences where Kael's fear for Hael becomes Sera's silence becomes the detective's doubt becomes the smuggler's betrayal. Every thread pulls on every other thread. That's what makes 15 NPCs feel like a community, not a cast list. And THE FRIEND, at the center of each character's web, is the emotional proof that the whole system works.*
*Paula out. The web is woven. Now we write the people in it.*