Delete 64 hand-authored Krenn dialogue/monologue/NPC files superseded by generated NPCs (D-122) and voice pipeline (D-138). Remove detective investigation system dropped in v0.2 pivot (D-117): knowledge catalog, faction, design docs, workshop archives, wireframe detective sections. Clean investigation.* fact_id references from environmental and triangle files. Strip investigation cross-references from overheard.yaml. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,461 +0,0 @@
|
||||
# Character Build: The Detective
|
||||
|
||||
**Ticket:** #181 | **Priority:** Critical | **Sprint:** 12
|
||||
**Status:** v0.1 Draft
|
||||
**Blocked by:** #179 (Character definition schema)
|
||||
**Blocks:** #182 (Divergent starting knowledge), #183 (Divergent relationships)
|
||||
**Decisions referenced:** D-005, D-016, D-027, D-028, D-032, D-034, D-035, D-037, D-041, D-053, D-065, D-075
|
||||
|
||||
---
|
||||
|
||||
## identity
|
||||
|
||||
```yaml
|
||||
identity:
|
||||
canonical_id: "pc:detective"
|
||||
display_name: "[Player-set name]"
|
||||
archetype: "detective"
|
||||
occupation: "Commission Liaison Officer, Manifest Irregularity Investigation"
|
||||
posting_duration: "3 days (newly arrived)"
|
||||
faction: "Commission"
|
||||
lattice_tier: "professional"
|
||||
description: >
|
||||
Commission Liaison Officer posted to Sova Transit District three days ago.
|
||||
Official mandate: routine compliance review. Actual mandate: investigate
|
||||
manifest irregularities suggesting organized freight smuggling. The distinction
|
||||
between "official" and "actual" is itself the first lesson about how
|
||||
Sova works.
|
||||
|
||||
Trained investigator. Professional analytical lattice. Institutional
|
||||
authority that opens doors and closes conversations. An outsider in a
|
||||
community that has learned, over forty years of prefab-modular life,
|
||||
to handle outsiders with polite minimal disclosure.
|
||||
|
||||
Stands to lose: professional credibility (if the case goes cold), Sera
|
||||
(the investigation, if pressed too hard, could compromise the only
|
||||
trusted relationship in the district), and the clean institutional
|
||||
clarity that makes the job feel justified — which the community's
|
||||
moral complexity is already beginning to erode.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## starting_knowledge
|
||||
|
||||
```yaml
|
||||
starting_knowledge:
|
||||
confidence_floor: "KnowsOf"
|
||||
|
||||
known_facts:
|
||||
# Investigation data
|
||||
- key: "investigation.manifest_discrepancies"
|
||||
confidence: "KnowsDetails"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
Case file from Commission records. Containers logged but not reconciled
|
||||
with incoming manifests. Pattern suggests systematic manipulation, not
|
||||
clerical error. Three clusters of anomalies over the past six months.
|
||||
|
||||
- key: "investigation.freight_pattern"
|
||||
confidence: "KnowsDetails"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
Anomalies cluster around shift transition windows. Same container series
|
||||
recurring across discrepant manifests. Pattern analysis flagged this
|
||||
posting as warranting investigation.
|
||||
|
||||
# Persons of interest (case file, not personal knowledge)
|
||||
- key: "person.voss_poi"
|
||||
confidence: "KnowsOf"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
Voss, shift supervisor. Scheduling authority. In position to create the
|
||||
oversight gaps that explain the manifest anomalies. Name from case file.
|
||||
Not met yet.
|
||||
|
||||
- key: "person.maret_poi"
|
||||
confidence: "KnowsOf"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
Maret Korr, freight scheduler. Access to manifest data. Could be source
|
||||
of the falsification or could be covering for someone else. Name from
|
||||
case file.
|
||||
|
||||
- key: "person.drin_poi"
|
||||
confidence: "KnowsOf"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
Drin Rosta, dock inspector. Responsible for container verification.
|
||||
Failure to flag discrepancies suggests either incompetence or complicity.
|
||||
Name from case file.
|
||||
|
||||
# Institutional context
|
||||
- key: "world.previous_liaison"
|
||||
confidence: "KnowsDetails"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
The previous Commission liaison rotated out 3 months ago. Rotation
|
||||
was described as routine. The detective's case file notes that the previous
|
||||
liaison filed no irregularity reports despite the same pattern being
|
||||
detectable in their tenure. This warrants investigation.
|
||||
|
||||
- key: "world.commission_presence"
|
||||
confidence: "KnowsDetails"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
Sera Venn, Commission field tech. Not an investigator. Has been on Sova
|
||||
for 1 year. Pre-existing relationship — same institutional background,
|
||||
different postings. Reliable. Social anchor in unfamiliar district.
|
||||
|
||||
- key: "world.district_geography"
|
||||
confidence: "KnowsOf"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
The Terminal (logistics hub), The Last Shift (bar, social nexus),
|
||||
maintenance corridors (off-books access routes noted in district layout
|
||||
documentation). Three days in — still orienting to physical space.
|
||||
|
||||
- key: "world.torek_compliance_connection"
|
||||
confidence: "KnowsOf"
|
||||
source: "institutional"
|
||||
notes: >
|
||||
Torek Lintar is a Commission compliance officer on Sova. Known from
|
||||
institutional channels. Not a friend, but a professional known name.
|
||||
|
||||
# Sera knowledge
|
||||
- key: "person.sera_background"
|
||||
confidence: "KnowsDetails"
|
||||
source: "direct"
|
||||
notes: >
|
||||
Sera Venn: same career path, different posting. Reliable under pressure.
|
||||
Transferred to Sova after a stressful posting elsewhere. Has been the
|
||||
district's Commission presence for a year. The detective's one genuinely
|
||||
friendly face in Sova.
|
||||
|
||||
unknown_facts:
|
||||
- key: "contraband.ring_exists"
|
||||
notes: >
|
||||
Does not know a ring exists. Suspects organized smuggling from the manifest
|
||||
pattern, but "ring" implies structure, membership, coordination — the
|
||||
detective doesn't know that yet.
|
||||
|
||||
- key: "contraband.ring_members"
|
||||
notes: >
|
||||
Does not know any ring members by their ring membership. Kael Davan
|
||||
is not in the case file. The smuggler is not in the case file.
|
||||
|
||||
- key: "contraband.cargo_type"
|
||||
notes: >
|
||||
Does not know what the cargo is. The manifests show discrepancies;
|
||||
they don't reveal what's being moved. The "what" is a layer below
|
||||
the "that something is wrong."
|
||||
|
||||
- key: "person.kael_exit_attempt"
|
||||
notes: >
|
||||
Completely unknown. Kael's unauthorized contact and exit attempt are
|
||||
not visible to any institutional data source.
|
||||
|
||||
- key: "person.sera_unreported_evidence"
|
||||
notes: >
|
||||
CRITICAL unknown. Sera has run an unofficial compliance check on Kael's
|
||||
work patterns and is sitting on unreported evidence. The detective
|
||||
trusts Sera completely. This gap is the structural basis for THE FRIEND arc.
|
||||
|
||||
- key: "person.naia_confided_in_sera"
|
||||
notes: >
|
||||
Naia Tamm's worry about Kael, confided to Sera, is the emotional engine
|
||||
behind Sera's concealment. The detective doesn't know Naia exists as
|
||||
anything except a district resident.
|
||||
|
||||
- key: "relationship.ring_membership"
|
||||
notes: >
|
||||
Who is in the ring, who is complicit, who is protecting whom. The detective
|
||||
has names (Voss, Maret, Drin) without understanding the social web that
|
||||
holds them together.
|
||||
|
||||
- key: "person.smuggler_identity"
|
||||
notes: >
|
||||
Does not know the smuggler is in the ring. If the smuggler is in the case
|
||||
file at all, it's as a name on a shift roster — no significance attached.
|
||||
|
||||
- key: "world.previous_liaison_arranged"
|
||||
notes: >
|
||||
The detective wonders whether the previous Commission liaison's rotation
|
||||
was routine or arranged. This suspicion is in the case file as a note;
|
||||
it remains unconfirmed. (Canonical answer: arranged. But the detective
|
||||
doesn't know this yet.)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## starting_relationships
|
||||
|
||||
```yaml
|
||||
starting_relationships:
|
||||
- target: "npc:sera-venn"
|
||||
relationship_state: "Friendly"
|
||||
access_tier: [peer]
|
||||
trust_level: "trusted"
|
||||
relationship_type: "friend"
|
||||
known_attributes:
|
||||
name: "Sera Venn"
|
||||
role: "Commission field technician"
|
||||
faction: "Commission"
|
||||
notes: >
|
||||
Pre-existing friend. Same institutional background, different posting.
|
||||
Transferred to Sova a year ago. Social anchor. The detective's guide
|
||||
to an unfamiliar place — Sera fills in background on the district,
|
||||
introduces the detective to regulars. Completely trusted at session start.
|
||||
|
||||
- target: "npc:voss"
|
||||
relationship_state: "Known"
|
||||
access_tier: [authority]
|
||||
trust_level: "uncertain"
|
||||
relationship_type: "contact"
|
||||
known_attributes:
|
||||
name: "Voss"
|
||||
role: "shift supervisor"
|
||||
faction: "civilian"
|
||||
notes: >
|
||||
Person of interest. Name from case file, scheduling authority. Has
|
||||
met once for credentials review. Stiffens when the detective enters
|
||||
the hub. Professional, terse. No warmth. Institutional interaction only.
|
||||
|
||||
- target: "npc:maret-korr"
|
||||
relationship_state: "Known"
|
||||
access_tier: [authority]
|
||||
trust_level: "uncertain"
|
||||
relationship_type: "contact"
|
||||
known_attributes:
|
||||
name: "Maret Korr"
|
||||
role: "freight scheduler"
|
||||
faction: "civilian"
|
||||
notes: >
|
||||
Person of interest. Manifest access. Has cooperated professionally with
|
||||
data requests — provided clean set of schedules. Slightly nervous.
|
||||
Cooperation is compliance, not friendliness.
|
||||
|
||||
- target: "npc:drin"
|
||||
relationship_state: "Known"
|
||||
access_tier: [authority]
|
||||
trust_level: "uncertain"
|
||||
relationship_type: "contact"
|
||||
known_attributes:
|
||||
name: "Drin Rosta"
|
||||
role: "dock inspector"
|
||||
faction: "civilian"
|
||||
notes: >
|
||||
Person of interest. Responsible for container verification. Has met
|
||||
once. More evasive than Voss or Maret. The detective notes the evasion
|
||||
without yet understanding the cause.
|
||||
|
||||
- target: "npc:torek-lintar"
|
||||
relationship_state: "Known"
|
||||
access_tier: [public]
|
||||
trust_level: "uncertain"
|
||||
relationship_type: "colleague"
|
||||
known_attributes:
|
||||
name: "Torek Lintar"
|
||||
role: "Commission compliance officer"
|
||||
faction: "Commission"
|
||||
notes: >
|
||||
Commission compliance officer on Sova — professional known name, not a
|
||||
friend. Has seen him at the bar with Sera. Slightly off in a way the
|
||||
detective can't yet articulate.
|
||||
|
||||
- target: "npc:lera-sessik"
|
||||
relationship_state: "Unknown"
|
||||
access_tier: [public]
|
||||
trust_level: "uncertain"
|
||||
relationship_type: null
|
||||
known_attributes:
|
||||
name: "Lera Sessik"
|
||||
role: "bar owner"
|
||||
faction: null
|
||||
notes: >
|
||||
Sera mentioned The Last Shift. The detective has visited once or twice.
|
||||
Lera is polite, guarded, watching. Not hostile. Not warm.
|
||||
|
||||
- target: "npc:kael-davan"
|
||||
relationship_state: "Unknown"
|
||||
access_tier: [public]
|
||||
trust_level: "uncertain"
|
||||
relationship_type: null
|
||||
known_attributes:
|
||||
name: null
|
||||
role: "dock worker"
|
||||
faction: null
|
||||
notes: >
|
||||
Unknown at session start. Name might appear on a shift roster without
|
||||
significance. No personal knowledge. No case file entry. The detective
|
||||
has no reason to flag Kael — yet.
|
||||
|
||||
- target: "npc:naia-tamm"
|
||||
relationship_state: "Unknown"
|
||||
access_tier: [public]
|
||||
trust_level: "uncertain"
|
||||
relationship_type: null
|
||||
known_attributes:
|
||||
name: null
|
||||
role: null
|
||||
faction: null
|
||||
notes: "No connection at session start. Exists as a district resident without individual identity."
|
||||
|
||||
- target: "npc:pc-smuggler"
|
||||
relationship_state: "Unknown"
|
||||
access_tier: [public]
|
||||
trust_level: "uncertain"
|
||||
relationship_type: null
|
||||
known_attributes:
|
||||
name: null
|
||||
role: "dock worker"
|
||||
faction: null
|
||||
notes: >
|
||||
One of many dock workers. No individual significance at session start.
|
||||
Knowledge accumulates through observation and tell accumulation.
|
||||
May shift to PersonOfInterest if tells compound and manifest
|
||||
discrepancy connection is made.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## access_permissions
|
||||
|
||||
```yaml
|
||||
access_permissions:
|
||||
can_unlock:
|
||||
- tier: "public"
|
||||
condition: "Always available"
|
||||
max_npcs: "unlimited"
|
||||
|
||||
- tier: "authority"
|
||||
condition: "RelationshipState is Unknown, Known, or PersonOfInterest — credential presentation"
|
||||
max_npcs: "unlimited for institutional NPCs; does not work with hostile or fully closed NPCs"
|
||||
|
||||
- tier: "peer"
|
||||
condition: "RelationshipState reaches Friendly"
|
||||
max_npcs: "limited — Sera at session start; others require sustained positive interaction"
|
||||
|
||||
structurally_locked:
|
||||
- tier: "insider"
|
||||
reason: >
|
||||
The detective can never access insider-tier ring dialogue. Not because
|
||||
institutional authority is insufficient — authority and insider are
|
||||
different axes. Insider requires social belonging within the ring network.
|
||||
The ring recognizes the detective as Commission. The ring closes, not opens,
|
||||
when institutional authority is applied. Pressing harder does not unlock
|
||||
insider content; it triggers defensive behavior and hostile tone. This is
|
||||
architecturally fundamental to the two-keyhole design.
|
||||
|
||||
- tier: "authority (failed)"
|
||||
reason: >
|
||||
Authority access fails when RelationshipState is Hostile. Once an NPC
|
||||
has turned against the detective's investigation, credential presentation
|
||||
produces refusal or evasion, not compliance. The detective cannot
|
||||
authority-tier their way through a hostile source.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## skills
|
||||
|
||||
```yaml
|
||||
skills:
|
||||
lattice_tier: "professional"
|
||||
movement_default: "walk" # D-053 MovementProfile
|
||||
inventory_slots: 2 # D-065
|
||||
evidence_display: "case_file"
|
||||
|
||||
capability_flags:
|
||||
- "authority_credentials" # Badge/ID; unlocks authority tier with Unknown/Known NPCs
|
||||
- "manifest_access" # Can formally request freight manifests from institutional NPCs
|
||||
- "analytical_lattice" # Pattern recognition overlay; flags behavioral anomalies at Careful stance
|
||||
|
||||
starting_items:
|
||||
- item_id: "detective_case_file"
|
||||
description: "Institutional case file: manifest discrepancy analysis, persons of interest, previous liaison notes."
|
||||
leverage_type: "proof"
|
||||
notes: >
|
||||
The detective's starting information in physical form. Can be referenced
|
||||
in dialogue to trigger authority-tier responses — "according to case file X."
|
||||
Contains the manifest discrepancy data that links to Kael's work patterns,
|
||||
though the detective doesn't know this yet.
|
||||
|
||||
- item_id: "detective_commission_credentials"
|
||||
description: "Commission identification and liaison officer authorization."
|
||||
leverage_type: "access"
|
||||
notes: >
|
||||
Credential presentation triggers authority tier access with Unknown/Known NPCs.
|
||||
Does not work with ring-network NPCs in insider mode — they recognize
|
||||
Commission credentials as a threat, not an access grant. Carried on person;
|
||||
visible as a status marker to any NPC with institutional awareness.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## presentation
|
||||
|
||||
```yaml
|
||||
presentation:
|
||||
monologue_pool: "detective"
|
||||
evidence_display: "case_file"
|
||||
|
||||
voice_register:
|
||||
sentence_length: "complete sentences, occasional fragments for emphasis"
|
||||
vocabulary: "institutional layer over plain speech — investigative habit without jargon"
|
||||
emotional_mode: "analysis-first, personal second"
|
||||
relationship_mode: "surname-first for targets, first-name for trusted"
|
||||
|
||||
emotional_baseline:
|
||||
state: "professional-cautious"
|
||||
description: >
|
||||
Trained to observe, analyze, withhold judgment until evidence accumulates.
|
||||
But also human — isolated in an unfamiliar community, reliant on Sera for
|
||||
social grounding, aware that non-cooperation is the district default.
|
||||
|
||||
The analytical habit runs in the background like an operating system.
|
||||
Counts things. Tracks frequencies. Flags inconsistencies. Internal bookkeeping
|
||||
is automatic: "filing it," "noted," "coincidence?" The institutional training
|
||||
doesn't turn off; sometimes the human overrides it. When it does, the crack
|
||||
in the professional surface IS the emotional payload.
|
||||
|
||||
Believes in the work. Smuggling isn't victimless — unlicensed lattice
|
||||
components can cause neural degradation, medical replacements diverted from
|
||||
Syndic supply chains mean someone else doesn't get what they need. The
|
||||
investigation is justified. But the moral clarity is starting to erode —
|
||||
the community is beginning to read as more complex than "crime scene."
|
||||
|
||||
opening_monologue:
|
||||
lines:
|
||||
- "Sova Transit District. Third day on station. The briefing said routine compliance review."
|
||||
- "The briefing is always wrong about something."
|
||||
- "Manifest discrepancies clustered around the freight hub. Start there. Watch the shift change."
|
||||
- "Good to know Sera's here. At least someone in this district speaks my language."
|
||||
emotional_payload: >
|
||||
Isolation, professional caution, guarded optimism about Sera. The detective
|
||||
is an outsider. The district doesn't want them here. The player should feel
|
||||
the gap between institutional authority and social belonging.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Authoring Notes
|
||||
|
||||
**What makes the detective's experience distinct:**
|
||||
|
||||
- The district is a CRIME SCENE. Every NPC is a potential witness, informant, or subject. The detective categorizes before connecting. Kael is "dock worker, Davan, K." before he's Kael. The shift to first names — if it happens — is itself a relationship marker.
|
||||
- The monologue is ANALYTICAL and complete-sentence. Counts things. Notices deviations. The emotional register leaks through the analytical frame rather than leading it.
|
||||
- The emotional journey of the vertical slice moves from professional isolation to specific, personal betrayal — but the betrayal is different: not "Kael lied to me," but "Sera, who I trusted completely, is compromised by something she did to protect someone I've never met."
|
||||
|
||||
**What the detective's authority access buys:** Conversations happen faster. NPCs answer direct questions. But answers are framed for compliance, not candor. The detective gets facts from people who don't want to give them — which means incomplete facts, deflected facts, facts that look complete but aren't. Authority access is a key that opens the door. It doesn't make what's inside visible.
|
||||
|
||||
**Voice anchors (mandatory reference for all detective monologue):**
|
||||
1. *"Logistics hub. Standard prefab, heavy foot traffic. Let's see what the shift change tells me."*
|
||||
2. *"That's the third time. Sera leaves when Torek arrives. Three different excuses, same result. That's not coincidence."*
|
||||
3. *"Good to see Sera. She always was the reliable one. At least someone in this district speaks my language."*
|
||||
4. *"Same booth. Same warm smile. Same offer to buy me a drink. ...Everything except whatever she's not saying."*
|
||||
5. *"Grain spirit and low conversation. Only place in this district that doesn't smell like freight lubricant."*
|
||||
|
||||
---
|
||||
|
||||
*Ticket #181 — Detective character build. v0.1 scope.*
|
||||
@@ -1,162 +0,0 @@
|
||||
# Detective: Institutional Chain of Command
|
||||
|
||||
**Ticket:** #322 | **Priority:** High | **Sprint:** 12
|
||||
**Status:** v0.1 Draft
|
||||
**Owners:** Paula (narrative arc), Miri (setting/institutional context)
|
||||
**Decisions referenced:** D-005, D-027, D-037, D-041
|
||||
|
||||
---
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
The detective is not a freelance investigator. They are a Commission officer, which means someone assigned them here, someone defined their mandate, someone is waiting for reports, and someone may have an interest in how this investigation concludes — not all of them aligned.
|
||||
|
||||
The institutional chain of command is not just background. It determines:
|
||||
- **What the detective is officially permitted to do** (arrest authority, warrant scope, search powers)
|
||||
- **What they're NOT supposed to do** (exceed mandate, go outside channels, use extra-institutional leverage)
|
||||
- **Who benefits if the investigation succeeds** — and who doesn't
|
||||
- **The political weight of the previous liaison's rotation** — which may not have been routine
|
||||
|
||||
This document establishes the detective's institutional world. It does not need to be fully visible to the player in v0.1 — it lives in the detective's case file, in their monologue, in what institutional NPCs say when authority-tier access opens. But it must be consistent.
|
||||
|
||||
---
|
||||
|
||||
## 2. The Commission — Brief Institutional Context
|
||||
|
||||
The Commission (Intersolar Commission) is the primary regulatory body governing freight transit, customs enforcement, and neural lattice certification across the Settled Reach. It is not a police force. It operates through:
|
||||
- **Compliance review** — routine audits of freight hubs, manifest reconciliation
|
||||
- **Liaison officers** — semi-permanent postings to transit hubs; advisory and investigative authority
|
||||
- **Field technicians** — technical support, equipment maintenance, passive monitoring (Sera Venn's role)
|
||||
- **Enforcement officers** — arrest authority; called in from sector headquarters for formal investigations
|
||||
|
||||
The detective's posting as "Commission Liaison Officer" sits between compliance and enforcement. They have investigative authority — enough to request manifests, interview persons of interest, and flag suspects — but formal arrest and search warrant authority requires escalation to sector headquarters.
|
||||
|
||||
**This matters for the detective's v0.1 situation:** They can investigate. They cannot arrest without authorization from above. If they find evidence of a smuggling ring, they need to report it up the chain before taking action — and that creates a window of political exposure.
|
||||
|
||||
---
|
||||
|
||||
## 3. The Formal Chain
|
||||
|
||||
### Level 1: The Detective (On-Station)
|
||||
**Title:** Commission Liaison Officer, Sova Transit District
|
||||
**Mandate (official):** Routine compliance review — manifest reconciliation, scheduling compliance, standard freight hub audit.
|
||||
**Mandate (actual):** Investigate manifest irregularities suggesting organized smuggling. Identify structure, membership, and supply chain. Report to Sector Oversight with arrest recommendations.
|
||||
**Reporting to:** Sector Liaison Coordinator, Commission Sector 7 Headquarters (off-station, a span-gate transit away)
|
||||
|
||||
### Level 2: Sector Liaison Coordinator — Renna Veth
|
||||
**Title:** Liaison Coordinator, Commission Sector 7
|
||||
**Who she is:** Career Commission officer. Mid-level administrator with 20 years of routine compliance work and two serious investigations to her name. Professional, risk-averse. Not corrupt — but also not courageous. Wants the investigation to produce results without embarrassing the Commission or producing a political fight she didn't expect.
|
||||
**Her interest in this investigation:** Wants it resolved cleanly. A successful arrest closes a compliance gap in her sector metrics. A failed investigation — especially one that implicates a Commission insider — would be a problem.
|
||||
**Relationship with detective:** Assigned the detective to Sova because the detective has a clean record and a reputation for methodical work. Does not know the detective personally.
|
||||
|
||||
### Level 3: Sector Deputy Commissioner — Halden Pres
|
||||
**Title:** Deputy Commissioner, Sector 7
|
||||
**Who he is:** Political appointee. Has been in position for 6 years. Sector 7 covers the Krenn System transit hubs, which are economically significant — freight logistics for Velen's surface operations. Not personally corrupt. But his political relationships include figures who have interests in how freight regulation is managed in the sector.
|
||||
**His knowledge of this investigation:** Was briefed at level of "routine compliance review at Sova." Does not know the actual investigative mandate. If the investigation escalates — if arrests are made, if Commission involvement in a smuggling ring is implied — he will be briefed, and his political relationships will activate.
|
||||
**The political risk:** Deputy Commissioner Pres is not an enemy. But if the investigation implies that a previous Commission liaison was arranged to protect a smuggling ring, Pres may have indirect connections to whoever arranged it. He is not the villain. But he is a constraint.
|
||||
|
||||
---
|
||||
|
||||
## 4. The Previous Liaison: Korrean Tsev
|
||||
|
||||
**Title (former):** Commission Liaison Officer, Sova Transit District
|
||||
**Rotation:** Posted to Sova for 18 months; rotated out 3 months before the detective arrived.
|
||||
**Official reason for rotation:** Standard posting cycle. Liaison officers rotate every 18-24 months to prevent over-familiarity with local operations.
|
||||
|
||||
**The detective's case file note:** The previous liaison, Korrean Tsev, was in position during the period when manifest discrepancies were already detectable in the freight data. No irregularity reports were filed. Three compliance audits during Tsev's tenure all came back clean. The anomalies that the detective's pattern analysis flagged from the data should have been visible to Tsev.
|
||||
|
||||
**Was the rotation arranged?**
|
||||
|
||||
The detective's case file flags this as unconfirmed but suspicious. The canonical answer (not available to the player in v0.1): **yes, it was arranged.** Tsev was not corrupt in the sense of taking ring money — but Tsev was compromised by personal loyalty. A relationship with someone at sector administration meant Tsev was quietly moved when the manifest anomalies became too persistent to ignore, rather than being required to file a report that would implicate people above Tsev's pay grade.
|
||||
|
||||
**What the detective can learn in v0.1:**
|
||||
- That Tsev filed no reports (case file, accessible from session start)
|
||||
- That the anomalies were detectable during Tsev's tenure (manifest data analysis, takes investigation time)
|
||||
- That Tsev was rotated on a compressed timeline (standard was 24 months; actual was 18 months) — this is discoverable through institutional records if the detective requests them
|
||||
|
||||
**What the detective cannot learn in v0.1:**
|
||||
- WHY the rotation was arranged
|
||||
- Who in sector administration was involved
|
||||
- Whether Deputy Commissioner Pres had knowledge
|
||||
|
||||
This is a thread that extends beyond the v0.1 vertical slice. The detective can pull the thread enough to see it exists, but not enough to unravel what's at the other end.
|
||||
|
||||
---
|
||||
|
||||
## 5. Torek Lintar: Commission Compliance Officer
|
||||
|
||||
Torek Lintar is Commission compliance on Sova — not an investigator, not a liaison officer, but a permanent-fixture compliance monitoring role. Commission compliance officers are lower in the formal hierarchy than liaison officers, but they have one thing liaison officers don't: **local knowledge accumulated over years.**
|
||||
|
||||
Torek has been on Sova for 4 years. He knows everyone. He knows the bar. He knows the shifts. He knows the social fabric in a way a three-day-old liaison officer cannot.
|
||||
|
||||
**The detective's starting relationship with Torek:** Professional known name from institutional channels. Not a friend. Encountered at the bar (Torek is a bar regular).
|
||||
|
||||
**What Torek knows that the detective doesn't:**
|
||||
- The ring's social footprint, at least at the edges — conspicuous spending, familiar faces
|
||||
- Sera Venn's unofficial compliance check (Torek suspects; he doesn't know for certain)
|
||||
- The shape of the social web connecting Kael's group
|
||||
|
||||
**Why Torek hasn't reported what he knows:**
|
||||
Torek's tolerance threshold for confrontation is low. He is ring-adjacent (D-024 triangle 3: Bar Tensions), which means he is socially embedded with people who are embedded with the ring. His conspicuous spending suggests he may have accepted something from ring-peripheral sources — not enough to be a member, but enough to compromise his ability to report cleanly. He is not a villain. He is a compromised observer who has talked himself into believing the right moment to report will come later.
|
||||
|
||||
**Torek as asset for the detective:**
|
||||
If the detective builds enough trust (social + authority), Torek can become an information source — but carefully. The ring is aware of Torek's connection to Commission compliance. Torek going to the detective too visibly risks blowback on both of them.
|
||||
|
||||
**Torek as the signal in Sera's FRIEND arc:**
|
||||
Sera avoids Torek. Three times. Three different excuses. The detective's monologue reads this as a behavioral pattern. The reason: Sera ran an unofficial check on Kael's work patterns (using Commission technical access she wasn't supposed to use) and found the same manifest discrepancies the detective found. Torek, as Commission compliance, would be the person Sera should have reported this to. Sera's avoidance of Torek is the tell that she found something and didn't report it. The detective doesn't know this yet — but the behavioral signal points there.
|
||||
|
||||
---
|
||||
|
||||
## 6. Political Pressures on the Investigation
|
||||
|
||||
The detective's investigation operates under several simultaneous pressures:
|
||||
|
||||
| Pressure | Source | Direction | Effect |
|
||||
|----------|--------|-----------|--------|
|
||||
| **Succeed cleanly** | Veth (Sector Coordinator) | Upward | Produce results without creating institutional embarrassment |
|
||||
| **Don't exceed mandate** | Institutional | Inward | Formal arrests require escalation; the detective can't act unilaterally |
|
||||
| **Previous liaison question** | Case file | Lateral | Pulling this thread risks finding Commission involvement; politically dangerous |
|
||||
| **Sera's position** | Personal | Personal | Using what Sera knows against her would destroy the detective's only personal relationship in the district |
|
||||
| **Community non-cooperation** | Social | Environmental | The district's default resistance to institutional authority; this is not malice, it's culture |
|
||||
|
||||
The detective is not just investigating a smuggling ring. They are investigating within an institutional structure that has already failed to catch this ring once. The question of whether that failure was incompetence or arrangement is the shadow behind every manifest discrepancy.
|
||||
|
||||
---
|
||||
|
||||
## 7. How This Appears in Monologue
|
||||
|
||||
The detective's institutional context should surface in monologue lines as internal processing — the analytical framing through which they filter every observation. Not institutional jargon, but institutional habit.
|
||||
|
||||
**Examples:**
|
||||
|
||||
At session start, observing the hub:
|
||||
*"Third day. Tsev was here for eighteen months and filed nothing. Either I'm better at this than Tsev, or there's something in the water. Let's find out."*
|
||||
|
||||
When Voss deflects a question:
|
||||
*"That answer was technically responsive. It gave me nothing. Voss knows exactly what I'm asking. Note it."*
|
||||
|
||||
When considering what Torek knows:
|
||||
*"Lintar's been on Sova for four years. He's seen whatever there is to see. Commission compliance doesn't file reports in a vacuum — something told him to stay quiet."*
|
||||
|
||||
When the Sera contradiction emerges:
|
||||
*"I could escalate this. Report what I suspect to Veth. But if I'm wrong about Sera, I've just burned my only ally on a hunch. And if I'm right — I need to know how far this goes before I put it in writing."*
|
||||
|
||||
---
|
||||
|
||||
## 8. v0.1 Content Scope
|
||||
|
||||
What needs to be authored for this to work:
|
||||
|
||||
| Element | Content Requirement |
|
||||
|---------|---------------------|
|
||||
| Detective opening monologue (lines about Tsev's missing reports) | 1-2 lines from session start knowledge |
|
||||
| Case file items (accessible via evidence display) | 3-5 readable entries: Tsev rotation note, manifest cluster data, POI summaries |
|
||||
| Torek dialogue (authority tier) | 3-5 lines for institutional context questions |
|
||||
| Veth (off-station, not interactive) | Referenced in case file and detective monologue only |
|
||||
| Detective monologue about political constraints | 2-3 lines scattered across session |
|
||||
|
||||
The chain of command does not require NPCs to appear — Veth and Pres are off-station and non-interactive in v0.1. Their presence is felt through the detective's case file entries and internal monologue about institutional constraints. Torek is the only chain-of-command-adjacent NPC who is interactive.
|
||||
|
||||
---
|
||||
|
||||
*Ticket #322 — Detective institutional chain of command. v0.1 scope.*
|
||||
@@ -1,171 +0,0 @@
|
||||
# Divergent Starting Knowledge
|
||||
|
||||
**Ticket:** #182 | **Priority:** Critical | **Sprint:** 12
|
||||
**Status:** v0.1 Draft
|
||||
**Blocked by:** #180 (Smuggler build), #181 (Detective build)
|
||||
**Decisions referenced:** D-005 (asymmetric information), D-027 (vertical slice), D-041 (knowledge graph), D-065 (evidence display)
|
||||
|
||||
---
|
||||
|
||||
## 1. Design Principle
|
||||
|
||||
Asymmetric information is the master mechanic (D-005). The two characters know different things about the same world. Neither has the full picture. The game's central tension comes from each player discovering what the other already knew — but only on their second playthrough.
|
||||
|
||||
The knowledge sets are not merely different. They are **inverted at the points that matter most.** The smuggler knows the conspiracy from inside it. The detective knows the investigation from outside it. The middle — the social web that connects them — is what neither fully understands at session start.
|
||||
|
||||
---
|
||||
|
||||
## 2. Master Knowledge Comparison Table
|
||||
|
||||
### 2a. Contraband and Ring
|
||||
|
||||
| Fact | Smuggler | Detective |
|
||||
|------|---------|-----------|
|
||||
| Ring exists (organized smuggling operation) | **KnowsEverything** — member | Unknown — suspects "systematic manipulation" but no structural knowledge |
|
||||
| Ring members (Nils, Kael, Voss, Renn, Devra, Resha) | **KnowsDetails** — works with them daily | Unknown — names absent from case file; only Voss, Maret, Drin as institutional POIs |
|
||||
| Cargo type (unlicensed lattice components, medical replacements) | **KnowsDetails** — handles the containers | Unknown — case file has weight/size anomalies but not cargo type |
|
||||
| Smuggling routes (corridor access, timing windows) | **KnowsEverything** — runs the routes | Unknown — knows maintenance corridors exist from district layout documents |
|
||||
| Operation schedule (shift transition windows) | **KnowsEverything** — the 20-minute gaps are the job | **KnowsDetails** — case file shows anomaly clustering around shift transitions |
|
||||
| Supply chain upstream (Sabel, Syndic connection) | **KnowsOf** (partial: knows Sabel, not the full chain) | Unknown |
|
||||
| Voss's complicity (takes a cut, provides scheduling cover) | **KnowsEverything** — operational fact | Unknown — Voss is a POI because of scheduling authority, not proven complicity |
|
||||
| Drin's complicity (looks the other way on inspections) | **KnowsDetails** — operational asset | Unknown — Drin is a POI because of inspection failures |
|
||||
| Maret's awareness (scheduling access to cover for ring) | **KnowsDetails** — hub colleague | **KnowsOf** — person of interest from case file |
|
||||
|
||||
### 2b. Investigation
|
||||
|
||||
| Fact | Smuggler | Detective |
|
||||
|------|---------|-----------|
|
||||
| Detective's identity as investigator | Unknown — may know "new Commission presence" from ring warning | **KnowsEverything** — is the investigator |
|
||||
| Detective's actual mandate (investigate freight irregularities) | Unknown — "routine compliance review" is the cover | **KnowsEverything** |
|
||||
| Manifest discrepancies exist and are flagged | **KnowsOf** — operational awareness that paperwork is being managed | **KnowsDetails** — has the discrepancy data, cluster analysis, container series |
|
||||
| Previous Commission liaison rotation (possibly arranged) | Unknown | **KnowsOf** — noted in case file as suspicious; unconfirmed |
|
||||
| Commission's investigation timeline | Unknown | **KnowsDetails** — their own timeline |
|
||||
|
||||
### 2c. Key People
|
||||
|
||||
| Fact | Smuggler | Detective |
|
||||
|------|---------|-----------|
|
||||
| Kael's exit attempt (unauthorized external contact) | **Unknown** (CRITICAL gap — basis for FRIEND arc) | Unknown |
|
||||
| Sera's unreported evidence (suppressed compliance check on Kael) | Unknown | **Unknown** (CRITICAL gap — basis for FRIEND arc) |
|
||||
| Naia confided in Sera about Kael | Unknown | Unknown |
|
||||
| Naia's worry about Kael's behavior | **KnowsOf** — has noticed Naia seems stressed at bar; doesn't know why | Unknown — Naia is not yet a known individual |
|
||||
| Torek's spending (conspicuous, potential security risk) | **KnowsOf** — has noticed; worries about exposure | **KnowsOf** — "slightly off in a way I can't yet articulate" |
|
||||
| Sera's background (pre-existing contact for detective) | Unknown — knows Sera only as "Commission, keep distance" | **KnowsDetails** — trusted pre-existing friend |
|
||||
| Smuggler's role in the ring | **KnowsEverything** — is a member | Unknown — one of many dock workers |
|
||||
| Kael's relationship with Nils (brother; ring coordinator) | **KnowsDetails** | Unknown |
|
||||
|
||||
### 2d. Location and World
|
||||
|
||||
| Fact | Smuggler | Detective |
|
||||
|------|---------|-----------|
|
||||
| Sova Transit District geography (full) | **KnowsEverything** — 3 years here | **KnowsOf** — 3 days; still orienting |
|
||||
| Corridor B-7 (restricted, ring access) | **KnowsEverything** — knows the access token, uses the corridor | Unknown — maintenance corridors noted in district layout |
|
||||
| Dead drop location (temp storage bay 4, container 4471) | **KnowsEverything** | Unknown — container 4471 appears in manifest discrepancy data but not mapped to a location |
|
||||
| Shift schedule rhythms (social and operational) | **KnowsEverything** | **KnowsOf** — knows shifts exist, pattern from case file |
|
||||
| Bar social structure (who sits where, who's a regular) | **KnowsDetails** — 2 years of evenings at Lera's | **KnowsOf** — has visited twice |
|
||||
|
||||
---
|
||||
|
||||
## 3. Knowledge Asymmetry Map
|
||||
|
||||
The gaps in each character's knowledge are not random — they cluster around the same events and people, approached from opposite directions:
|
||||
|
||||
```
|
||||
THE SHARED WORLD
|
||||
↕
|
||||
┌─────────────────────────────────────┐
|
||||
│ Triangle 4 │
|
||||
│ Naia ←→ Kael ←→ Sera │
|
||||
│ ↑ ↑ │
|
||||
│ (Kael's (suppressed │
|
||||
│ partner, evidence) │
|
||||
│ knows ↕ │
|
||||
│ something) Detective's │
|
||||
│ ↕ FRIEND │
|
||||
│ Smuggler's │
|
||||
│ FRIEND │
|
||||
└─────────────────────────────────────┘
|
||||
|
||||
Smuggler knows: Kael (trusted friend), ring details, routes, members
|
||||
Smuggler doesn't know: Kael is exiting, Sera's evidence, Naia→Sera connection
|
||||
|
||||
Detective knows: Investigation data, Sera (trusted friend), manifest anomalies
|
||||
Detective doesn't know: Ring structure, Kael's role, Sera's evidence, Naia→Sera connection
|
||||
|
||||
Neither knows: Triangle 4's full shape — the chain from Naia's worry to Sera's suppression to the investigation closing in
|
||||
```
|
||||
|
||||
The dramatic irony of the second playthrough is that the player who's played as the smuggler watches the detective investigate from outside what the smuggler knows intimately. The player who's played as the detective watches the smuggler trust Kael — not knowing the thing the detective now knows (Kael is the link between the ring and Sera's evidence).
|
||||
|
||||
---
|
||||
|
||||
## 4. Knowledge Acquisition Curves
|
||||
|
||||
### Smuggler: What they can learn, and how
|
||||
|
||||
| Unknown → Known | Method | Timing |
|
||||
|----------------|--------|--------|
|
||||
| Detective's identity | Ring warning (Kael/Voss mentions Commission presence) OR direct observation | Minutes 0-5 (if warned); later if not |
|
||||
| Kael's exit attempt | THE FRIEND arc — spatial observation (Corridor B-7), then confrontation | Minutes 15-25 |
|
||||
| Sera has unreported evidence | Cannot discover this through normal play. Would require Sera to confess or Naia to reveal — extreme late-game territory beyond v0.1 scope | Post-v0.1 |
|
||||
| Torek's specific risk level | Observation of Torek's behavior over time | Minutes 10-20 |
|
||||
|
||||
### Detective: What they can learn, and how
|
||||
|
||||
| Unknown → Known | Method | Timing |
|
||||
|----------------|--------|--------|
|
||||
| Ring exists (structured) | Evidence accumulation — NPC behavioral tells, manifest patterns, corridor observation | Minutes 15-25 |
|
||||
| Kael is ring member | Connecting manifest discrepancies to Kael's shift data; cargo attention tell | Minutes 20-30 |
|
||||
| Sera's unreported evidence | THE FRIEND arc — behavioral pattern observation (Torek avoidance), then confrontation | Minutes 20-30 |
|
||||
| Smuggler is in the ring | Tell accumulation (corridor check, social clustering with Kael/Renn), manifest connection | Minutes 15-30 |
|
||||
| Kael's exit attempt | Would require Kael to confess or Naia to reveal — beyond normal investigation path | Post-confrontation branch |
|
||||
|
||||
---
|
||||
|
||||
## 5. Evidence Display Difference
|
||||
|
||||
Same underlying Knowledge Graph, different presentation layer (D-065):
|
||||
|
||||
**Detective — Case File Format:**
|
||||
```
|
||||
Entity: Kael Davan
|
||||
Role: Dock worker, Sova Terminal
|
||||
Confidence: KnowsOf
|
||||
Source: observation
|
||||
Attributes:
|
||||
- routine_pattern: "morning shift 06:00-14:00"
|
||||
- behavior_flags: [lattice_checking, shortened_interactions]
|
||||
- risk_assessment: "moderate — behavioral anomalies suggest concealment"
|
||||
- link: [manifest_discrepancy_cluster_A]
|
||||
Insert suggests: "Check shift records against anomaly window"
|
||||
```
|
||||
|
||||
**Smuggler — Personal Notebook Format:**
|
||||
```
|
||||
Kael — closes colleague, ring. Two years. Trust: solid.
|
||||
Lately: distracted. Lunch cut short twice this week.
|
||||
Something's off. Not the operation — personal.
|
||||
Watch for: the look-left tell.
|
||||
```
|
||||
|
||||
Same underlying entity. Different framing. The detective files evidence. The smuggler worries about people.
|
||||
|
||||
---
|
||||
|
||||
## 6. Design Implications for Content Authors
|
||||
|
||||
**Rule 1: Don't explain what the character already knows.**
|
||||
The smuggler doesn't need exposition about how the ring works. They know. Monologue lines about the ring should be operational, not explanatory. The detective doesn't need exposition about institutional procedures. They know. Monologue lines about the investigation should be observational, not procedural.
|
||||
|
||||
**Rule 2: The unknown facts are load-bearing.**
|
||||
When writing monologue lines, verify against the unknown_facts list. A smuggler monologue line that references Kael's exit attempt before Phase 3 is a continuity error. A detective monologue line that identifies Kael as a ring member before connecting manifest data to shift records is a continuity error.
|
||||
|
||||
**Rule 3: Knowledge gaps produce monologue, not silence.**
|
||||
What a character doesn't know generates JUST AS MUCH monologue content as what they know. The smuggler's worry about "is Torek a risk?" is monologue material. The detective's uncertainty about "previous liaison rotation — arranged or routine?" is monologue material. The unknown is active, not empty.
|
||||
|
||||
**Rule 4: The same event produces inverted monologue.**
|
||||
When the same NPC does the same thing in both playthroughs, the monologue responses should be detectably from different starting states. Kael checking his lattice → smuggler thinks "not like him to be jumpy" (personal familiarity) → detective thinks "lattice activity spiked, behavioral flag" (observational analysis).
|
||||
|
||||
---
|
||||
|
||||
*Ticket #182 — Divergent starting knowledge. v0.1 scope.*
|
||||
@@ -1,5 +1,4 @@
|
||||
# Insert/HUD Wireframe and Visual Specification — v0.1
|
||||
## Dual Character Variants: Smuggler + Detective
|
||||
|
||||
**Ticket:** #314
|
||||
**Author:** Araminta (Visual Designer)
|
||||
@@ -7,6 +6,8 @@
|
||||
**Status:** Active — feeds #263 (time display client implementation) and #151 (minimap rendering)
|
||||
**Visual grammar reference:** `docs/design/visual-grammar-v01.md` (§7 Neural Insert Overlay)
|
||||
|
||||
> **Sprint 26 / D-117:** Detective archetype removed. Detective-specific sections (§3.3, §4.2, §5.2, §10.2, §10.3) have been deleted. Remaining content reflects the base lattice profile (smuggler/observer). Smuggler variant retained as reference for the tycoon observer insert design.
|
||||
|
||||
---
|
||||
|
||||
## 1. System Architecture
|
||||
@@ -16,20 +17,20 @@ The insert HUD is not a UI panel bolted onto the game. It is the player characte
|
||||
This has direct design consequences:
|
||||
|
||||
- The insert does not appear/disappear — it activates and deactivates. The character's lattice is always there; they choose when to engage it.
|
||||
- Labels use the character's vocabulary, not the game's. The smuggler's insert calls it "The Last Shift." The detective's insert calls it "Licensed Establishment, District 7."
|
||||
- Labels use the character's vocabulary, not the game's. The smuggler's insert calls it "The Last Shift."
|
||||
- The same underlying `ObserverSnapshot` feeds both variants. One parameterized system: `lattice_profile` on the snapshot determines which visual mode renders. Stig builds one HUD framework, not two. The variants are rendering configurations, not separate systems.
|
||||
|
||||
### 1.1 Technical Parameters
|
||||
|
||||
| Parameter | Smuggler | Detective |
|
||||
|-----------|----------|-----------|
|
||||
| `lattice_profile` | `lattice_baseline` | `lattice_augmented` |
|
||||
| Line weight | 1px | 1–2px |
|
||||
| Annotation density | Sparse — essential markers only | Dense — more markers, connection lines |
|
||||
| Passive opacity | 60% | 80% |
|
||||
| Active opacity | 85% | 100% |
|
||||
| Bloom | 2–3px gaussian at 40% blend | 2–3px gaussian at 40% blend |
|
||||
| Chrome color | `#c8d0e0` | `#c8d0e0` |
|
||||
| Parameter | Value |
|
||||
|-----------|-------|
|
||||
| `lattice_profile` | `lattice_baseline` |
|
||||
| Line weight | 1px |
|
||||
| Annotation density | Sparse — essential markers only |
|
||||
| Passive opacity | 60% |
|
||||
| Active opacity | 85% |
|
||||
| Bloom | 2–3px gaussian at 40% blend |
|
||||
| Chrome color | `#c8d0e0` |
|
||||
|
||||
### 1.2 Z-Layer Position
|
||||
|
||||
@@ -104,39 +105,13 @@ Single line: the time. Informal, just the clock.
|
||||
|
||||
No annotation. The smuggler's lattice gives them the time. That's it.
|
||||
|
||||
### 3.3 Detective Variant
|
||||
|
||||
Two lines: clock on top, shift indicator below. The detective thinks in shifts.
|
||||
|
||||
```
|
||||
09:42
|
||||
SHIFT A ·
|
||||
```
|
||||
|
||||
| Element | Value |
|
||||
|---------|-------|
|
||||
| Time text | `{HH}:{MM}` — Michroma 20px, `#c8d0e0` at 80% passive, y: 26px in container |
|
||||
| Phase label | `SHIFT {X}` — Michroma 11px, `#c8d0e0` at 60%, y: 50px in container |
|
||||
| Phase dot | 4px circle, phase-color (see below), same y as phase label |
|
||||
|
||||
**Day phase to shift mapping:**
|
||||
|
||||
| Game time | Shift label | Dot color |
|
||||
|-----------|-------------|-----------|
|
||||
| 05:00–12:00 | `SHIFT A` | `#c8d0e0` (chrome, neutral) |
|
||||
| 12:00–18:00 | `SHIFT B` | `#c8d0e0` (chrome, neutral) |
|
||||
| 18:00–22:00 | `SHIFT C` | `#e8c547` (amber — social hours, higher risk of contacts) |
|
||||
| 22:00–05:00 | `SHIFT OFF` | `#4a9ebb` (teal — night, lower routine activity) |
|
||||
|
||||
The dot is a subtle visual cue, not a state machine icon. It gives the detective's lattice a slightly more annotated feel than the smuggler's plain clock.
|
||||
|
||||
### 3.4 Insert-Off Behavior
|
||||
### 3.3 Insert-Off Behavior
|
||||
|
||||
When `insert_active == false`:
|
||||
- Time display dims to 50% of passive opacity
|
||||
- Background panel disappears entirely
|
||||
- Text remains — the character always knows what time it is, even without active lattice engagement. Time is ambient lattice output, not targeting output.
|
||||
- Phase label (detective) also dims to 50%
|
||||
|
||||
|
||||
The time display is the one persistent insert element. Everything else goes dark on insert deactivation.
|
||||
|
||||
@@ -188,59 +163,6 @@ Named NPCs (Kael, Lera, Sera, etc.) always show a casual label. Generic NPCs sho
|
||||
|
||||
The smuggler does not see "Person of Interest." To them, amber means "something's off about this person" — not a case file designation.
|
||||
|
||||
### 4.2 Detective Variant — Investigation Overlay
|
||||
|
||||
The detective sees their world as a case map. Known individuals are flagged. Locations have institutional labels. The overlay is denser and more annotated.
|
||||
|
||||
**Named NPC marker specification:**
|
||||
|
||||
| NPC type | Shape | Size | Color |
|
||||
|----------|-------|------|-------|
|
||||
| Person of Interest | Diamond (rotated square) | 10px × 10px | `#e8c547` amber |
|
||||
| Known/Friendly | Filled circle | 6px | `#6bc9a6` green |
|
||||
| Unknown | Filled circle | 6px | `#4a9ebb` teal |
|
||||
| Hostile / Suspect | Diamond | 10px × 10px | `#d45d5d` red |
|
||||
|
||||
The diamond shape is the detective's POI designation — it communicates "flagged" without text. The smuggler's variant uses only circles because their lattice doesn't have case-file designation logic.
|
||||
|
||||
**Label specification:**
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Typeface | Michroma 11px |
|
||||
| Color | `#c8d0e0` at 80% passive, 100% on hover |
|
||||
| Position | 10px above the marker, right-aligned to marker center |
|
||||
| NPC label format | `POI: K. Davan` (formal: last name initial + surname) |
|
||||
| NPC label format | `K. Davan` for Known/non-POI |
|
||||
| Location label | See §5 |
|
||||
|
||||
**Evidence annotation:**
|
||||
|
||||
When the detective has logged evidence associated with an entity, a small square appears adjacent to their marker:
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Shape | Filled square |
|
||||
| Size | 4px × 4px |
|
||||
| Position | 4px right of the primary marker |
|
||||
| Color | `#e8c547` amber |
|
||||
| Opacity | 60% passive, 100% on hover |
|
||||
|
||||
This is the insert's way of flagging "you have something on this person." It doesn't say what.
|
||||
|
||||
**Commission grid overlay (Detective only):**
|
||||
|
||||
The detective's augmented lattice renders a very faint reference grid across the viewport. This is the "commission-style" aesthetic — the world read as a site map.
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Grid lines | Horizontal + vertical, every 5 visual tiles (~320px) |
|
||||
| Line color | `#333340` at 20% opacity |
|
||||
| Line weight | 1px |
|
||||
| Behavior | Always visible when insert active, disappears on insert-off |
|
||||
|
||||
The grid does not animate, pulse, or react. It is a passive reference overlay. Five lines across the width, five down the height, making a 5×5 grid of reference squares. It is barely visible — felt as structure, not seen as decoration.
|
||||
|
||||
---
|
||||
|
||||
## 5. Location Labels
|
||||
@@ -265,25 +187,6 @@ Casual labels, written in the smuggler's vocabulary. These are their personal pi
|
||||
| Position | Centered on location anchor, 16px above entity-level (below any entity markers at that location) |
|
||||
| Visibility | Always visible for known locations, fades in on discovery |
|
||||
|
||||
### 5.2 Detective Variant
|
||||
|
||||
Institutional labels, written in Commission case file format.
|
||||
|
||||
| Location | Label text |
|
||||
|----------|-----------|
|
||||
| The Last Shift (bar) | `Licensed Establishment · District 7` |
|
||||
| The Terminal (logistics hub) | `Freight Operations Hub · Level 2` |
|
||||
| Maintenance corridor | `Restricted Access — Corridor B-7` |
|
||||
| Kael's regular position | `K. Davan – Last Sighted` |
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Typeface | Michroma 11px |
|
||||
| Color | `#c8d0e0` at 70% — slightly more prominent than smuggler's labels |
|
||||
| Position | Same as smuggler, centered on anchor |
|
||||
| Secondary text | Dot separator `·` between primary name and category/district |
|
||||
| Visibility | Always visible for known/case-file locations |
|
||||
|
||||
---
|
||||
|
||||
## 6. Border Arrows (Off-Screen Navigation)
|
||||
@@ -307,10 +210,9 @@ When a known POI or tracked entity is outside the current viewport, a border arr
|
||||
|
||||
**Decay:** If the character has only `Suspects` confidence about a location (not `KnowsOf`), the border arrow renders at 30% opacity with a dashed border (1px alternating 2px on / 2px off). "Something might be there."
|
||||
|
||||
### 6.2 Smuggler vs Detective
|
||||
### 6.2 Arrow Behavior
|
||||
|
||||
- **Smuggler:** Border arrows appear for Known/Friendly NPCs and personal pins. The arrow color is the NPC's relationship color. The label is casual. Unknown NPCs do not generate border arrows.
|
||||
- **Detective:** Border arrows appear for all case-file entries, POIs, and known locations regardless of relationship state. Evidence-flagged entities show the amber evidence square (4px) adjacent to the arrow.
|
||||
Border arrows appear for Known/Friendly NPCs and personal pins. The arrow color is the NPC's relationship color. The label is casual. Unknown NPCs do not generate border arrows.
|
||||
|
||||
---
|
||||
|
||||
@@ -334,8 +236,6 @@ Per D-065: the smuggler can carry up to 3–4 physical items. Icons appear in th
|
||||
|
||||
Icons do not disappear when insert is off — they are physical items, not lattice annotations. The character still has pockets whether or not their insert is active.
|
||||
|
||||
**Detective inventory:** The detective has 2 inventory slots but they are knowledge-only in v0.1 (D-065). No inventory icons display for the detective in v0.1.
|
||||
|
||||
---
|
||||
|
||||
## 8. Stance Indicator
|
||||
@@ -369,8 +269,6 @@ When `insert_active == false`:
|
||||
| Entity markers | Hidden |
|
||||
| Location labels | Hidden |
|
||||
| Border arrows | Hidden |
|
||||
| Commission grid (detective) | Hidden |
|
||||
| Evidence annotations | Hidden |
|
||||
| Bloom | Off — no gaussian pass |
|
||||
| Time display | Dims to 50% of passive opacity, background panel disappears |
|
||||
| Stance indicator | Remains — 30% opacity |
|
||||
@@ -459,60 +357,6 @@ The Last Shift = location label (Michroma 12px, 50% chrome)
|
||||
CAREFUL = stance (Michroma 11px, lower-left, 50%)
|
||||
```
|
||||
|
||||
### 10.2 Detective Variant — Same Location, Same Time
|
||||
|
||||
The detective is outside the bar, watching the entrance. Kael is inside, behind a wall — the lattice shows his last known position as a dim marker. A POI is approaching from the corridor (off-screen right).
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ WALK [ANALYT] 09:42 │
|
||||
│ SHIFT C · │
|
||||
│ +·····+·····+·····+·····+·····+·····+·····+·····+·····+·····+ │
|
||||
│ · ·│
|
||||
│ · ◆ [player] → ·│
|
||||
│ · K. Davan (blue-wh) [POI: arrow, amber, off-screen]·│
|
||||
│ · (amber diamond) ·│
|
||||
│ · ·│
|
||||
│ · Licensed Establishment · District 7 ·│
|
||||
│ +·····+·····+·····+·····+·····+·····+·····+·····+·····+·····+ │
|
||||
│ · ·│
|
||||
│ · ·│
|
||||
│ │
|
||||
│ WALK │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ [dialogue box — inactive] │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Legend:
|
||||
◆ = POI diamond marker (10×10px) K. Davan = formal label (Michroma 11px)
|
||||
+·····+ = commission grid overlay (Michroma thin, 20% opacity)
|
||||
→ = border arrow (off-screen POI, amber — K. Davan connection)
|
||||
Licensed Establishment · District 7 = institutional location label
|
||||
09:42 / SHIFT C · = time display + shift with amber phase dot
|
||||
[ANALYT] = perception mode indicator (placeholder position, upper-center-right)
|
||||
```
|
||||
|
||||
### 10.3 Entity Hover State — Detective, POI Hover
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ WALK [ANALYT] 09:42 │
|
||||
│ SHIFT C · │
|
||||
│ │
|
||||
│ Talk │
|
||||
│ Observe │
|
||||
│ ◆ Confront ←─ interaction verbs (amber, 13px) │
|
||||
│ K. Davan │
|
||||
│ [■]◆ (brightened, 100%, bloom 60%) │
|
||||
│ │
|
||||
│ all other markers at 40% opacity ─────────────────────────→ │
|
||||
│ ● │
|
||||
│ (40%) │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
[■] = evidence annotation (4×4px amber square, adjacent to diamond)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. Color Reference Summary
|
||||
@@ -526,8 +370,7 @@ All colors from `visual-grammar-v01.md` §1.5 and §3.2. Reproduced here for imp
|
||||
| Entity — Known/Friendly | `#6bc9a6` | Soft green. Trusted network. |
|
||||
| Entity — POI | `#e8c547` | Warm amber. Flagged. |
|
||||
| Entity — Hostile | `#d45d5d` | Muted red. Subjective danger. |
|
||||
| Player — Detective | `#e0e8ff` | Cool blue-white. |
|
||||
| Player — Smuggler | `#e8e0d0` | Warm cream. |
|
||||
| Player | `#e8e0d0` | Warm cream. |
|
||||
| Unexplored wireframe | `#333340` | Not used in HUD chrome directly — world layer use |
|
||||
| Time panel background | `#0e1218` at 40% | Barely-there. Matches zone ambient palette. |
|
||||
|
||||
@@ -541,11 +384,9 @@ All text is Michroma Regular 400 (Google Fonts). No exceptions (visual-grammar-v
|
||||
|
||||
| Role | Size | Color | Opacity (passive / active) | Z-layer |
|
||||
|------|------|-------|---------------------------|---------|
|
||||
| Time display | 24px (smuggler) / 20px (detective) | `#c8d0e0` | 80% / 100% | 6 |
|
||||
| Phase label (detective) | 11px | `#c8d0e0` | 60% / 80% | 6 |
|
||||
| Time display | 24px | `#c8d0e0` | 80% / 100% | 6 |
|
||||
| Entity label (hover) | 11px | `#c8d0e0` | 70% / 100% | 6 |
|
||||
| Location label (smuggler) | 12px | `#c8d0e0` | 50% / 70% | 6 |
|
||||
| Location label (detective) | 11px | `#c8d0e0` | 70% / 90% | 6 |
|
||||
| Location label | 12px | `#c8d0e0` | 50% / 70% | 6 |
|
||||
| Interaction verb | 13px | D-033 target color | 95% (always active) | 6 |
|
||||
| Stance indicator | 11px | `#c8d0e0` | 50% / 60% | 6 |
|
||||
| Border arrow label (hover) | 10px | `#c8d0e0` | 0% / 100% (hover-only) | 6 |
|
||||
@@ -575,15 +416,12 @@ These are deliberately out of scope for #314. Separate tickets own them.
|
||||
3. Time display text must be **right-aligned** within the container. Don't center it — it should feel like a readout in the upper-right corner.
|
||||
4. The background panel (`#0e1218` at 40%) should be a simple NinePatchRect or ColorRect — minimal, no rounded corners.
|
||||
5. When `insert_active == false`: set time display `modulate.a = 0.5 * passive_opacity` and hide the background panel. The text stays; the container chrome disappears.
|
||||
6. For the detective's phase label: drive the shift string from a simple range lookup on the game hour (see §3.3 table above). The dot color is a color constant mapped from phase — not dynamic.
|
||||
7. The phase label is visible only on `lattice_profile == lattice_augmented`. Single boolean check in the time display node.
|
||||
|
||||
**For the entity marker system (future tickets):**
|
||||
|
||||
- One marker scene, parametrized by shape (circle vs diamond), size, color, bloom intensity
|
||||
- The `lattice_profile` drives shape selection: baseline = circles always, augmented = diamonds for POI state, circles for other states
|
||||
- Evidence annotation (`■`) is a separate child node, shown/hidden based on KnowledgeGraph query for evidence entries on this entity
|
||||
- Commission grid is a separate CanvasLayer node, only visible when `lattice_profile == lattice_augmented` and `insert_active == true`
|
||||
- One marker scene, parametrized by shape (circle), size, color, bloom intensity
|
||||
- All entity markers use the baseline dot (circle) — no diamond/POI shapes in the base profile
|
||||
- Bloom intensity driven by relationship color from D-033
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user