Files
settled-reach/wiki/authoring/npc-patterns/the-mirror.md
T
jpmschweitzerandClaude Opus 4.7 25eb8bd096 content(wiki): purge v0.1 Sova/Van Maanen residue (#865)
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>
2026-04-22 10:26:45 +02:00

28 KiB

THE MIRROR — NPC Pattern Specification

Pattern Type: Production-level Tier 1 (emotional depth, full 10-axis model) Design Principle: Transparency as contrast mechanism Ticket: #380


1. Pattern Definition

THE MIRROR is the honest-character NPC pattern. No contradiction arc, no deep secret, no hidden agenda. MIRROR NPCs are transparent — what you see is what you get.

Core mechanic: Their role in the system is to make surrounding dishonesty visible by contrast. When everyone else is hiding something, the one person who isn't becomes the emotional anchor.

Design payload: In a game built around asymmetric information and deception detection, THE MIRROR is the NPC whose absence of deception becomes its own kind of content. The player learns to read tells on every other NPC — facial tics, evasive answers, spatial deviations. Encountering someone without tells is disorienting and emotionally significant.

Thematic integration: THE MIRROR connects directly to Gore's contentment axis and the game's central question: "Is this enough?" The MIRROR NPC typically answers: "It was enough — until everything around me started falling apart." Their contentment is genuine, their worry is genuine, their emotional reactions are genuine. That honesty makes everyone else's lies painful by proximity.


2. Mechanical Rules

What MIRROR NPCs Do NOT Have

Absent System Why Missing Content Signal
No tells Tells imply deception or concealment. MIRROR has nothing to conceal from the player (though they may be uninformed about events around them). The absence of tells IS the tell — when the player has learned to read behavioral flags on every other NPC, encountering someone without them is the anomaly. The player's monologue might note: "No hesitation. No evasion. Either she's telling the truth or she's the best liar I've ever met." The absence becomes noticeable.
No dishonesty ≠ no misinformation MIRROR NPCs can be wrong without being deceptive. A MIRROR who has been lied to will repeat that lie in good faith -- they are transparent about what they believe, not omniscient about what is true. A MIRROR repeating a partner's cover story is honest transmission of a lie — they're being transparent about what they believe, not what is true. The player recognizes the MIRROR is being used as an unwitting conduit. This makes the liar's deception feel worse, not the MIRROR's honesty feel cheaper.
No secrets (or only mundane surface-level ones) The secret_held field is empty or contains only ordinary privacy (e.g., "worried about partner's late nights" — visible to anyone observant). No trust gates that reveal hidden criminal knowledge or conspiracies. If a MIRROR has a "secret," it's one they'd share with a sympathetic stranger at a bar. There's no revelation moment where the player discovers the MIRROR was hiding something all along.
No contradiction arc No phases, no discovery moment, no color shift from green to amber. The relationship with MIRROR is stable across the session. The trust level may deepen (public → insider → peer), but there's no betrayal moment. The MIRROR you meet at minute 5 is the same MIRROR at minute 25.
No trust-gated dialogue that changes the picture of who they are Trust progression reveals more FEELING, not more SECRETS. Deeper access tiers show emotional vulnerability, not concealed information. At public tier: "I'm worried about them." At peer tier: "I don't know what to do. I love them, but I can't keep living like this." Same truth, deeper emotion.

What MIRROR NPCs DO Have

Present System Function Why Essential
Full 10-axis profile Want, Secret/Vulnerability, Relationships 1-3, Tolerance, Routine, Information, Contentment, Personality, Tell (absent), Skills MIRROR is not a shallow NPC. They're Tier 1 depth — full emotional complexity, just without deception.
Tier 1 emotional depth despite pattern simplicity Rich personality, genuine reactions, emotional stakes in the world around them The player trusts the MIRROR because the MIRROR is WORTH trusting. They're not a cardboard cutout labeled "honest person." They're a complete character whose honesty is part of their identity.
Genuine emotional reactions to the world MIRROR NPCs respond to events around them with authentic worry, joy, confusion, anger — whatever fits their personality and situation When the ring's actions threaten someone the MIRROR loves, the MIRROR's distress is real. The player FEELS it because they've learned this person doesn't perform emotions — they experience them.
Emotional vulnerability as content The MIRROR's lack of deception makes them emotionally EXPOSED. They wear their worry visibly. They confide in friends. They react honestly to stress. This vulnerability is load-bearing. The player becomes protective of the MIRROR. Threats to the MIRROR create player urgency.

3. Content Requirements

Total authored line budget: 50-70 lines (Tier 1 MIRROR is slightly lower than FRIEND pattern's 70-100, because no contradiction arc content)

Content Type Line Count Function
Dialogue 25-35 Greetings (5), emotional state conversation (8-10), relationship discussion (5-7), situation responses (5-8), peer-tier vulnerability (3-5)
Trust-gated dialogue 10-15 Deeper emotional exposure at insider/peer tiers. Not secret revelations — emotional revelations. "I'm scared" vs "I'm worried."
Unprompted lines 3-5 MIRROR volunteers emotional state or asks for help. "Have you seen {partner} today? I'm worried."
Monologue triggers 10-15 per character Player's internal reaction to MIRROR's honesty. Smuggler: guilt (if protecting someone the MIRROR loves). Detective: relief (finally someone not lying) + strategic value (MIRROR as witness to behavioral change).
Voice sample 3-5 lines Covering: baseline warm, worried, brittle (close to tolerance break)

No contradiction discovery content. No tell observation content (because no tells). No phase-shift dialogue. This is where MIRROR saves budget relative to FRIEND.

Dual-Lens Distribution

Smuggler perspective (if MIRROR is connected to a ring member): Emotional collateral. The MIRROR's worry creates guilt. The smuggler knows WHY the person the MIRROR loves is behaving strangely and can't say. Seeing the MIRROR's distress is a cost of operations.

Detective perspective: Potential witness + emotional anchor. A partner who suspects their loved one is hiding something is a classic entry point for investigation. The MIRROR knows behavioral patterns, routines, recent changes. The detective can cultivate trust by being sympathetic.


4. Tell System Rules

Core principle: MIRROR has no tells because tells imply deception or concealment.

The Absence-as-Content Design

What the Player Experiences System State Mechanical Expression
Early game: MIRROR seems ordinary No behavioral flags set. No contradiction_flagged. No tell observations in monologue. The player's training (from interacting with NPCs who DO have tells) hasn't fired. This feels normal.
Mid game: Player has learned to read other NPCs The player has observed: one NPC deflects eye contact when lying, another leaves when a third NPC arrives, a third fidgets when questioned about their role. The player's mental model now expects tells. They're watching for them.
MIRROR interaction: No tells present Player talks to MIRROR. MIRROR makes eye contact, answers directly, emotional state matches words. No spatial deviation, no topic deflection, no nervous tics. The ABSENCE is striking. The player's monologue notes it: "No hesitation. She's either telling the truth or she's the best actor I've ever seen."
Resolution: Trust through transparency If the player cross-references MIRROR's information with other sources, it checks out. MIRROR was telling the truth. The player LEARNS that honesty exists in this world. That one person isn't performing. That becomes the emotional fulcrum for everything else.

How This Interacts with the Contradiction System

FRIEND NPCs have contradiction arcs: warmth → trust → doubt → conflict. Color shifts green to amber. The emotional payload is betrayal.

MIRROR NPCs have NO contradiction arc. Color remains green (or progresses public → insider → peer within green). The emotional payload is RELIEF and PROTECTION.

Mechanical distinction:

  • FRIEND: EntityKnowledge.state transitions to KnowledgeState::Contradicted when tells accumulate.
  • MIRROR: EntityKnowledge.state remains KnowledgeState::Confirmed or KnowledgeState::Direct. No contradiction flags ever set.

Content signal: The player's monologue about MIRROR evolves from neutral observation to active trust: "She's worried. Can't blame her — her partner is acting strange." → "I believe her. She doesn't know what's happening, but she's telling me everything she does know."


5. Dialogue Architecture

MIRROR dialogue follows the standard four-layer system (D-028) but with simplified secret-tier structure.

Access Tiers (Layer 1)

Tier What MIRROR Shares Example
Public Observable emotional state, general information about their life/relationships "I work at the station school. The kids are doing well this term."
Insider Specific worry, named relationships, genuine vulnerability "{Partner} has been coming home late. Says it's work, but the schedule doesn't match. I don't know what to think."
Peer Deep emotional exposure, requests for help or advice "I'm scared, honestly. Not of them — of what they might be involved in. I don't know who else to talk to."
Authority (if detective) Cooperation with investigation, willingness to provide information about loved one despite emotional cost "If you think they're in trouble, I want to know. I'll help if I can. Just — please don't hurt them."

No secret tier that reveals hidden criminal knowledge. The MIRROR doesn't have hidden criminal knowledge. The "secret" tier for MIRROR is the deepest emotional vulnerability, not a plot revelation.

Trust Progression

Public (stranger) → Insider (acquaintance) → Peer (trusted friend) → Authority (if applicable)

What changes: Depth of emotional sharing, not type of information.
What doesn't change: The facts. MIRROR tells the same truth at all tiers. The emotion around it deepens.

Example progression (MIRROR about their entangled partner):

  • Public: "{Partner} works at the freight terminal. We've been together {n} years."
  • Insider: "{Partner} has been stressed lately. Late nights, evasive when I ask about it. I'm worried."
  • Peer: "I love them. But I can't keep doing this — the not-knowing is killing me. I think something's wrong. I just don't know what."
  • Authority (detective): "If you're investigating something there, and if {partner} is involved — I need to know. I'll help. I just need the truth."

Same story. Deeper emotion. No revelation that changes the player's understanding of who the MIRROR is.

Monologue Trigger Design

MIRROR NPCs trigger monologue focused on the PC's EMOTIONAL REACTION to the MIRROR's honesty, not on information extraction.

Smuggler monologue about MIRROR (if MIRROR is connected to ring member):

Trigger Monologue Content Emotional Layer
Observe MIRROR waiting at bar "{MIRROR} is at the bar again. Alone. Keeps looking at the door. I know where {partner} is. I can't say." Guilt. The smuggler's operational knowledge creates distance from the MIRROR's suffering.
MIRROR asks about loved one "They asked if I'd seen {partner} today. What do I say? Can't tell them. Can't lie to their face either." Moral tension. The MIRROR's directness makes evasion feel worse.
MIRROR shares deep worry "They're really scared. Not just worried — scared. And they have no idea what's actually happening. If they knew..." Protective instinct + guilt. The smuggler wants to shield the MIRROR from both the truth and the consequences.

Detective monologue about MIRROR:

Trigger Monologue Content Emotional Layer
First conversation with MIRROR "Not hiding anything. I've interviewed enough people to know when someone's performing. This person is genuinely worried." Relief. In a district where everyone seems evasive, the MIRROR is a breath of fresh air.
MIRROR shares information about loved one "Knows {partner}'s routine better than anyone. The late nights, the evasions — been tracking them without realizing it. Building my case for me." Strategic recognition. The MIRROR is a witness to behavioral change — the best kind.
MIRROR asks for help "They want me to figure out what's wrong. Not to arrest anyone — just to know. That's... trust. Real trust." Emotional weight. The detective realizes the investigation has personal stakes for the MIRROR. Success means breaking someone's heart.

6. Reference Implementation

v0.1 named-NPC example removed (cited NPCs no longer in v0.2 pipeline — D-122). Author MIRROR reference implementations against the active district's roster using the generator template in Section 7.

What a reference implementation demonstrates:

  • 10-axis profile with the MIRROR rules annotated at each axis
  • Triangle role showing how the MIRROR's honesty creates emotional pressure on entangled NPCs
  • Dual-lens comparison showing same transparency producing different player reactions (guilt vs. strategic recognition)
  • Visible stress markers explicitly distinguished from deception tells

7. Generator Template

For creating future MIRROR NPCs. This is the content pack structure for a MIRROR.

Profile Fields (What to Fill)

npc_id: "{name-lowercase}"
name: "{Full Name}"
age: {25-50 typical}
role: "{Occupation — typically civilian}"
social_site: "{Primary location}"
tier: 1  # MIRROR is Tier 1 depth
pattern: "MIRROR"
entanglement: "mundane"  # MIRROR is never directly entangled

# 10-Axis Profile

want:
  primary: "{Want that's ABOUT someone else or visible situation — no hidden agenda}"
  secondary: "{Want that's protective or stabilizing — preserve what they have}"

secret:
  surface: "{Visible emotional state — worry, stress, joy}"
  deep: "{Ordinary privacy or emotional vulnerability — NOT conspiracy knowledge}"
  vulnerability: "{Emotional exposure, not operational risk}"

relationships:
  relationship_1:
    target: "{Name}"
    type: "{Genuine bond — no hidden resentment}"
    history: "{How they met, why they care}"
    tension: "{Current stress in relationship — external, not deceptive}"
  relationship_2: ...
  relationship_3: ...

tolerance: "{moderate/high — describe genuine limits, what would make them break}"

routine:
  "{Time range}": "{Activity — predictable, no hidden meetings}"
  # No spatial deviations, no unauthorized locations

information:
  knows:
    - "{Visible facts about their life}"
    - "{Behavioral observations about loved ones}"
    - "{Community knowledge}"
  doesnt_know:
    - "{Conspiracy details}"
    - "{Hidden agendas of others}"
    - "{Secret motivations}"

contentment: "{low/moderate — declining if connected to stressed loved one}"

personality:
  primary: "{Caring, Honest, Warm — prosocial trait}"
  secondary: "{Patient, Loyal, Perceptive — supportive trait}"
  tertiary: "{Genuine emotional responsiveness}"

tell_system:
  tells: []  # Empty array — MIRROR has no deception tells
  behavioral_markers:
    - "{Genuine stress marker — visible worry, not concealment}"
    - "{Coping mechanism — increased social presence, routine changes}"
  # These are NOT tells. They're genuine emotional expressions.

skills:
  occupational: ["{Teaching}", "{Community work}", "{Civilian profession}"]
  combat: false  # MIRROR is never combat-capable
  lattice: "baseline"

Dialogue Content Pack Structure

# File: districts/{location}/dialogue/{role}-mirror.yaml

- id: "{npc-slug}_d_001"
  text: "Greeting — warm, open, no guardedness"
  role: "{role}"
  access: ["public"]
  trust: "surface"
  situation: ["greeting"]
  mood: ["warm"]

- id: "{npc-slug}_d_002"
  text: "Sharing worry — direct, no evasion"
  role: "{role}"
  access: ["public", "insider"]
  trust: "surface"
  situation: ["worried_inquiry"]
  mood: ["anxious"]

- id: "{npc-slug}_d_010"
  text: "Deep emotional vulnerability — peer tier"
  role: "{role}"
  access: ["peer"]
  trust: "real"  # Not 'secret' — MIRROR has no secrets tier content
  situation: ["emotional_crisis"]
  mood: ["desperate"]

# Monologue content (separate per character, per D-032)

# File: districts/{location}/monologue/smuggler/{location}.yaml
- id: "pc-smuggler_m_s_001"
  text: "Smuggler feels guilt observing MIRROR's distress"
  character: "smuggler"
  trigger: "observe_npc"
  prerequisite:
    target.known_attributes.name: "{Name}"
    target.known_attributes.emotional_state: "worried"

# File: districts/{location}/monologue/detective/{location}.yaml
- id: "pc-detective_m_d_001"
  text: "Detective recognizes MIRROR as honest witness"
  character: "detective"
  trigger: "post_conversation"
  prerequisite:
    target.known_attributes.name: "{Name}"
    target.known_attributes.honesty_assessment: "transparent"

What Fields to Leave Empty

Field State Why
tell_system.tells Empty array [] MIRROR has no deception tells
secret.criminal_knowledge Omit entirely MIRROR doesn't have criminal secrets
contradiction_arc Omit entirely MIRROR has no contradiction phases
access: ["authority"] content Minimal Only if MIRROR cooperates with investigation — still no secret reveals
trust: "secret" tier content Omit or minimal MIRROR's deepest tier is emotional vulnerability, not plot revelation

What Makes a Good MIRROR Candidate

Ideal MIRROR characteristics:

  1. Emotionally connected to an entangled NPC — Partner, sibling, close friend of someone in the conspiracy. Their honesty makes the conspiracy's human cost visible.

  2. Civilian role — Teacher, bartender, service worker. Not institutional (Commission, Security). Not criminal. Represents ordinary life.

  3. Observable worry or stress — MIRROR's emotional state is VISIBLE because they don't hide it. Their distress is the content.

  4. Genuine perceptiveness — MIRROR notices behavioral changes in loved ones but doesn't KNOW the cause. "Something's wrong" without "I know what's wrong." Perfect witness to change without knowledge of crime.

  5. Prosocial personality — Caring, loyal, honest. The player trusts them BECAUSE they're trustworthy. The game needs at least one person whose goodness is real.

Poor MIRROR candidates:

  • NPCs with institutional power (they'd have investigative tools)
  • NPCs with hidden skills or backgrounds (contradicts transparency)
  • NPCs who are themselves criminals (MIRROR must be genuinely uninvolved)
  • NPCs without emotional stakes in the district (MIRROR's honesty is load-bearing only if they CARE)

8. Design Notes: Why MIRROR Isn't Boring

The risk: A character with no secrets, no tells, no contradiction arc sounds mechanically thin. "Just an honest person" doesn't feel like a gameplay system.

Why it works:

The Contrast Mechanic

MIRROR is mechanically interesting BECAUSE of the surrounding systems. In a game where:

  • Every FRIEND has a contradiction arc (warmth → doubt → conflict)
  • Every CATALYST disrupts equilibrium through action
  • Every SYSTEM embodies corrupted institutions
  • Every WITNESS carries dangerous knowledge
  • Every GHOST applies pressure from off-screen

...the ONE character with no deception becomes the ANCHOR. The player learns to expect complexity, hidden agendas, behavioral tells. MIRROR subverts that learned expectation by being EXACTLY what they appear to be.

Mechanical payload: The observation pipeline (Ozzie + Gestalt + Paula's unified system) trains the player to notice tells. The MIRROR's ABSENCE of tells is itself an observation event. The player's monologue fires: "No evasion. No deflection. Either honest or the best liar I've encountered." The uncertainty itself creates tension until the player verifies the honesty.

The Emotional Fulcrum

When the ring's actions threaten the MIRROR's relationships and stability, the player FEELS it because they've learned to believe this person.

Smuggler: The guilt of watching an innocent person suffer because of your operations. You can't tell her. You can't protect her. You're part of the cause of her pain.

Detective: The weight of knowing your investigation will break this person's life. Success means revealing that her partner is a criminal. The MIRROR trusted you to find answers — and the answers will destroy her.

That's the design payoff. MIRROR's transparency isn't boring — it's the emotional investment that makes the conspiracy's consequences real. The player cares about protecting the MIRROR because the MIRROR is the one person in the district who isn't performing, isn't hiding, isn't playing angles. That honesty makes them precious.

The Trust Anchor

In a district where everyone has an agenda, the MIRROR is the person the player can RELY on. When the smuggler needs to know what's happening with {partner}, the MIRROR will tell the truth as they understand it. When the detective needs a witness, the MIRROR will cooperate fully. The MIRROR's reliability is itself a strategic asset — but one that comes with emotional cost (using an innocent person's trust).

System interaction: The trust-gated gossip system (D-028 Layer 3, #171) means NPCs share information at different access tiers. With most NPCs, the player wonders: "Is this real or are they steering me?" With MIRROR, that question is answered: "This is real. They're telling me everything they know." That certainty is VALUABLE in a game built on asymmetric information.

The Replay Dimension

On second playthrough, playing the other character, the MIRROR's honesty becomes even more visible. The player KNOWS this person isn't involved. They see their worry from a different angle:

  • Playthrough 1 (smuggler): "I know why {partner} is busy. {MIRROR}'s worry is collateral damage."
  • Playthrough 2 (detective): "{MIRROR}'s worry is my opening. They're the way in."

Same honesty. Different use. The player's knowledge that this NPC is a MIRROR (from first playthrough) makes the second playthrough's interaction more complex: "I know they're honest. How do I use that? Should I?"

Replay payload: MIRROR transparency survives across playthroughs. FRIEND contradictions change (different seed might assign FRIEND to different NPC). MIRROR remains honest regardless of seed. That constancy is mechanically useful for teaching the player to recognize honesty — and ethically complex when the player knows they'll exploit it.


9. Implementation Checklist

For developers implementing a MIRROR NPC:

ECS Component Setup

// MIRROR NPCs use standard NPC components but with specific flags

NPCProfile {
    pattern: NPCPattern::Mirror,
    tier: ContentTier::One,  // MIRROR is always Tier 1
    entanglement: EntanglementLevel::Mundane,  // Never directly criminal
}

TellSystem {
    tells: vec![],  // Empty — no deception tells
    behavioral_markers: vec![
        BehavioralMarker::VisibleStress,
        BehavioralMarker::EmotionalExpression,
        // These are NOT tells — they're genuine coping mechanisms
    ],
}

ContradictionState {
    has_contradiction_arc: false,  // MIRROR never contradicts
    relationship_phase: RelationshipPhase::Stable,  // No phase transitions
}

SecretInventory {
    criminal_secrets: vec![],  // Empty
    personal_vulnerabilities: vec![
        Vulnerability::EmotionalExposure,
        Vulnerability::UninformedWitness,
    ],
}

Dialogue System Configuration

// MIRROR dialogue has simpler trust structure

DialogueProfile {
    access_tiers: vec![
        AccessTier::Public,    // General conversation
        AccessTier::Insider,   // Named relationships, specific worries
        AccessTier::Peer,      // Deep emotional vulnerability
        AccessTier::Authority, // (Optional) Cooperation with investigation
    ],
    trust_gates: vec![
        TrustGate { tier: TrustTier::Surface, access: [Public, Insider] },
        TrustGate { tier: TrustTier::Real, access: [Peer, Authority] },
        // NO TrustTier::Secret — MIRROR doesn't have secret-tier content
    ],
}

Knowledge System Integration

// Observer's knowledge state about MIRROR

EntityKnowledge {
    state: KnowledgeState::Confirmed,  // Or Direct. Never Contradicted.
    known_attributes: {
        "honesty_assessment": "transparent",
        "reliability": "solid",
        "facade_status": "N/A",  // MIRROR has no facade
        "emotional_state": "worried",  // Visible, genuine
        "threat_to_position": "none",  // MIRROR is not operationally dangerous
        "moral_standing": "innocent",  // Never shifts to complicit
    },
    contradiction_flagged: None,  // MIRROR never flags contradictions
}

Monologue Event Triggers

// When player observes MIRROR, monologue focuses on emotional reaction

if npc.pattern == NPCPattern::Mirror {
    if observer.has_learned_to_read_tells() {
        // Trigger "absence of tells" observation
        monologue_event = MonologueEvent {
            trigger: MonologueTrigger::ObserveNPC,
            target: npc.entity_id,
            filter_tags: ["honesty_recognition", "emotional_anchor"],
        };
    }

    if npc.emotional_state == EmotionalState::Distressed
        && observer.knows_cause_of_distress()
        && !observer.can_share_knowledge() {
        // Trigger guilt/conflict monologue (if smuggler)
        monologue_event = MonologueEvent {
            trigger: MonologueTrigger::ObserveNPC,
            target: npc.entity_id,
            filter_tags: ["guilt", "emotional_collateral"],
        };
    }
}

Testing Validation

MIRROR correctness tests:

  1. No contradiction flags should ever set for MIRROR entity.
  2. EntityKnowledge.state should never transition to Contradicted for MIRROR.
  3. TellSystem.tells should remain empty array throughout session.
  4. Monologue events about MIRROR should NOT include tags: "deception", "evasion", "suspicious".
  5. Monologue events about MIRROR SHOULD include tags: "honesty", "transparency", "genuine", "emotional_anchor".
  6. Trust progression should not unlock "secret" tier content — only surface/real tiers should have content.

Summary

THE MIRROR pattern is the emotional foundation of the game's moral complexity.

In a world where everyone is hiding something, the one person who isn't becomes the player's anchor — and their vulnerability. The MIRROR's transparency is mechanically expressed through the ABSENCE of systems (no tells, no contradiction arc, no secrets) that are present on every other NPC. That absence becomes visible through contrast.

The design works because:

  • The observation pipeline trains the player to expect deception
  • The MIRROR subverts that expectation through consistent honesty
  • The player's verification of honesty (cross-referencing MIRROR's info against other sources) creates trust
  • That trust makes the MIRROR's emotional stakes real
  • Threats to the MIRROR create urgency and moral weight

For content authors: MIRROR is mechanically simple (no contradiction content) but emotionally complex (full 10-axis depth). Full Tier 1 depth, genuine emotional complexity, visible stress, transparent relationships, predictable routine, zero deception — the MIRROR's honesty makes the entangled NPC's secrets painful, other NPCs' concealment costly, and the investigation's human consequences visible. The 50-70 line budget focuses on genuine emotional expression, trust progression through vulnerability, and dual-lens player reaction. The MIRROR is the person both characters want to protect — and the person who makes the cost of deception real.


End Pattern Specification.

Decisions referenced:

  • decisions/content.md — D-024 (10-axis model), D-028 (dialogue architecture), D-029 (entanglement ratio), D-032 (separate monologue pools), D-034 (THE FRIEND pattern), D-035 (tag taxonomy)