Spring-cleaning accumulated v0.1 vertical-slice residue across the wiki. Scope per Jeroen's pre-decisions on 2026-04-21: - Delete outright: wiki/star-systems/GJ-35/sova/ subtree (5 files + 2 dirs) — v0.1 Station Sova / Transit District content. - Strip example blocks in authoring guides and _templates/ that cited dropped v0.1 NPCs (Kael Davan, Sera Venn, Nils Davan, Devra, Torek, Renn, Pell, Tav, Lera Sessik, Sabel). Replaced with short "v0.1 examples removed — D-122" notes pointing authors to the active NPC roster. - Rewrite canonical-lore references file-by-file: faction pages, technology pages, contraband pages, concepts pages, corp pages that cited v0.1 names/places. Preserve institutional/structural content, drop specific-name citations. - Commission name drift: replace "Concord Commission" and "Assembly Commission" with "the Lattice Commission" (D-193) throughout. - Van Maanen's Star cultural references: the canonical in-game name is Vuurkloof. "Van Maanen's Star" is retained only as an astronomical designation (glossary + GJ-35 Calibration Note). All cultural/system references converted to Vuurkloof across culture-authoring-guide, cultural-generation-guide, founder-gates, and star-system adjacent-system descriptions. - Strip `v0.1` from faction/triangle frontmatter tags (8 files). - wiki/triangles/hub-power.md and wiki/factions/the-ring.md: rewritten using role-name exemplars (Ring Coordinator / Shift Supervisor / THE FRIEND) instead of named v0.1 NPCs. Triangle pattern preserved as a structural reference. Also applies drive-by Commission drift fixes and minor cross-ref updates to canonical corps (gate-corporation, mastroianni-vehicle-group, stalownia-kowalski, prometheus-labs, ferreira-monteiro, vins-de-grand-vide, and 13 others). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 KiB
Dual Lens Authoring Guide
Content Design Document | Blocks: 11 downstream tickets | Status: Draft Author: Mellanie (Copywriter) + Paula (Narrative & Political Depth) Date: 2026-02-12
Document Purpose
This guide defines how content authors write for two playable characters experiencing the same world through different perspectives. Every dialogue line, monologue line, and NPC profile must work for BOTH the smuggler AND the detective. Same world. Two lenses. Zero shared monologue lines. Maximum narrative divergence from minimal content duplication.
Critical Dependencies:
- D-027: Vertical slice — smuggler + detective two-character proof
- D-028: Dialogue architecture — tagged line pools with four relational layers
- D-032: Separate monologue pools per character (hard partition, non-negotiable)
- D-034: THE FRIEND — production-level NPC pattern
- D-035: Converged tag taxonomy for dialogue and monologue line pools
Chapter 1: Core Identity + Emotional Starting State
Who Is The Smuggler?
v0.1 starting-state profile removed — cited named NPCs no longer in v0.2 pipeline (D-122). Author per-district character profiles against the active NPC roster.
Structural starting state (archetype constants):
Occupation: Logistics worker at the district freight terminal. Ring Position: Mid-level operator. Handles physical cargo routing, knows schedule windows. Lattice Tier: Baseline (civilian-grade, no augmentation)
Emotional Baseline (invariant):
- Comfortable-tense. Managing a life with two faces: legitimate worker (public) and ring operator (hidden). The cognitive load is constant but bearable. The team feels like family — shared risk creates trust.
- Loyal to people, not institutions. Thinks relationally, not institutionally. Institutions (Commission, Concord, Syndic) are distant, abstract, often adversarial.
- Operational thinking mode. Time-aware, route-aware, schedule-aware. Worries about exposure and protecting the team.
- Protectiveness over the team. Would cover for THE FRIEND even at personal cost.
Who Is The Detective?
v0.1 starting-state profile removed — cited named NPCs no longer in v0.2 pipeline (D-122). Author per-district character profiles against the active NPC roster.
Structural starting state (archetype constants):
Occupation: Commission investigator, assigned to the district for manifest irregularity investigation. Assignment Duration: New arrival. Session start is early in the investigation. Lattice Tier: Standard professional (Commission-grade diagnostic tools, analytical overlays)
Emotional Baseline (invariant):
- Professional-cautious. Trained to observe, analyze, withhold judgment until evidence accumulates. Isolation in an unfamiliar community. Non-cooperation is the district default.
- Analytical habit. Counts things. Tracks frequencies. Flags inconsistencies. Self-directs: "filing it," "noted," "coincidence?" Internal bookkeeping runs in background.
- Institutional frame. Thinks in terms of evidence, patterns, leverage. Surnames before first names for targets. The shift from surname to first-name IS a relationship marker.
- Moral position. Believes in the work. Smuggling isn't victimless. But the grey accumulates: ring members aren't cartel bosses, they're workers who said yes once and kept saying yes.
Starting State Comparison
| Dimension | Smuggler | Detective |
|---|---|---|
| Knowledge of the ring | Insider. Knows who, what, when, where. Operational detail. | Suspects. Has data anomalies, no confirmed names. Investigative frame. |
| Relationship to NPCs | Personal. First-name basis. History, trust, loyalty. | Clinical. Surname-first. Categorizes by role and behavior. |
| Emotional orientation | Protective. Worries about people. "Is {FRIEND} okay?" | Analytical. Worries about patterns. "Why is {subject} nervous?" |
| Lattice capability | Baseline. No enhanced perception, no analytical overlays. | Professional. Diagnostic access, pattern recognition tools. |
| Social position | Insider. Belongs. Everyone knows the smuggler. | Outsider. Institutional authority resented by the community. |
| Moral framing | Pragmatic complicity. "We're careful. We take care of our own." | Institutional clarity. "This is a crime. There are victims." |
| What threatens them | Exposure (being caught, losing the team). | Failure (case goes cold, ring stays hidden). |
Chapter 2: The Dual-Lens Rule
The Core Test
Every content piece — dialogue line, monologue line, NPC profile axis — must work for BOTH characters. Ask:
- Does this line make sense if the smuggler experiences it?
- Does this line make sense if the detective experiences it?
- Does this line reveal something different to each character?
- Is the access tier correct for both characters?
- Does this line advance at least one character's emotional arc?
If the answer to 1 or 2 is "no," the line is broken. If the answer to 3 is "no," the line isn't dual-lens — it's just generic.
Three Types of Dual-Lens Difference
Type 1: Access Difference
The smuggler hears a line the detective doesn't (or vice versa) because of access tier filtering.
Example:
- id: terminal_d_044
role: dock_worker
text: "Container {N} sat in temp storage overnight. Scheduling backed up again."
access: [public, peer]
trust: surface
situation: [shift_start]
dual_lens:
smuggler: "Operational context — part of the ring pipeline. 'Backed up' is cover language."
detective: "Anomaly — overnight exceeds standard procedure. Flag for investigation."
Both characters can hear this line (public + peer both accessible). But the smuggler ALSO hears ring-specific operational dialogue that the detective never accesses:
- id: terminal_d_045
role: dock_worker
text: "{Container N} is routed for transfer at 14:30. {Supervisor} kept the window clear."
access: [insider]
trust: real
situation: [shift_transition]
dual_lens:
smuggler: "Confirmation — the route is active, the supervisor is cooperating."
detective: "Never hears this line. Doesn't have insider access."
Type 2: Interpretation Difference Both characters hear the same NPC dialogue, but their monologue reactions interpret it differently.
Shared dialogue line:
- id: bar_d_033
role: bartender
text: "{THE FRIEND} left early. Headache, they said."
access: [public]
trust: surface
Smuggler monologue reaction:
- id: bar_m_051
character: smuggler
trigger: post_conversation
text: "{THE FRIEND}'s gone. Good — one less Commission presence in the room."
mood: [relieved]
Detective monologue reaction:
- id: bar_m_052
character: detective
trigger: post_conversation
prerequisite:
known_attributes:
subject: {friend_npc_slug}
key: behavior_flags
value_contains: avoidance_pattern
text: "Second time {THE FRIEND} left when {NPC} arrived. Coincidence?"
mood: [suspicious]
Same dialogue. Smuggler reads it as relief (less oversight). Detective reads it as a behavioral tell (avoidance pattern forming).
Type 3: Emotional Weight Difference The relationship history creates different emotional stakes for the same observation.
Observation trigger: THE FRIEND checking their lattice for the third time in ten minutes.
Smuggler monologue:
- id: terminal_m_011
character: smuggler
trigger: observe_anomaly
prerequisite:
relationship_state: Friendly
subject: {friend_npc_slug}
text: "{THE FRIEND} keeps checking their lattice. Waiting for a message? Not like them to be jumpy."
mood: [concerned]
topic: [colleague]
Detective monologue:
- id: terminal_m_042
character: detective
trigger: observe_anomaly
prerequisite:
relationship_state: Known
subject: {friend_npc_slug}
text: "Dock worker {Surname} — lattice activity spiked. Expecting a message? Or checking for surveillance?"
mood: [analytical]
topic: [investigation]
Same behavior. Smuggler worries about a friend ("Not like them"). Detective analyzes a subject ("Dock worker {Surname}"). Emotional weight is asymmetric.
Tag Implications
The dual-lens rule is enforced through the tag taxonomy (D-035). Here's how tags create different content surfaces from the same pool:
access Tag — Hard Filter (D-028 Layer 1)
| Access Tier | Who Gets It | Smuggler Example | Detective Example |
|---|---|---|---|
public |
Everyone | Bar greeting, shift small talk | Commission procedural questions |
peer |
Known or Friendly relationship | Coworker gossip, shift complaints | Institutional background sharing ({THE FRIEND} to detective) |
insider |
Friendly relationship only | Ring operational talk, close confidences | Never unlocked for ring NPCs (detective is outsider) |
authority |
Detective only, works at Unknown/Known/PersonOfInterest | Institutional leverage questions | Smuggler never has authority access |
hostile |
Hostile relationship only | Threats, final warnings | Post-cover-blown confrontation |
Critical rule: When THE FRIEND transitions from Friendly to PersonOfInterest (THE FRIEND contradiction), insider and peer lines LOCK OUT. The smuggler still sees THE FRIEND, still interacts with them, but the warm operational dialogue disappears. That absence IS the emotional payload.
trust Tag — Hard Filter (D-028 Layer 3)
Within each access tier, trust further filters content:
| Trust Level | What It Gates |
|---|---|
surface |
Safe topics, social norms, what anyone would say |
real |
Honest opinions, unguarded speech, actual feelings |
secret |
Dangerous knowledge, confessions, things that create leverage |
A line tagged access: [insider], trust: secret is the deepest content — only available to the smuggler, only when THE FRIEND is Friendly, only when trust has been earned through repeated interaction.
character Tag — Hard Partition (D-032)
Monologue pools are completely separate. The smuggler's monologue pool lives in monologue-smuggler.yaml. The detective's pool lives in monologue-detective.yaml. No shared lines. This is non-negotiable.
Same trigger, different pool. That's how mirror moments work without either pool knowing about the other.
Authoring Workflow
When writing a line:
- Write the line. Concrete, in the speaker's voice.
- Check both readings. Document the dual-lens split in the
dual_lensfield:dual_lens: smuggler: "How the smuggler interprets this." detective: "How the detective interprets this." - Verify neither reading breaks. If the line only works for one character, use a different
accesstier or rely on character-specific monologue to recontextualize. - Tag correctly. The
access,trust,situation,mood, andtopictags must express the dual-lens difference mechanically.
Chapter 3: Access Tier Mapping
Per-NPC Access Mapping
v0.1 named-NPC access table removed — cited NPCs no longer in v0.2 pipeline (D-122). Author per-district access mapping tables against the active NPC roster using the format below.
How each character relates to key NPCs at session start:
| NPC | Smuggler Access | Detective Access | Shift Path (Smuggler) | Shift Path (Detective) |
|---|---|---|---|---|
| {FRIEND A} (Smuggler's FRIEND) | insider, peer |
public → authority (if flagged) |
insider → locked out (post-contradiction, PersonOfInterest) |
public → authority (investigation progresses) |
| {FRIEND B} (Detective's FRIEND) | public (Commission, wary) |
peer → authority (post-contradiction) |
No shift (smuggler doesn't develop relationship) | peer → authority (trust breaks, PersonOfInterest) |
| {Supervisor} (shift supervisor) | insider (colleague, knows smuggler is ring) |
authority |
insider → hostile (if cover blown) |
authority → peer (if detective earns trust) |
| {Bar Owner} | insider (bar regular, ring-aware) |
public → peer (repeat visits) |
No major shift | public → peer (regular status, 3-4 visits) |
| {MIRROR} (FRIEND's partner) | peer (through FRIEND) |
public → peer (through FRIEND B) |
peer → hostile (if MIRROR learns truth about ring) |
public → peer (FRIEND B introduction) |
| {Ring-adjacent NPC} | insider or peer (depends on smuggler's knowledge of connection) |
public |
No shift | public → authority (if behavioral tells flagged) |
| {Scheduler/Admin} | insider (hub colleague) |
authority |
No major shift | authority → peer (if they cooperate) |
| {Compromised NPC} | insider (hub colleague, smuggler knows they're compromised) |
authority |
insider → hostile (if they turn informant) |
authority (detective can apply pressure via known leverage) |
Access Tier Shift Paths (Per Social Site)
The Terminal (Logistics Hub)
| Character | Starting Tier | Likely Shift | Trigger | Content Requirement |
|---|---|---|---|---|
| Smuggler | insider + peer |
insider → hostile |
Cover blown — seen with detective, ring member reports suspicion | Dialogue lines for "former colleague now enemy" tone. Monologue lines for paranoia, betrayal. |
| Detective | authority |
authority → peer |
Earns trust by keeping a minor infraction quiet, helping with a non-smuggling problem | Dialogue lines for "institutional authority softening to personal rapport." Monologue shift from clinical to sympathetic. |
The Last Shift (Bar)
| Character | Starting Tier | Likely Shift | Trigger | Content Requirement |
|---|---|---|---|---|
| Smuggler | insider (regular) |
insider → hostile |
Social contamination from hub (ring turns on smuggler) | Bar dialogue shifts from warm to cold. The bar owner stops saving the smuggler's seat. Regulars stop buying rounds. |
| Detective | public |
public → peer |
Repeated visits (3-4), becomes a regular, earns the bar owner's respect | Greeting dialogue warms. {THE FRIEND} introduces detective to regulars. Access to bar gossip unlocks. |
The Ring (Smuggling Operations)
| Character | Starting Tier | Likely Shift | Trigger | Content Requirement |
|---|---|---|---|---|
| Smuggler | insider + peer |
peer → hostile |
Suspected of cooperation with detective, unauthorized contact with the detective | Ring dialogue becomes interrogative. Ring leadership questions loyalty. Operational info stops flowing. |
| Detective | public (doesn't know ring exists) |
public → hostile |
Stumbles into ring awareness — NPCs react defensively | Immediate evasion. Doors close. No access to insider content, but NPCs' defensive behavior is itself evidence. |
What Access Tier Shifts Mean for Content Packs
Every content pack must support:
- Starting state dialogue — the baseline access tier per character
- Shifted state dialogue — the most likely tier transition per character
- Monologue that tracks the shift — the character's internal reaction to changed access
Example from THE FRIEND content pack:
Starting state (Friendly, insider access):
- id: terminal_d_120
role: dock_worker
text: "Container {N} is flagged. I'll reroute it during shift transition."
access: [insider]
trust: real
situation: [shift_transition]
notes: "Ring operational talk. Only smuggler hears this."
Shifted state (PersonOfInterest, insider locked out):
- id: terminal_d_121
role: dock_worker
text: "Shift's running smooth today. No issues."
access: [public]
trust: surface
situation: [shift_start]
notes: "Post-contradiction. THE FRIEND is surface-normal. The warmth is gone. The insider content is locked."
Smuggler monologue tracking the shift:
- id: terminal_m_122
character: smuggler
trigger: post_conversation
prerequisite:
relationship_state: PersonOfInterest
subject: {friend_npc_slug}
text: "Same old {THE FRIEND}. Same jokes, same routine. ...What are you not telling me?"
mood: [conflicted]
topic: [colleague]
notes: "Phase 5: Contaminated trust. Every normal interaction is now suspicious."
Chapter 4: Divergence Escalation Curve
The vertical slice is 30 minutes. Divergence between the smuggler and detective experiences escalates over time. Here's the minute-by-minute curve:
Minutes 0-10: Minimal Divergence
Shared Experience:
- Both characters enter the same locations (The Terminal, The Last Shift).
- Both see the same NPCs moving through their routines.
- Both hear similar
public-tier dialogue (greetings, small talk, shift schedules). - Both experience the same sensory atmosphere (station hum, cargo machinery, recycled air).
Minimal Differences:
- Monologue voice is different (smuggler: casual, relational; detective: analytical, institutional).
- NPC greetings vary by recognition (smuggler gets "There you are" from THE FRIEND; detective gets "Can I help you?" from the supervisor).
- The smuggler's monologue references operational context ("shift transition in thirty minutes"). The detective's monologue references investigative context ("manifest discrepancies tied to this hub").
Player Experience: The two characters feel similar. The world is shared. The voice is different, but the content overlap is high. This is intentional — it establishes the baseline before divergence accelerates.
Minutes 10-20: Growing Divergence
Access Tiers Start to Differ:
- The smuggler hears
insiderdialogue from THE FRIEND, colleagues, bar regulars. Ring operational talk. Close colleague warmth. - The detective hears
authoritydialogue from hub workers and supervisors. Institutional leverage questions. Evasive answers. - The smuggler's
peeraccess to bar regulars unlocks gossip, complaints, social texture. The detective is stillpublicat the bar — polite but distant.
Monologue Pools Diverge:
- The smuggler's monologue starts tracking operational risk: "That spending is too visible." "They've been quiet lately — did they notice something?"
- The detective's monologue starts tracking behavioral tells: "Dock worker {Surname} — lattice activity spiked." "{Supervisor} deflected when I asked about overnight containers."
NPCs Respond Differently:
- THE FRIEND (smuggler's) is warm to the smuggler (Friendly relationship), clinical to the detective (Unknown or Known).
- THE FRIEND (detective's) is warm to the detective (Friendly, pre-existing contact), wary to the smuggler (Commission presence).
- The bar owner is protective of regulars around the detective (defensive), casual with the smuggler (insider).
Player Experience: The same room. Different colors. Different names. Different monologue. The player who's played both paths starts to notice: "Wait, I didn't hear that line as the detective." The asymmetry is becoming visible.
Minutes 20-30: Maximum Divergence
Completely Different Internal Experiences:
Smuggler (navigating ring crisis):
- THE FRIEND's contradiction discovered. The FRIEND arc is in Phase 3-4 (shock, confrontation).
- Monologue is emotionally loaded: hurt, betrayal, protectiveness, fear of exposure.
- Access to
insidercontent at the terminal and bar. Operational dialogue about shift windows, container routing, risk management. - Relationship stakes are personal: "THE FRIEND is lying to me. What do I do? Confront? Protect? Report up the chain?"
Detective (uncovering evidence):
- THE FRIEND's contradiction discovered. The FRIEND arc is in Phase 3-4 (pattern confirmed, question asked).
- Monologue is analytically loaded: suspicion, professional conflict, moral cost of using THE FRIEND's concealment.
- Access to
authoritycontent at the terminal. Institutional leverage. Some NPCs might cooperate. Others might turn. - Relationship stakes are institutional: "THE FRIEND knows something. Do I press? Report them? Protect them?"
Zero Overlap in Emotional Journey:
- The smuggler is inside a community facing internal betrayal.
- The detective is outside a community trying to crack it open.
- The same events (THE FRIEND's nervousness, THE FRIEND's avoidance, the ring's visible tells) mean completely different things to each character.
Player Experience: "I was only seeing HALF of this." The replay reveals a completely different game. Not just "I knew different things" — "I cared about different things." The divergence is total.
Content Authoring Implications
| Minutes | Dialogue Overlap | Monologue Overlap | NPC Behavior Overlap | Content Requirement |
|---|---|---|---|---|
| 0-10 | ~80% | 0% (separate pools) | ~90% (same routines) | Heavy public dialogue, light insider/authority |
| 10-20 | ~50% | 0% | ~70% (NPCs start reacting differently) | Balanced public/insider/authority, access tier shifts begin |
| 20-30 | ~30% | 0% | ~50% (relationships diverged) | Heavy insider (smuggler) and authority (detective), THE FRIEND arcs at peak |
Chapter 5: Authoring Checklist
Before submitting a line, ask:
Question 1: Does this line make sense if the smuggler hears it?
Test: Read the line aloud. Imagine the smuggler — a dock worker who's been in the district for years, knows the ring from inside, thinks in operational terms, worries about people. Does this line sound like something an NPC would say TO a smuggler? Or does it assume the listener is an outsider / authority figure?
Common failures:
- NPC explains basic station layout to the smuggler (the smuggler already knows).
- NPC uses institutional vocabulary the smuggler wouldn't recognize ("manifest reconciliation protocol" instead of "the paperwork doesn't match").
- NPC is defensive or evasive without cause (why would THE FRIEND be evasive with their closest colleague unless something's wrong?).
Fix: Rewrite the line for insider context. Or tag it access: [authority, public] so the smuggler never hears it.
Question 2: Does this line make sense if the detective hears it?
Test: Read the line aloud. Imagine the detective — a Commission investigator, new to the district, analytical training, institutional frame, no prior relationships except {THE FRIEND}. Does this line sound like something an NPC would say TO a detective? Or does it assume the listener already belongs to the community?
Common failures:
- NPC uses in-group slang or references without explanation (the detective doesn't have the context yet).
- NPC is too warm / too trusting (why would {Supervisor} share operational details with an investigator?).
- NPC volunteers sensitive information unprompted (people don't do that to authorities they don't trust).
Fix: Rewrite the line for outsider context. Or tag it access: [insider, peer] so the detective never hears it.
Question 3: Does this line reveal something different to each character?
Test: If both characters hear this line, do they interpret it differently? Does the smuggler's monologue reaction differ from the detective's? If both characters hear "Container 4471 sat in temp storage overnight," does one read it as operational routine and the other as procedural anomaly?
Common failures:
- The line is purely informational with no interpretive space ("The bar opens at 15:00" — both characters just learn the hours).
- The line is so specific to one character's context that the other character's hearing it feels wrong.
- The dual-lens difference isn't meaningful — both characters react the same way.
Fix: Add subtext. Create interpretive ambiguity. Or split the line into two versions (one insider, one public) that say similar things with different connotations.
Question 4: Is the access tier correct for both characters?
Test: Check the access tag. If it includes insider, can the detective reach that tier with this NPC? (Usually no — the detective is an outsider to the ring.) If it includes authority, does the smuggler have authority leverage over this NPC? (Usually no — the smuggler is peer-level.)
Common failures:
- Line tagged
access: [public, insider]— both characters hear it, but the insider-specific content makes no sense to the detective. - Line tagged
access: [authority]— detective gets institutional leverage questions, but the NPC's answer assumes peer relationship. - No
accesstag (defaults topublic) — line contains sensitive information that should be tier-gated.
Fix: Be explicit. If the line only works for one character, tag it access: [insider] or access: [authority] exclusively. If it works for both, tag access: [public, peer] and test both readings.
Question 5: Does this line advance at least one character's emotional arc?
Test: Does this line move a relationship forward? Deepen trust, reveal a contradiction, escalate tension, provide comfort, create doubt? Or is it purely functional (greeting, filler, repetition)?
Common failures:
- Line is generic social lubricant ("Nice weather today" — there's no weather on a station).
- Line repeats information the character already has ("they work at the dock" — the smuggler knows this).
- Line doesn't connect to any NPC axis (Want, Secret, Relationship, Tolerance) or triangle tension.
Fix: Every line should serve character, relationship, or narrative. If it doesn't, cut it or replace it with a line that does. Content budget is finite. No filler.
Chapter 6: THE FRIEND Specification
The Pattern
Each playable character has one "FRIEND" NPC — a production-level complex character that exercises every content and systems pipeline at full depth. THE FRIEND is the emotional centerpiece and carries D-027 success criterion #3 ("player names an NPC they felt conflicted about").
THE FRIEND follows a reusable pattern:
| Element | Requirement |
|---|---|
| Relationship phases | 3+ phases with distinct monologue registers (comfort → doubt → conflict) |
| Observable contradiction | Discoverable through observation, not told through dialogue |
| Sympathetic motivation | THE FRIEND isn't evil — their concealment comes from care or fear |
| No clean resolution | Every choice (confront, ignore, exploit, protect) has consequences |
| Dual-lens resonance | The other character's playthrough recontextualizes THE FRIEND's behavior |
| Triangle integration | THE FRIEND's contradiction connects to at least one triangle |
| Tell progression | 3+ observable behavioral changes the monologue system flags |
| Dialogue shift | Pre-discovery and post-discovery dialogue pools feel different |
Smuggler's FRIEND
v0.1 named-NPC profile removed — cited NPCs no longer in v0.2 pipeline (D-122). Author against the active roster.
Structural specification (invariant):
Who: A district worker who is the smuggler's closest colleague and a ring member. Handles physical cargo routing.
Surface Presentation (Minutes 0-10): Warm, reliable, slightly sardonic. Greets the smuggler with genuine affection. Feels like the best coworker you've ever had.
What the Smuggler Knows: THE FRIEND is a ring member. This is shared context. They work together on both the legitimate side and the ring side.
The Contradiction: The smuggler sees THE FRIEND in a restricted area talking to someone unrecognized. Late. Off-shift. THE FRIEND has an unauthorized contact the smuggler doesn't know about.
| Phase | Timing | Smuggler Observes | Monologue Register | Tell |
|---|---|---|---|---|
| Phase 1: Comfort | 0-10 min | THE FRIEND is warm, reliable. Business as usual. | Fond, casual. | None — baseline |
| Phase 2: First Crack | 10-15 min | Increased lattice checks. Early exits. | Mild concern: "Distracted today. Probably nothing." | Behavioral deviations |
| Phase 3: The Contradiction | 15-20 min | Unauthorized location. Unknown contact. | Alarm + confusion: "Who is that? That's not our rotation." | Spatial deviation |
| Phase 4: Confrontation | 20-25 min | THE FRIEND deflects: "Just a thing. Don't worry about it." | Betrayal crystallizing: "That tell. They're lying to me." | Tell confirmed |
| Phase 5: Contaminated Trust | 25-30 min | Surface normality. But the smuggler is watching. | Conflicted: "Same old them. ...What are you not telling me?" | Contaminated warmth |
Content Requirements: ~70-100 authored lines per character file.
Detective's FRIEND
v0.1 named-NPC profile removed — cited NPCs no longer in v0.2 pipeline (D-122). Author against the active roster.
Structural specification (invariant):
Who: A Commission field technician and bar regular. The detective's pre-existing contact in the district. Same institutional background. The detective's social anchor.
Surface Presentation (Minutes 0-10): Competent, slightly wry, comfortable in the district. Fills in background — who the regulars are, what the district's like. The detective's guide to an unfamiliar place.
What the Detective Knows: THE FRIEND is reliable. Transferred for routine work. No skin in the smuggling game. Safe harbor.
The Contradiction: THE FRIEND always leaves when a specific ring-adjacent NPC arrives at the bar. Always. Three times in a row. Different excuses each time.
| Phase | Timing | Detective Observes | Monologue Register | Tell |
|---|---|---|---|---|
| Phase 1: Trust | 0-10 min | THE FRIEND is warm, informative, helpful. | Professional + personal warmth: "Reliable. Finally someone who speaks my language." | None — baseline |
| Phase 2: Background Data | 10-15 min | THE FRIEND shows connections outside institutional channels. | Noting: "Connected here. Good." | Social: relationships beyond institutional role |
| Phase 3: The Pattern | 15-20 min | Third departure when the ring-adjacent NPC arrives. | Suspicion activating: "Three times. Three excuses. That's data." | Behavioral: avoidance pattern |
| Phase 4: The Question | 20-25 min | Detective asks. THE FRIEND deflects. | Analysis + personal conflict: "Not lying. But not telling everything." | Controlled deflection |
| Phase 5: Contaminated Trust | 25-30 min | THE FRIEND continues being helpful. Maybe too helpful. | Analytical doubt: "Still reliable. ...But reliable about what?" | Evaluating what was trusted |
Content Requirements: ~70-100 authored lines per character file.
Why THE FRIEND Works Narratively
The contradiction isn't "THE FRIEND is secretly evil." The contradiction is that THE FRIEND is desperate, or protecting someone, or making a terrible choice between loyalty and duty. Their motivation is sympathetic. The player's response is justified. No clean answer. That's the conflict.
Dual-Lens Resonance: The player who's completed both paths understands why THE FRIEND behaved as they did from both angles. The first reading felt like betrayal or concealment. The second reading reveals it as protection or fear. Same NPC. Different understanding.
Chapter 7: Voice Signature
Smuggler — Internal Voice Register
One-line summary: Watches people, not systems. Thinks in fragments. Worries about friends the way a dock worker worries — practically, physically, with the knot in the stomach, not the word for it.
Voice Parameters
| Parameter | Value | Example |
|---|---|---|
| Sentence length | Short. Fragments welcome. Rarely more than 2 sentences per monologue. | "They're here. Good." |
| Vocabulary | Concrete, physical, sensory. Trade jargon (containers, manifests, shifts, routes) without explaining. No institutional language. | "Recycled air and cargo lubricant." Not: "Standard atmospheric recycling." |
| Emotional register | Feeling-first, analysis second. Names the gut before the brain catches up. | "Starting to worry" before "something's off." |
| Relationship mode | First-name basis. People defined by connection, not role. | "{THE FRIEND}" not "{Surname}." "{NPC} is tense" not "the shift supervisor seems agitated." |
| Observation priority | People > environment > objects. Notices body language before cargo. | "THE FRIEND keeps checking their lattice" before "Container 4471 is still in temp." |
| Operational thinking | Present when thinking about the job. Time-aware, route-aware, schedule-aware. Filtered through "is this safe for my people?" | "Transition window opens in fifty minutes." |
| Self-reference | Rare. Thinks about others, not herself. When it occurs, through physical sensation. | "My stomach dropped" not "I feel betrayed." |
| Humor | Dry, situational, understated. Dark when stressed. Never witty. | "Home sweet home" about a cargo bay. |
What the smuggler doesn't do:
- Doesn't analyze systems.
- Doesn't use institutional vocabulary.
- Doesn't explain things to herself that she already knows.
- Doesn't monologue in paragraphs.
Voice Anchors (Reference Lines)
These 5 lines define the register. Every smuggler monologue should feel like it could sit next to these:
- Baseline warm: "Already at the dock. Good. The day's better when they're on shift."
- Operational: "Shift transition in thirty minutes. If the supervisor kept the schedule thin, the route's clear."
- Concerned: "They keep checking their lattice. Waiting for a message? Not like them to be jumpy."
- Hurt: "That tell. They always do that when they're making something up. I've known that tell for years. They're lying to me."
- Atmospheric: "Morning shift. Recycled air and cargo lubricant. Home sweet home."
Anti-Patterns (What the Smuggler Does NOT Sound Like)
- "I should investigate this anomaly further." (Too clinical. They'd think: "That's not right.")
- "The scheduling irregularity suggests systemic manipulation." (Institutional vocabulary. They'd think: "The rotation changed again.")
- "I need to consider the implications of their behavior for our operational security." (Analytical distance. They'd think: "What the hell are they doing?")
- "According to the manifest, this container should weigh 240 kilograms." (Explaining what they already know. They'd think: "Too heavy.")
Detective — Internal Voice Register
One-line summary: Categorizes first, feels second. Thinks in complete sentences. The institutional training runs in the background like an operating system — it never turns off, but sometimes the human overrides it.
Voice Parameters
| Parameter | Value | Example |
|---|---|---|
| Sentence length | Complete sentences, but not long. More structured than the smuggler. Occasional fragments for emphasis. | "Standard prefab, heavy foot traffic. Let's see what the shift change tells me." |
| Vocabulary | Institutional layer over plain speech. Professional terms: "case file," "filing it," "noted," "flagged." Not technical jargon — investigative habit. | "Dock worker. {Surname}, {initial}. Unremarkable on paper." The surname-comma-initial is institutional reflex. |
| Emotional register | Analysis-first, personal second. When personal breaks through, it's notable — a crack in the professional surface. | "They're not lying. But they're not telling me everything. {THE FRIEND}, what do you know?" The first-name appeal IS the emotion. |
| Relationship mode | Surname-first for targets and unknowns. First-name for allies and trusted. The shift IS a relationship marker. | "{Surname}, {initial}." early → "{first name}" never (smuggler's FRIEND, not detective's). "{THE FRIEND}" always (detective's FRIEND). |
| Observation priority | Patterns > people > environment. Notices deviations from expected before noticing the person. | "That's twice now" before "{THE FRIEND} leaves." The count matters more than the actor. |
| Analytical thinking | Automatic. Counts, tracks, flags. Self-directs: "filing it," "noted," "coincidence?" Internal bookkeeping. | "Three times. Three excuses. That's data." |
| Self-reference | More common than the smuggler, but always through professional lens. Monitors own state as evidence. | "I'm reading too much into this" — self-aware about analytical bias. |
| Humor | Wry, observational. Appreciates irony at a distance. Can laugh at himself. Never cruel. | "Only place in this district that doesn't smell like freight lubricant." |
What the detective doesn't do:
- Doesn't think in fragments (that's the smuggler).
- Doesn't use trade jargon he hasn't learned.
- Doesn't name-drop relationships he doesn't have.
- Doesn't express vulnerability directly — it leaks, he doesn't pour.
Voice Anchors (Reference Lines)
- Clinical baseline: "Logistics hub. Standard prefab, heavy foot traffic. Let's see what the shift change tells me."
- Pattern recognition: "That's the third time. {THE FRIEND} leaves when {NPC} arrives. Three different excuses, same result. That's not coincidence."
- Personal leak: "Good to see them. Always the reliable one. At least someone in this district speaks my language."
- Conflicted: "Same booth. Same warm smile. Same offer to buy me a drink. ...Everything except whatever they're not saying."
- Atmospheric: "Grain spirit and low conversation. Only place in this district that doesn't smell like freight lubricant."
Anti-Patterns (What the Detective Does NOT Sound Like)
- "They're here. Good." (Too terse. That's the smuggler. The detective: "{Surname}'s on shift. Standard.")
- "I feel uneasy about their behavior." (Direct emotional vocabulary. They'd think: "Something's off with them. Can't place it yet.")
- "This container has been tampered with, indicating smuggling activity." (Explaining the obvious. They'd think: "Weight's wrong. Noted.")
- "My heart sank when I saw the evidence." (Physical emotion — smuggler's register. Detective: "Didn't want to see that. But there it is.")
Voice Register Comparison — Same Observation, Two Characters
Trigger: Seeing a container in temp storage overnight.
- Smuggler: "That container's been in temp since yesterday. Someone forgot to process it, or someone's stalling."
- Detective: "Container in overnight temp. Unusual for a hub this size — turnaround is normally sub-eight hours. Flag it."
Trigger: Entering the bar.
- Smuggler: "The bar. Grain spirit and noise. Could use both right now."
- Detective: "Same crowd as yesterday. Let's see who's NOT here tonight."
Trigger: Noticing a civilian NPC (THE MIRROR type) is visibly upset.
- Smuggler: "They look rough today. Should check on them later."
- Detective: "Seems distressed. Not their baseline. Something at home, or something they've heard?"
Trigger: Hearing raised voices behind a door.
- Smuggler: "Raised voices from the back room. That's not a routine call."
- Detective: "Arguing behind that door. The bartender didn't flinch. Either she's used to it or she knows what it is."
Conclusion
The dual-lens rule is simple: one world, two perspectives, zero shared monologue lines. Every content piece must work for both characters. The smuggler sees home and sees betrayal. The detective sees a crime scene and sees moral complexity. Same NPCs. Same locations. Completely different games.
Write for the voice. Tag for the system. Test for both lenses. Cut ruthlessly.
That's the job.
End Dual Lens Authoring Guide