refactor(simulation): move content/ under server/ (#669)
Content files (RON templates, YAML campaigns, gauntlet data) are consumed exclusively by the server. Colocate them at server/content/ and update all path references in Rust source, tooling scripts, and schema files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
# Main Campaign metadata (D-003)
|
||||
display_name: "The Settled Reach"
|
||||
description: >
|
||||
The core campaign. Set in a universe of wormhole-connected star systems,
|
||||
neural lattice technology, and faction-driven politics. Occlusion-based
|
||||
detective game with combat elements.
|
||||
version: "0.1.0"
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
# Sova Transit District metadata (D-036)
|
||||
# Identity derived from directory path: campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/
|
||||
# canonical_id: van-maanens-star.sova.transit (derived at load time by ContentValidator)
|
||||
display_name: "Sova Transit District"
|
||||
description: >
|
||||
A 40-year-old prefab-modular-retrofitted freight logistics hub on Station Sova.
|
||||
Five locations: The Terminal (logistics hub), The Last Shift (bar),
|
||||
maintenance corridors, gate corridor (ground level), and the observation
|
||||
gallery (Commission-only, z=2 above the gate concourse).
|
||||
locations:
|
||||
- "the-terminal"
|
||||
- "the-last-shift"
|
||||
- "maintenance-corridors"
|
||||
- "gate-ground"
|
||||
- "gate-gallery"
|
||||
npc_count: 17
|
||||
+151
@@ -0,0 +1,151 @@
|
||||
# Environmental Text: Maintenance Corridors
|
||||
# Signs, terminals, documents, readable objects.
|
||||
# Investigation-heavy. This is where the operational evidence lives.
|
||||
# Ticket: #262 | Sprint: 12
|
||||
|
||||
location: maintenance-corridors
|
||||
items:
|
||||
|
||||
# ==========================================
|
||||
# ACCESS RESTRICTION SIGN — corridor entrance
|
||||
# ==========================================
|
||||
|
||||
- id: env_corridor_001
|
||||
type: sign
|
||||
label: "Restricted Access Notice"
|
||||
visibility: always
|
||||
text: >
|
||||
RESTRICTED ACCESS — MAINTENANCE PERSONNEL ONLY
|
||||
|
||||
B-CORRIDOR SECTOR — AUTHORIZED ENTRY REQUIRED
|
||||
|
||||
Unauthorized entry subject to Sova Station Authority review.
|
||||
Commission Order 7741-B applies.
|
||||
|
||||
Report unauthorized personnel to: Station Security (Lattice: SovaStation/Security)
|
||||
tags: [atmospheric, b7-corridor]
|
||||
|
||||
# ==========================================
|
||||
# MERIDIAN COVERAGE SCHEDULE — posted on corridor wall
|
||||
# Most investigation-relevant item in the game.
|
||||
# ==========================================
|
||||
|
||||
- id: env_corridor_002
|
||||
type: document
|
||||
label: "Meridian Scan Schedule"
|
||||
visibility: examine_only
|
||||
text: >
|
||||
MERIDIAN SURVEILLANCE COVERAGE — SOVA TRANSIT DISTRICT
|
||||
MAINTENANCE CORRIDOR SECTOR — CURRENT CYCLE
|
||||
|
||||
Active coverage windows (full corridor monitoring):
|
||||
06:00-07:30 | 10:00-11:00 | 14:00-15:30 | 22:00-23:00
|
||||
|
||||
Reduced coverage (perimeter only):
|
||||
07:30-10:00 | 11:00-14:00 | 15:30-22:00 | 23:00-06:00
|
||||
|
||||
NOTE: Span gate maintenance cycles create signal interference.
|
||||
Coverage gaps during gate calibration: approx 14:20-14:45.
|
||||
|
||||
Posted by: Sova Meridian Network Maintenance Division
|
||||
tags: [investigation-relevant, meridian, surveillance-gap, critical]
|
||||
knowledge_grant:
|
||||
fact_id: "location.surveillance_gaps"
|
||||
confidence: knows_details
|
||||
|
||||
# ==========================================
|
||||
# MAINTENANCE LOG SHEET — handwritten clipboard at corridor junction
|
||||
# ==========================================
|
||||
|
||||
- id: env_corridor_003
|
||||
type: document
|
||||
label: "Maintenance Log (B-7 Corridor)"
|
||||
visibility: examine_only
|
||||
text: >
|
||||
B-7 CORRIDOR — MAINTENANCE LOG
|
||||
Logged by: Pael Varren
|
||||
|
||||
[Month 11, Day 4]
|
||||
Air scrubber pressure variance. Reset. Source unclear.
|
||||
|
||||
[Month 11, Day 12]
|
||||
Seal failure B-7 junction. Third occurrence. Replaced again.
|
||||
Noted: floor wear pattern inconsistent with posted traffic.
|
||||
Possible deferred maintenance backlog creating additional load.
|
||||
|
||||
[Month 11, Day 22]
|
||||
Recurring seal failure. Escalated to deferred queue.
|
||||
NOTE: Pressure sensors reading elevated load during 14:00-15:00
|
||||
window. Does not match shift transition foot traffic.
|
||||
Filed maintenance anomaly report — awaiting management review.
|
||||
tags: [investigation-relevant, b7-corridor, pael, critical]
|
||||
knowledge_grant:
|
||||
fact_id: "location.corridor_b7_restricted"
|
||||
confidence: knows_of
|
||||
|
||||
# ==========================================
|
||||
# ROUTING DIAGRAM — cargo flow map posted at junction
|
||||
# ==========================================
|
||||
|
||||
- id: env_corridor_004
|
||||
type: sign
|
||||
label: "Cargo Routing Diagram"
|
||||
visibility: always
|
||||
text: >
|
||||
SOVA TRANSIT — MAINTENANCE CORRIDOR ROUTING
|
||||
[Technical diagram showing freight flow paths]
|
||||
|
||||
Standard freight path: Bay > Terminal > Surface Storage
|
||||
Emergency reroute: Bay > B-corridor > Temporary Hold (C-4)
|
||||
Maintenance access: B-corridor > Service Lift > Environmental Systems
|
||||
|
||||
[Someone has drawn a thin pencil line from Bay 4 to C-4 to
|
||||
the service lift, bypassing the standard terminal route]
|
||||
tags: [investigation-relevant, b7-corridor, smuggling-route]
|
||||
knowledge_grant:
|
||||
fact_id: "location.smuggling_route"
|
||||
confidence: suspects
|
||||
|
||||
# ==========================================
|
||||
# ENVIRONMENTAL WARNING — recycled air quality
|
||||
# ==========================================
|
||||
|
||||
- id: env_corridor_005
|
||||
type: sign
|
||||
label: "Environmental Quality Notice"
|
||||
visibility: always
|
||||
text: >
|
||||
CORRIDOR ENVIRONMENTAL STATUS — CURRENT READINGS
|
||||
|
||||
CO2: 0.12% [ACCEPTABLE — upper threshold 0.15%]
|
||||
Particulate: ELEVATED — see maintenance queue
|
||||
Temperature: 19.4°C [nominal]
|
||||
Recycled air freshness: 73% [minimum recommended: 80%]
|
||||
|
||||
If recycled air quality falls below 70%, report to maintenance.
|
||||
Current status: Monitor.
|
||||
tags: [atmospheric, environmental]
|
||||
|
||||
# ==========================================
|
||||
# TEMPORARY STORAGE MANIFEST SHEET
|
||||
# At the C-4 temporary hold point
|
||||
# ==========================================
|
||||
|
||||
- id: env_corridor_006
|
||||
type: document
|
||||
label: "Temporary Storage Log (C-4)"
|
||||
visibility: examine_only
|
||||
text: >
|
||||
C-4 TEMPORARY HOLD — CONTENTS LOG
|
||||
[Printed manifest, partial, two pages visible]
|
||||
|
||||
Container 4466 — Cleared — removed Month 11 Day 1
|
||||
Container 4467 — Cleared — removed Month 11 Day 3
|
||||
Container 4468 — Cleared — removed Month 11 Day 3
|
||||
Container 4469 — [NO ENTRY]
|
||||
Container 4470 — Cleared — removed Month 11 Day 8
|
||||
Container 4471 — [PENDING — entered Month 11 Day 15, no removal logged]
|
||||
Container 4472 — Cleared — removed Month 11 Day 18
|
||||
|
||||
[Gap in numbering between 4469-4470 has no explanation column]
|
||||
tags: [container-4471, critical]
|
||||
+209
@@ -0,0 +1,209 @@
|
||||
# Environmental Text: The Last Shift (Bar)
|
||||
# Signs, terminals, documents, readable objects.
|
||||
# Atmosphere-heavy. Some investigation relevance through social texture.
|
||||
# Ticket: #262 | Sprint: 12
|
||||
|
||||
location: the-last-shift
|
||||
items:
|
||||
|
||||
# ==========================================
|
||||
# DRINK MENU — handwritten, scratched-out prices
|
||||
# Above the bar. Visible to anyone.
|
||||
# ==========================================
|
||||
|
||||
- id: env_bar_001
|
||||
type: sign
|
||||
label: "Drink Menu"
|
||||
visibility: always
|
||||
text: >
|
||||
THE LAST SHIFT
|
||||
(Lera's)
|
||||
|
||||
Van Maanen's Star grain spirit — 4c
|
||||
Pale station brew — 3c ~~2c~~
|
||||
Dark station brew — 3c
|
||||
Import (off-station) — 8c
|
||||
Sova standard water — 1c
|
||||
Meal (hot, whatever's running) — 6c
|
||||
|
||||
No tabs. No Commission business at the bar.
|
||||
House rules posted.
|
||||
dual_lens:
|
||||
smuggler: "Import's doubled since last year. Everything's tighter."
|
||||
detective: >
|
||||
"No Commission business at the bar." That's Lera's personal policy.
|
||||
She'll have opinions about why.
|
||||
tags: [atmospheric]
|
||||
|
||||
# ==========================================
|
||||
# LERA'S RULES — above the bar
|
||||
# ==========================================
|
||||
|
||||
- id: env_bar_002
|
||||
type: sign
|
||||
label: "House Rules"
|
||||
visibility: always
|
||||
text: >
|
||||
LERA'S — HOUSE RULES
|
||||
|
||||
1. Pay before you're too drunk to remember.
|
||||
2. Arguments outside. Always.
|
||||
3. What's said at the bar stays at the bar.
|
||||
4. No job talk after 20:00.
|
||||
5. Torek Lintar runs his own tab. Don't ask.
|
||||
dual_lens:
|
||||
smuggler: "Rule 5. Lera's been running Torek's tab for years. Old arrangement."
|
||||
detective: >
|
||||
Rule 5 is specific. Named. Torek Lintar has a standing arrangement
|
||||
here. That's the third time his name has come up without context.
|
||||
tags: [investigation-relevant, torek-lintar, lera]
|
||||
knowledge_grant:
|
||||
fact_id: "relationship.torek_bar_arrangement"
|
||||
confidence: suspects
|
||||
|
||||
# ==========================================
|
||||
# NOTICE BOARD — general community notices
|
||||
# Examine to read individual notices.
|
||||
# ==========================================
|
||||
|
||||
- id: env_bar_003
|
||||
type: readable_object
|
||||
label: "Notice Board"
|
||||
visibility: always
|
||||
text: >
|
||||
[NOTICE BOARD — various papers pinned over each other]
|
||||
|
||||
MISSING: Vessels Tamm, last seen Sova Transit District, Month 11.
|
||||
Contact: Lattice Commission Sova liaison or speak to Lera.
|
||||
|
||||
CARGO WORKERS' ASSOCIATION — Monthly meeting, back room, Month 12,
|
||||
evening shift. All Sova Transit workers welcome. Bring your own.
|
||||
|
||||
ROOM AVAILABLE: Residential pod B-3, lower level. Quiet. Short-term.
|
||||
Speak to Harek at the bar.
|
||||
|
||||
[handwritten, pinned over the others:]
|
||||
ANYONE KNOW WHO LEFT A TRANSIT BAG IN THE STORAGE ROOM?
|
||||
IT'S BEEN THREE WEEKS.
|
||||
dual_lens:
|
||||
smuggler: >
|
||||
Vessels Tamm. Missing person notice. That name's from the Tamm family —
|
||||
Naia's connection? Or coincidence. Probably coincidence.
|
||||
detective: >
|
||||
Missing persons notice. Vessels Tamm. Sova Transit District. Cross-reference
|
||||
Tamm with case file — possible Naia Tamm relation. Flag for follow-up.
|
||||
tags: [investigation-relevant, naia-tamm-adjacent, harek]
|
||||
knowledge_grant:
|
||||
fact_id: "relationship.tamm_family"
|
||||
confidence: suspects
|
||||
|
||||
# ==========================================
|
||||
# GRAFFITI — bathroom wall
|
||||
# Examine to read.
|
||||
# ==========================================
|
||||
|
||||
- id: env_bar_004
|
||||
type: readable_object
|
||||
label: "Graffiti (Bathroom Wall)"
|
||||
visibility: examine_only
|
||||
text: >
|
||||
[scratched into the wall surface over several years]
|
||||
|
||||
Voss doesn't check bay 4. Never has. Never will.
|
||||
|
||||
The Commission sees what it wants to see.
|
||||
|
||||
Lera knows.
|
||||
|
||||
[someone added in different handwriting:]
|
||||
Lera doesn't know anything. She just sells drinks.
|
||||
|
||||
[original hand, below:]
|
||||
Keep telling yourself that.
|
||||
dual_lens:
|
||||
smuggler: "Graffiti's been here since before I started. The Voss line is right, though."
|
||||
detective: >
|
||||
"Lera knows." Someone believes the bar owner has information.
|
||||
Someone else pushes back. The debate is years old.
|
||||
tags: [atmospheric, voss, lera, investigation-adjacent]
|
||||
|
||||
# ==========================================
|
||||
# TONIGHT'S SPECIALS — chalkboard near the kitchen
|
||||
# ==========================================
|
||||
|
||||
- id: env_bar_005
|
||||
type: sign
|
||||
label: "Tonight's Specials"
|
||||
visibility: always
|
||||
text: >
|
||||
TONIGHT:
|
||||
Hot grain porridge (Velen style) — 5c
|
||||
Station fish fry — 7c
|
||||
|
||||
Ask Lera what Velen style means.
|
||||
She'll tell you about it for twenty minutes.
|
||||
dual_lens:
|
||||
smuggler: "Lera's from Velen originally. She makes everyone ask."
|
||||
detective: "Lera Sessik. Originally from Velen surface. Personal detail noted."
|
||||
tags: [atmospheric, lera-backstory]
|
||||
|
||||
# ==========================================
|
||||
# LATTICE-FREE ZONE SIGN — near the entrance
|
||||
# ==========================================
|
||||
|
||||
- id: env_bar_006
|
||||
type: sign
|
||||
label: "Lattice-Free Zone Notice"
|
||||
visibility: always
|
||||
text: >
|
||||
VOLUNTARY LATTICE-FREE ZONE
|
||||
|
||||
By Lera's request: please disable active lattice scanning
|
||||
and recording functions while at the bar.
|
||||
|
||||
Conversation here is conversation. Not data.
|
||||
|
||||
This is not a Commission-recognized designation.
|
||||
Lera doesn't care.
|
||||
dual_lens:
|
||||
smuggler: >
|
||||
Everyone honors this. It's one of the reasons the bar works for
|
||||
what it works for.
|
||||
detective: >
|
||||
Not legally enforceable. But anyone who honors it voluntarily is
|
||||
actively choosing to reduce their surveillance footprint here.
|
||||
Who honors it and who doesn't is worth noting.
|
||||
tags: [investigation-relevant, lera, lattice-free]
|
||||
|
||||
# ==========================================
|
||||
# CARGO WORKERS' ASSOCIATION FLYER — pinned to the bar
|
||||
# ==========================================
|
||||
|
||||
- id: env_bar_007
|
||||
type: document
|
||||
label: "Association Meeting Flyer"
|
||||
visibility: examine_only
|
||||
text: >
|
||||
SOVA TRANSIT CARGO WORKERS' ASSOCIATION
|
||||
Monthly Meeting
|
||||
|
||||
Topic: Shift change protocols — the thirty-minute handoff window
|
||||
and why it isn't long enough.
|
||||
|
||||
Also on agenda: Updated manifest compliance requirements from
|
||||
the Commission (new reporting window: 6 hours, down from 8).
|
||||
|
||||
Back room. Evening shift. All welcome.
|
||||
Bring your concerns, bring a drink.
|
||||
dual_lens:
|
||||
smuggler: >
|
||||
Commission shortened the reporting window to six hours. That's
|
||||
tighter than the eight-hour buffer. Someone noticed the gap.
|
||||
detective: >
|
||||
Agenda item: thirty-minute handoff window. Workers complaining
|
||||
about it publicly means the window is known beyond the ring.
|
||||
Or is being discussed for reasons that are less innocent.
|
||||
tags: [investigation-relevant, shift-transition, commission]
|
||||
knowledge_grant:
|
||||
fact_id: "world.shift_schedule"
|
||||
confidence: knows_of
|
||||
+160
@@ -0,0 +1,160 @@
|
||||
# Environmental Text: The Terminal (Logistics Hub)
|
||||
# Signs, terminals, documents, readable objects.
|
||||
# Both characters can examine these. Interpretation differs.
|
||||
# Ticket: #262 | Sprint: 12
|
||||
|
||||
location: the-terminal
|
||||
items:
|
||||
|
||||
# ==========================================
|
||||
# SHIFT BOARD — posted schedule
|
||||
# Always visible. High-traffic reference point.
|
||||
# ==========================================
|
||||
|
||||
- id: env_terminal_001
|
||||
type: sign
|
||||
label: "Shift Schedule Board"
|
||||
visibility: always
|
||||
text: >
|
||||
SOVA TRANSIT DISTRICT — LOGISTICS HUB
|
||||
CURRENT ROTATION — CYCLE 47
|
||||
|
||||
BAY 1-4: Day Shift 06:00-14:00 (Voss, K. — Supervisor)
|
||||
BAY 5-8: Day Shift 06:00-14:00 (Maret, K. — Scheduler)
|
||||
TRANSITION: 13:45-14:15 (30-min handoff window)
|
||||
Night Shift 22:00-06:00 — ROSTER PENDING
|
||||
[Bay 6: MAINTENANCE HOLD — see Pael Varren]
|
||||
|
||||
# ==========================================
|
||||
# MANIFEST TRACKING TERMINAL — cargo status display
|
||||
# Active terminal. Can be read from appropriate distance in investigation mode.
|
||||
# ==========================================
|
||||
|
||||
- id: env_terminal_002
|
||||
type: terminal
|
||||
label: "Cargo Tracking Terminal"
|
||||
visibility: always
|
||||
text: >
|
||||
ACTIVE MANIFEST QUEUE — SOVA LOGISTICS
|
||||
Last updated: 06:23
|
||||
|
||||
Container 4471 — [PENDING REVIEW] — Bay 4
|
||||
Container 4472 — CLEARED — Bay 2
|
||||
Container 4473 — CLEARED — Bay 2
|
||||
Container 4474 — [WEIGHT DISCREPANCY — 47kg] — Bay 4
|
||||
Container 4475 — CLEARED — Bay 3
|
||||
Container 4476 — PROCESSING — Bay 7
|
||||
[8 additional items — scroll to continue]
|
||||
tags: [manifest-discrepancy]
|
||||
|
||||
# ==========================================
|
||||
# MAINTENANCE REQUEST CLIPBOARD
|
||||
# Physical clipboard near loading arm 3. Examine to read.
|
||||
# ==========================================
|
||||
|
||||
- id: env_terminal_003
|
||||
type: document
|
||||
label: "Maintenance Request Log"
|
||||
visibility: examine_only
|
||||
text: >
|
||||
DEFERRED MAINTENANCE — CURRENT QUEUE
|
||||
(Submitted: Pael Varren, Maintenance)
|
||||
|
||||
Loading arm 3 — Grinding during lift cycle — DEFERRED x4
|
||||
Bay 6 environmental seal — Recurring failure — DEFERRED x3 (HOLD)
|
||||
B-7 corridor air scrubber — Pressure variance — DEFERRED x1
|
||||
Gate calibration bay 5-6 — Off-spec hum — DEFERRED x2
|
||||
Recycling unit C-4 — Thermal spike — DEFERRED x1
|
||||
|
||||
Note: B-7 corridor showing irregular pressure load on sensor.
|
||||
Traffic heavier than logged shift count explains. Investigating.
|
||||
— P. Varren
|
||||
tags: [investigation-relevant, b7-corridor]
|
||||
knowledge_grant:
|
||||
fact_id: "location.corridor_b7_restricted"
|
||||
confidence: suspects
|
||||
|
||||
# ==========================================
|
||||
# COMMISSION COMPLIANCE NOTICE
|
||||
# Standard posting. Required by regulation. Two years old.
|
||||
# ==========================================
|
||||
|
||||
- id: env_terminal_004
|
||||
type: sign
|
||||
label: "Commission Compliance Notice"
|
||||
visibility: always
|
||||
text: >
|
||||
LATTICE COMMISSION — FREIGHT OPERATIONS COMPLIANCE
|
||||
|
||||
All manifest discrepancies exceeding 15kg must be reported
|
||||
within 8 hours of discovery.
|
||||
|
||||
All cargo flagged PENDING REVIEW must be cleared by assigned
|
||||
inspector before shift transition.
|
||||
|
||||
Unauthorized access to restricted maintenance corridors
|
||||
will result in immediate suspension pending review.
|
||||
|
||||
Posted: Lattice Commission, Sova Station Authority
|
||||
Reference: Commission Order 7741-B
|
||||
tags: [atmospheric, institutional]
|
||||
|
||||
# ==========================================
|
||||
# WORK ORDER NOTE — handwritten, coffee-stained
|
||||
# Personal communication between dock workers. Examine to read.
|
||||
# ==========================================
|
||||
|
||||
- id: env_terminal_005
|
||||
type: document
|
||||
label: "Handwritten Note (Coffee-Stained)"
|
||||
visibility: examine_only
|
||||
text: >
|
||||
Kael —
|
||||
|
||||
Bay 4 queue backed up again. Maret says it's a weight issue
|
||||
but she's not flagging it officially. If it's still there when
|
||||
you come in, just route it through 7 like last time. Voss
|
||||
won't check.
|
||||
|
||||
— D.
|
||||
tags: [maret, drin, voss]
|
||||
|
||||
# ==========================================
|
||||
# SAFETY PROCEDURES PLACARD — standard, faded
|
||||
# ==========================================
|
||||
|
||||
- id: env_terminal_006
|
||||
type: sign
|
||||
label: "Emergency Procedures"
|
||||
visibility: always
|
||||
text: >
|
||||
IN CASE OF EMERGENCY:
|
||||
|
||||
1. Activate hull breach alarm (red panel, every 20m)
|
||||
2. Proceed to nearest designated shelter (yellow markers)
|
||||
3. Do not use freight lifts during emergency protocols
|
||||
4. Await station authority clearance before resuming operations
|
||||
|
||||
Last safety review: Month 4, Year 312 (Van Maanen's Star calendar)
|
||||
tags: [atmospheric]
|
||||
|
||||
# ==========================================
|
||||
# BAY STATUS BOARD — current bay availability
|
||||
# ==========================================
|
||||
|
||||
- id: env_terminal_007
|
||||
type: sign
|
||||
label: "Bay Status Board"
|
||||
visibility: always
|
||||
text: >
|
||||
BAY STATUS — CURRENT CYCLE
|
||||
|
||||
BAY 1: ACTIVE
|
||||
BAY 2: ACTIVE
|
||||
BAY 3: ACTIVE
|
||||
BAY 4: ACTIVE — PENDING REVIEW (2 items)
|
||||
BAY 5: ACTIVE
|
||||
BAY 6: MAINTENANCE HOLD — Est. clear: next cycle
|
||||
BAY 7: ACTIVE
|
||||
BAY 8: SCHEDULED DOWNTIME 13:00-15:00
|
||||
tags: [investigation-relevant, operational]
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
# Location: Gate Corridor — Observation Gallery
|
||||
# Source: D-093 gate cluster zone spec
|
||||
# Zone palette: surface #b8bec4 / fog tint #0a1222
|
||||
# z=2 (above gate concourse)
|
||||
|
||||
canonical_id: "van-maanens-star.sova.transit.location.gate-gallery"
|
||||
display_name: "Observation Gallery"
|
||||
description: >
|
||||
Commission-only observation gallery overlooking the gate concourse from
|
||||
z=2. The gallery rail is a transparent low wall — occupants can see
|
||||
down to the concourse below, but upward LOS from z=1 is blocked except
|
||||
at the staircase. Access restricted to Commission personnel.
|
||||
|
||||
tile_bounds:
|
||||
x_min: 0
|
||||
y_min: 0
|
||||
x_max: 31
|
||||
y_max: 9
|
||||
z: 2
|
||||
|
||||
# Legend:
|
||||
# R = Restricted (Commission-only access)
|
||||
# W = Wall (solid)
|
||||
#
|
||||
# Layout (32 wide x 10 tall):
|
||||
# Row 0: North wall with staircase entrance (col 1 = R, access point)
|
||||
# Rows 1-8: Gallery floor (R tiles — restricted access)
|
||||
# Row 9: South wall (gallery rail — transparent low wall, modeled as W;
|
||||
# cross-z LOS is handled server-side)
|
||||
|
||||
tiles:
|
||||
- "WRWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
|
||||
- "WRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW"
|
||||
- "WRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW"
|
||||
- "WRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW"
|
||||
- "WRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW"
|
||||
- "WRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW"
|
||||
- "WRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW"
|
||||
- "WRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW"
|
||||
- "WRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRW"
|
||||
- "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
|
||||
|
||||
sightlines:
|
||||
open: true
|
||||
notes: >
|
||||
Gallery rail is transparent — full downward LOS to gate concourse (z=1).
|
||||
Upward LOS from concourse to gallery is blocked except at staircase.
|
||||
Cross-z LOS behavior handled by server shadowcasting system.
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
# Location: Gate Corridor — Ground Level
|
||||
# Source: D-093 gate cluster zone spec
|
||||
# Zone palette: surface #b8bec4 / fog tint #0a1222
|
||||
|
||||
canonical_id: "van-maanens-star.sova.transit.location.gate-ground"
|
||||
display_name: "Gate Corridor"
|
||||
description: >
|
||||
The gate cluster handles all traffic between Station Sova and the horizon
|
||||
gate network. From north to south: the restricted aperture chamber where
|
||||
span gate transits occur, freight staging and passenger arrival halls,
|
||||
customs lanes (freight and pedestrian), and the wide gate concourse
|
||||
where arrivals disperse into the transit district.
|
||||
|
||||
tile_bounds:
|
||||
x_min: 0
|
||||
y_min: 0
|
||||
x_max: 39
|
||||
y_max: 33
|
||||
z: 1
|
||||
|
||||
# Legend:
|
||||
# F = Floor (walkable) W = Wall (solid, blocks LOS)
|
||||
# R = Restricted (access-tier gated)
|
||||
#
|
||||
# Layout (40 wide x 34 tall):
|
||||
# Row 0: North wall
|
||||
# Rows 1-4: Aperture chamber (centered 8 wide, R tiles — restricted)
|
||||
# Row 5: Wall separator
|
||||
# Rows 6-13: Freight staging (west, 24 tiles) | passenger arrival (east, 13 tiles)
|
||||
# Row 14: Wall with door gaps (cols 12, 32)
|
||||
# Rows 15-24: Freight customs (west, 20 tiles, 3 lanes at 6vt + wall stubs)
|
||||
# | corridor (6 tiles) | ped customs (east, 10 tiles, 3 lanes)
|
||||
# Row 25: Wall with wide opening to concourse (cols 5-34 open)
|
||||
# Rows 26-33: Gate concourse (full 38-tile width, 8 rows — public open space)
|
||||
#
|
||||
# D-093 zone dimensions: freight customs 20x10, ped customs 12x10 (10 rows each)
|
||||
# Corridor width: gate concourse 8vt (D-093)
|
||||
|
||||
tiles:
|
||||
- "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
|
||||
- "WWWWWWWWWWWWWWWWRRRRRRRRWWWWWWWWWWWWWWWW"
|
||||
- "WWWWWWWWWWWWWWWWRRRRRRRRWWWWWWWWWWWWWWWW"
|
||||
- "WWWWWWWWWWWWWWWWRRRRRRRRWWWWWWWWWWWWWWWW"
|
||||
- "WWWWWWWWWWWWWWWWRRRRRRRRWWWWWWWWWWWWWWWW"
|
||||
- "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFFFW"
|
||||
- "WWWWWWWWWWWWFWWWWWWWWWWWWWWWWWWWFWWWWWWW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WFFFFFFWFFFFFFWFFFFFFWFFFFFFWFFWFFFWFFFW"
|
||||
- "WWWWWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWWWWW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
|
||||
sightlines:
|
||||
open: false
|
||||
notes: >
|
||||
Gate concourse (rows 26-33) is wide open with full sightlines.
|
||||
Customs lanes have wall stubs creating partial occlusion between
|
||||
lanes. Freight customs (west, 20 tiles, 3 lanes at 6vt) is wider
|
||||
than pedestrian customs (east, 10 tiles, 3 lanes). Aperture chamber
|
||||
is fully walled and restricted. Cross-z LOS from the observation
|
||||
gallery (z=2) into the concourse is handled server-side.
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
# Location: Maintenance Corridors (smuggling spaces)
|
||||
# Source: D-093, #313 (Sprint 12 spatial layout)
|
||||
# Zone palette: surface #4e5054 / fog tint #101214
|
||||
# z=0 (Era 1, below main structures)
|
||||
|
||||
canonical_id: "van-maanens-star.sova.transit.location.maintenance-corridors"
|
||||
display_name: "Maintenance Corridors"
|
||||
description: >
|
||||
Era 1 maintenance infrastructure beneath the transit district. A long
|
||||
transition corridor connects the logistics hub to the bar district.
|
||||
Restricted storage at the west end is shared with The Terminal above.
|
||||
A maintenance hatch at the east end provides the cross-z connection
|
||||
to the main level. Everything reads as mundane maintenance — the ring
|
||||
operates here because nobody looks twice.
|
||||
|
||||
tile_bounds:
|
||||
x_min: 0
|
||||
y_min: 0
|
||||
x_max: 57
|
||||
y_max: 5
|
||||
z: 0
|
||||
|
||||
# Legend:
|
||||
# F = Floor (walkable) W = Wall (solid, blocks LOS)
|
||||
# R = Restricted (access-tier gated)
|
||||
#
|
||||
# Layout (58 wide x 6 tall):
|
||||
# Row 0: North wall
|
||||
# Row 1: Restricted storage (west, 8 tiles) | wall | corridor (40 tiles) | wall | hatch room (east, 6)
|
||||
# Row 2: Doors connect rooms (F in wall positions at cols 9 and 50)
|
||||
# Row 3-4: Same as row 1 (walls between rooms)
|
||||
# Row 5: South wall
|
||||
#
|
||||
# Corridor width: 2vt visible at rows 1-4 (internal height, maintenance standard)
|
||||
# Transition corridor: 40 tiles (~40m at 1m/vt) between storage and hatch per D-093
|
||||
# Restricted storage: R tiles for access restriction
|
||||
# Maintenance hatch: F tiles (cross-z connection is future movement feature)
|
||||
# Design: mundane maintenance appearance per D-093 G-08
|
||||
|
||||
tiles:
|
||||
- "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
|
||||
- "WRRRRRRRRWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFW"
|
||||
- "WRRRRRRRRFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WRRRRRRRRWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFW"
|
||||
- "WRRRRRRRRWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFW"
|
||||
- "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
|
||||
|
||||
sightlines:
|
||||
open: false
|
||||
notes: >
|
||||
Long straight corridor (40 tiles) with limited concealment. Storage and
|
||||
hatch rooms are separated by walls with single-tile doors at row 2.
|
||||
Mundane appearance per D-093 G-08 — no visually suspicious tile
|
||||
arrangements.
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
# Location: The Last Shift (bar)
|
||||
# Source: D-093, #312 (Sprint 12 spatial layout)
|
||||
# Zone palette: surface #6b4018 / fog tint #200c04
|
||||
|
||||
canonical_id: "van-maanens-star.sova.transit.location.the-last-shift"
|
||||
display_name: "The Last Shift"
|
||||
description: >
|
||||
A converted maintenance bay turned bar. The long counter runs along the
|
||||
west wall with full sightlines across the room. A corner booth in the
|
||||
northeast sees the bar, card table, entrance, and back room — prime
|
||||
observation real estate. Scattered tables fill the main floor. A back
|
||||
room with an alley exit provides the key traversal route for the ring.
|
||||
|
||||
tile_bounds:
|
||||
x_min: 0
|
||||
y_min: 0
|
||||
x_max: 33
|
||||
y_max: 21
|
||||
z: 1
|
||||
|
||||
# Legend:
|
||||
# F = Floor (walkable) W = Wall (solid, blocks LOS)
|
||||
#
|
||||
# Layout (34 wide x 22 tall):
|
||||
# Row 0: North exterior wall
|
||||
# Rows 1-4: Main floor + corner booth (NE, cols 26-31, walled alcove)
|
||||
# Row 5: Bar counter starts (cols 1-2 = W fixture)
|
||||
# Rows 6-10: Bar counter (cols 1-2 W), tables (W stubs), card table (col 25)
|
||||
# Row 11: Open transition floor
|
||||
# Rows 12-14: Table clusters (W stubs at cols 8, 16, 24)
|
||||
# Row 15: News ticker mount (col 31 = W stub)
|
||||
# Row 16: Open floor
|
||||
# Row 17: Back room north wall with door (col 22 = F)
|
||||
# Rows 18-20: Main floor (west) + back room (east, cols 22-32)
|
||||
# Row 21: South wall with alley exit gap (cols 29-32 = F)
|
||||
|
||||
tiles:
|
||||
- "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFWFFFFFFW"
|
||||
- "WWWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WWWFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFW"
|
||||
- "WWWFFFFFFFWFFFFFFFWFFFFFFWFFFFFFFW"
|
||||
- "WWWFFFFFFFWFFFFFFFWFFFFFFFFFFFFFFW"
|
||||
- "WWWFFFFFFFFFFFWFFFFFFFFFFFFFFFFFFW"
|
||||
- "WWWFFFFFFFFFFFWFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFWFFFFFFFWFFFFFFFWFFFFFFFFW"
|
||||
- "WFFFFFFFWFFFFFFFWFFFFFFFWFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFWFWFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFW"
|
||||
- "WFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFFFW"
|
||||
- "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWFFFFW"
|
||||
|
||||
sightlines:
|
||||
open: false
|
||||
notes: >
|
||||
Corner booth (NE alcove, rows 1-4) has LOS to bar counter, card table
|
||||
area, main entrance, and back room door. Bar counter along west wall
|
||||
(cols 1-2, rows 5-10) gives staff full sightlines across the main
|
||||
floor. Back room is partially occluded by wall at col 21. Back room
|
||||
door at col 22. Table W-stubs create partial cover but do not fully
|
||||
block sightlines.
|
||||
|
||||
social_site: "bar"
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
# Location: The Terminal (logistics hub)
|
||||
# Source: D-093, #311 (Sprint 12 spatial layout)
|
||||
# Zone palette: surface #7a8490 / fog tint #0d1520
|
||||
|
||||
canonical_id: "van-maanens-star.sova.transit.location.the-terminal"
|
||||
display_name: "The Terminal"
|
||||
description: >
|
||||
Sova's freight logistics hub. Scanner bays filter incoming cargo at the
|
||||
south entrance; a wide main corridor runs north through the manifest
|
||||
processing floor. The break room sits in the northeast. The supervisor's
|
||||
office overlooks the corridor through a large interior window. Restricted
|
||||
storage in the northwest corner is where the ring hides re-tagged cargo.
|
||||
|
||||
tile_bounds:
|
||||
x_min: 0
|
||||
y_min: 0
|
||||
x_max: 43
|
||||
y_max: 27
|
||||
z: 1
|
||||
|
||||
# Legend:
|
||||
# F = Floor (walkable) W = Wall (solid, blocks LOS)
|
||||
# V = Void (outside building) R = Restricted (access-tier gated)
|
||||
#
|
||||
# Layout (44 wide x 28 tall):
|
||||
# Rows 0: North exterior wall
|
||||
# Rows 1-4: Restricted storage (NW, 11 tiles) + corridor + supervisor office (NE, 9 tiles)
|
||||
# Row 5: Storage south wall; corridor + office continue
|
||||
# Rows 6-8: Open corridor; supervisor office east side
|
||||
# Row 7: ** Supervisor window — col 28 is F (LOS gap into office) **
|
||||
# Row 9: Supervisor office south wall
|
||||
# Rows 10-11: Main corridor (full width chokepoint — high sightline value)
|
||||
# Rows 12-17: Manifest processing (west, 14 tiles) + break room (east, 13 tiles)
|
||||
# Row 18: Break room south wall; manifest open to corridor
|
||||
# Rows 19-21: South corridor
|
||||
# Row 22: Scanner bay north walls with entry gaps
|
||||
# Rows 23-26: Scanner bay interiors (3 bays)
|
||||
# Row 27: South exterior wall
|
||||
|
||||
tiles:
|
||||
- "VVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWVVVVV"
|
||||
- "VVVVVWRRRRRRRRRRRWFFFFFFFFFFWFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWRRRRRRRRRRRWFFFFFFFFFFWFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWRRRRRRRRRRRWFFFFFFFFFFWFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWRRRRRRRRRRRWFFFFFFFFFFWFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWWWWWWWWWWWWWFFFFFFFFFFWFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFWFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFWWWWWWWWWWWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFWFFFWFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFWFFFWFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFWFFFWFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFWFFFWFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFWFFFWFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFWFFFWFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFWWWWWWWWWWWWWWWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWWWWFFFFFFWWWWFFFFFFFFWWWWFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFWFFFFFFFFFFFWFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFWFFFFFFFFFFFWFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFWFFFFFFFFFFFWFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWFFFFFFFFFWFFFFFFFFFFFWFFFFFFFFFFWVVVVV"
|
||||
- "VVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWVVVVV"
|
||||
|
||||
sightlines:
|
||||
open: false
|
||||
notes: >
|
||||
Supervisor office window faces main corridor at row 7, col 28 (F gap in
|
||||
wall line). Player standing in the corridor has direct LOS into the
|
||||
office interior. This is the primary investigative discovery moment.
|
||||
|
||||
social_site: "logistics-hub"
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
# NPC daily routine schedules — Sova Transit District
|
||||
# All NPC schedules in one file for cross-NPC scheduling validation
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
# Social site template: The Last Shift (bar)
|
||||
# D-025: functional cluster as atomic template unit
|
||||
# 4 role slots, 4+ NPCs in v0.1 (regulars are reference links). 4-8 NPC capacity.
|
||||
|
||||
template_id: bar
|
||||
display_name: "The Last Shift"
|
||||
description: >
|
||||
Mid-grade bar in Sova Transit District. Converted maintenance staging area.
|
||||
Irregular layout, long bar, corner booth. Where working people go after shift.
|
||||
Informally known as "Lera's." The social nexus where investigation and
|
||||
mundane life overlap.
|
||||
location: the-last-shift
|
||||
|
||||
capacity:
|
||||
min: 4
|
||||
max: 8
|
||||
|
||||
role_slots:
|
||||
- role: bar-owner
|
||||
display_name: "Bar Owner"
|
||||
count: 1
|
||||
required: true
|
||||
description: >
|
||||
Owns and operates the bar. Observant, careful, knows everyone's business.
|
||||
ANCHOR pattern — the stabilizing social presence. Hears everything,
|
||||
says little. Access tier: insider for regulars.
|
||||
pool_ref: null
|
||||
flags:
|
||||
- social_anchor
|
||||
- information_hub
|
||||
- bar_permanent
|
||||
|
||||
- role: bartender
|
||||
display_name: "Bartender"
|
||||
count: 1
|
||||
required: true
|
||||
description: >
|
||||
Serves drinks, manages the floor. Different from the owner — the
|
||||
bartender is staff, not the proprietor. Younger, less established.
|
||||
pool_ref: null
|
||||
flags:
|
||||
- bar_permanent
|
||||
|
||||
- role: bar-regular
|
||||
display_name: "Bar Regular"
|
||||
count:
|
||||
min: 2
|
||||
max: 5
|
||||
required: true
|
||||
description: >
|
||||
Off-duty workers and social visitors. Regulars are typically owned by
|
||||
other templates (logistics hub, Commission) with reference links here.
|
||||
Their presence during bar_evening creates the social observation space.
|
||||
pool_ref: "transit:bar_regulars"
|
||||
flags:
|
||||
- evening_presence
|
||||
- cross_template
|
||||
|
||||
# v0.1 NPC assignments
|
||||
v01_assignments:
|
||||
bar-owner: "npc:lera-sessik"
|
||||
bartender: "npc:pell"
|
||||
bar-regular-1: "npc:sera-venn" # Reference: Commission field tech, evening regular
|
||||
bar-regular-2: "npc:resha" # Owned by bar template
|
||||
# Additional regulars via reference links:
|
||||
# npc:kael-davan (from logistics-hub, evening presence)
|
||||
# npc:torek-lintar (from Commission, evening presence)
|
||||
# npc:drin (from logistics-hub, occasional)
|
||||
|
||||
# Reference links — NPCs owned by other templates who visit the bar
|
||||
reference_links:
|
||||
- npc: "npc:sera-venn"
|
||||
owning_template: null # Sera is Commission, not bar staff
|
||||
relationship: "social anchor — evening regular"
|
||||
presence_phases: [evening]
|
||||
- npc: "npc:kael-davan"
|
||||
owning_template: logistics-hub
|
||||
relationship: "after-shift regular"
|
||||
presence_phases: [evening]
|
||||
- npc: "npc:torek-lintar"
|
||||
owning_template: null # Commission inspector
|
||||
relationship: "off-duty regular, gambling participant"
|
||||
presence_phases: [evening]
|
||||
- npc: "npc:drin"
|
||||
owning_template: logistics-hub
|
||||
relationship: "occasional visitor"
|
||||
presence_phases: [evening]
|
||||
|
||||
triangle_constraints:
|
||||
- triangle: bar-tensions
|
||||
required_roles:
|
||||
- bar-owner # Lera: owner mediating
|
||||
- bar-regular # Resha: regular with grievance
|
||||
- bartender # Pell: caught in the middle
|
||||
- triangle: worried-knowledge
|
||||
required_roles:
|
||||
- bar-regular # Sera: avoiding Torek at the bar
|
||||
|
||||
dialogue_pools:
|
||||
- location: the-last-shift
|
||||
roles: [bar-owner, bartender, bar-regular]
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
# Social site template: The Terminal (logistics hub)
|
||||
# D-025: functional cluster as atomic template unit
|
||||
# 5 role slots, 6 NPCs in v0.1. 4-8 NPC capacity.
|
||||
|
||||
template_id: logistics-hub
|
||||
display_name: "The Terminal"
|
||||
description: >
|
||||
Freight logistics hub — the beating heart of Sova Transit District. Cargo
|
||||
processing, manifest management, shift rotations. The smuggler's workplace
|
||||
and the ring's operational cover.
|
||||
location: the-terminal
|
||||
|
||||
# Capacity range per D-025: 4-8 NPCs in connected space with internal sightlines
|
||||
capacity:
|
||||
min: 4
|
||||
max: 8
|
||||
|
||||
role_slots:
|
||||
- role: shift-supervisor
|
||||
display_name: "Shift Supervisor"
|
||||
count: 1
|
||||
required: true
|
||||
description: >
|
||||
Authority figure. Oversees dock operations, manages shift schedules,
|
||||
enforces procedures. Access tier: authority within the hub.
|
||||
pool_ref: null # Fixed assignment in v0.1
|
||||
flags:
|
||||
- authority_figure
|
||||
- hub_permanent
|
||||
|
||||
- role: dock-worker
|
||||
display_name: "Dock Worker"
|
||||
count:
|
||||
min: 2
|
||||
max: 4
|
||||
required: true
|
||||
description: >
|
||||
Core workforce. Processes cargo, handles manifests, operates equipment.
|
||||
One dock-worker slot is reserved for the smuggler's FRIEND (pool draw).
|
||||
pool_ref: "transit:friend_smuggler" # One slot drawn from FRIEND pool
|
||||
flags:
|
||||
- hub_permanent
|
||||
- ring_candidate
|
||||
|
||||
- role: new-hire
|
||||
display_name: "New Hire"
|
||||
count: 1
|
||||
required: false
|
||||
description: >
|
||||
Recent arrival to the logistics hub. Asks questions, doesn't know the
|
||||
social norms yet, provides a fresh perspective. CATALYST pattern.
|
||||
pool_ref: null
|
||||
flags:
|
||||
- catalyst
|
||||
- newcomer
|
||||
|
||||
- role: scheduler
|
||||
display_name: "Freight Scheduler"
|
||||
count: 1
|
||||
required: true
|
||||
description: >
|
||||
Manages freight scheduling and manifest coordination. Has access to
|
||||
cargo records — a key information source for both smuggler and detective.
|
||||
pool_ref: null
|
||||
flags:
|
||||
- hub_permanent
|
||||
- information_access
|
||||
|
||||
- role: courier
|
||||
display_name: "Courier"
|
||||
count: 1
|
||||
required: false
|
||||
description: >
|
||||
Moves between locations. Off-duty security or delivery runner.
|
||||
Bridge NPC who connects the hub to other social sites.
|
||||
pool_ref: null
|
||||
flags:
|
||||
- bridge_npc
|
||||
|
||||
# v0.1 NPC assignments (matches seed config design doc section 4.4)
|
||||
v01_assignments:
|
||||
shift-supervisor: "npc:voss"
|
||||
dock-worker-1: "npc:kael-davan"
|
||||
dock-worker-2: "npc:drin"
|
||||
new-hire: "npc:renn"
|
||||
scheduler: "npc:maret-korr"
|
||||
courier: "npc:harek"
|
||||
|
||||
# Triangles that involve members of this template
|
||||
triangle_constraints:
|
||||
- triangle: hub-power
|
||||
required_roles:
|
||||
- shift-supervisor # Voss: authority
|
||||
- dock-worker # Kael: subordinate
|
||||
- scheduler # Maret: caught-between
|
||||
- triangle: worried-partner
|
||||
required_roles:
|
||||
- dock-worker # Kael: partner under ring pressure
|
||||
- triangle: informant-question
|
||||
required_roles:
|
||||
- dock-worker # Drin: notices Torek's inspection irregularities
|
||||
|
||||
# Dialogue pool locations (maps to dialogue/ subdirectory)
|
||||
dialogue_pools:
|
||||
- location: the-terminal
|
||||
roles: [shift-supervisor, dock-worker, new-hire, scheduler, courier]
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
# Social site template: Smuggling Ring (maintenance corridors)
|
||||
# D-025: functional cluster as atomic template unit
|
||||
# Smallest template: 2-4 NPCs. Operates in infrastructure gaps.
|
||||
|
||||
template_id: smuggling-ring
|
||||
display_name: "The Ring"
|
||||
description: >
|
||||
Smuggling operation using repurposed maintenance infrastructure. Not a
|
||||
dedicated room — a corridor between hub sections where old and new
|
||||
construction don't quite meet. Access through service hatches. The ring
|
||||
didn't build this space; they found it. Operates during night shift and
|
||||
shift transitions when oversight is thinnest.
|
||||
location: maintenance-corridors
|
||||
|
||||
capacity:
|
||||
min: 2
|
||||
max: 4
|
||||
|
||||
role_slots:
|
||||
- role: ring-operative
|
||||
display_name: "Ring Coordinator"
|
||||
count: 1
|
||||
required: true
|
||||
description: >
|
||||
Coordinates ring operations. HANDLER motivation — manages logistics,
|
||||
maintains contacts, makes decisions. Capable, not theatrical.
|
||||
pool_ref: null
|
||||
flags:
|
||||
- ring_leader
|
||||
- night_presence
|
||||
- restricted_access
|
||||
|
||||
- role: ring-contact
|
||||
display_name: "Ring Contact"
|
||||
count:
|
||||
min: 1
|
||||
max: 2
|
||||
required: true
|
||||
description: >
|
||||
Active ring member with dual role — legitimate job at the logistics hub
|
||||
by day, ring operations by night. Reference link from logistics-hub
|
||||
template. Their presence here is the core secret the smuggler protects
|
||||
and the detective investigates.
|
||||
pool_ref: "transit:friend_smuggler" # The FRIEND is the primary ring contact
|
||||
flags:
|
||||
- dual_role
|
||||
- night_presence
|
||||
- ring_member
|
||||
|
||||
- role: external-contact
|
||||
display_name: "External Contact"
|
||||
count: 1
|
||||
required: false
|
||||
description: >
|
||||
Off-station connection. Arrives with shipments, departs quickly.
|
||||
Not a permanent presence — appears during ring operation windows.
|
||||
pool_ref: null
|
||||
flags:
|
||||
- transient
|
||||
- external
|
||||
|
||||
# v0.1 NPC assignments
|
||||
v01_assignments:
|
||||
ring-operative: "npc:devra"
|
||||
ring-contact: "npc:kael-davan" # Reference from logistics-hub (dual role)
|
||||
external-contact: "npc:sabel" # Off-system contact
|
||||
|
||||
reference_links:
|
||||
- npc: "npc:kael-davan"
|
||||
owning_template: logistics-hub
|
||||
relationship: "ring member — dual role, night operations"
|
||||
presence_phases: [night]
|
||||
- npc: "npc:sabel"
|
||||
owning_template: null # External, transient
|
||||
relationship: "off-station buyer/receiver"
|
||||
presence_phases: [night] # Irregular, tied to shipments
|
||||
|
||||
triangle_constraints:
|
||||
- triangle: worried-partner
|
||||
required_roles:
|
||||
- ring-contact # Kael: under pressure from ring work
|
||||
- triangle: hub-power
|
||||
required_roles:
|
||||
- ring-contact # Kael: subordinate to Voss by day, ring by night
|
||||
|
||||
dialogue_pools:
|
||||
- location: maintenance-corridors
|
||||
roles: [ring-operative]
|
||||
+242
@@ -0,0 +1,242 @@
|
||||
# News ticker headline pool — The Last Shift bar
|
||||
# Meridian Feed (Van Maanen's Star local news network)
|
||||
# 30 lines total | Categories: freight (9), politics (4), infrastructure (5), sports (3),
|
||||
# commission (5), community (4) — see dual_lens notes on each line
|
||||
# Dual-lens content: each headline reads differently to smuggler vs detective.
|
||||
# Ticket: #306 | Sprint: 12 | Owner: Mellanie + Miri
|
||||
# v0.1: static background text. v0.2: cycling ticker system.
|
||||
|
||||
location: the-last-shift
|
||||
feed: meridian
|
||||
headlines:
|
||||
# --- Freight / Commodity (6) ---
|
||||
|
||||
- id: ticker_001
|
||||
text: "VAN MAANEN FREIGHT INDEX: Lattice components +12% on Syndic supply restrictions"
|
||||
category: freight
|
||||
dual_lens:
|
||||
smuggler: "Prices up. Every run is worth more — and every run is riskier."
|
||||
detective: "Supply restrictions mean increased black market pressure. Watch for volume spikes."
|
||||
|
||||
- id: ticker_002
|
||||
text: "SOVA DOCKING: Revised rates effective cycle 14 — bulk freight +0.8 cred/tonne"
|
||||
category: freight
|
||||
dual_lens:
|
||||
smuggler: "Costs going up. Nils won't be happy. Margins are already thin."
|
||||
detective: "Administrative noise. But fee changes affect which routes are economically viable."
|
||||
|
||||
- id: ticker_003
|
||||
text: "ROUTE ADVISORY: Span gate maintenance on Van Maanen's Star-Havara corridor — 48hr delays"
|
||||
category: freight
|
||||
dual_lens:
|
||||
smuggler: "Havara corridor's down. If Sabel's shipments are routed through there, we wait."
|
||||
detective: "Transit disruption changes shipping patterns. New routes create new anomalies."
|
||||
|
||||
- id: ticker_004
|
||||
text: "COMMODITY ALERT: Medical-grade neural components — backorder extends to 6 cycles"
|
||||
category: freight
|
||||
dual_lens:
|
||||
smuggler: "Six cycles. People need those replacements now. That's why we do this."
|
||||
detective: "Extended shortage increases incentive for diversion. Motive for the operation."
|
||||
|
||||
- id: ticker_005
|
||||
text: "FREIGHT QUARTERLY: Sova throughput up 3% year-on-year — transit district credited"
|
||||
category: freight
|
||||
dual_lens:
|
||||
smuggler: "More volume, more cover. Good news for us."
|
||||
detective: "Increased throughput makes statistical anomalies harder to spot. More noise."
|
||||
|
||||
- id: ticker_006
|
||||
text: "INSURANCE: Premium review for manifest discrepancy incidents — sector-wide audit"
|
||||
category: freight
|
||||
dual_lens:
|
||||
smuggler: "Manifest discrepancies. If the insurers are looking, the Commission's next."
|
||||
detective: "Insurance sector flagging the same pattern I'm seeing. Independent confirmation."
|
||||
|
||||
# --- Assembly Politics (4) ---
|
||||
|
||||
- id: ticker_007
|
||||
text: "ASSEMBLY: Lattice regulation amendments tabled — vote deferred to next session"
|
||||
category: politics
|
||||
dual_lens:
|
||||
smuggler: "Deferred. Status quo holds. The demand stays, the supply stays illegal."
|
||||
detective: "Regulatory gap continues. No political will to address the root cause."
|
||||
|
||||
- id: ticker_008
|
||||
text: "ASSEMBLY VOTE: Infrastructure bill passes 312-287 — Reach districts gain allocations"
|
||||
category: politics
|
||||
dual_lens:
|
||||
smuggler: "More money for the Reach. Maybe Sova gets a refit. Maybe things change."
|
||||
detective: "Allocation shifts. New infrastructure means new oversight — or new blind spots."
|
||||
|
||||
- id: ticker_009
|
||||
text: "DELEGATE PROFILE: Rep. Hask (Van Maanen's Star) calls for Commission oversight review"
|
||||
category: politics
|
||||
dual_lens:
|
||||
smuggler: "Commission oversight review. Could mean more patrols. Could mean fewer. Either way, noise."
|
||||
detective: "Political pressure on Commission operations. Budget review affects field resources."
|
||||
|
||||
- id: ticker_010
|
||||
text: "POLICY WATCH: Cross-system freight harmonization bill enters second reading"
|
||||
category: politics
|
||||
dual_lens:
|
||||
smuggler: "Harmonization means standardization. Standardization means fewer gaps in the paperwork."
|
||||
detective: "Cross-system data sharing would connect manifest anomalies across jurisdictions."
|
||||
|
||||
# --- Local Infrastructure (4) ---
|
||||
|
||||
- id: ticker_011
|
||||
text: "SOVA STATION: Deck 4 ventilation overhaul — expect cycled air disruptions"
|
||||
category: infrastructure
|
||||
dual_lens:
|
||||
smuggler: "Construction crews on Deck 4. More people in the corridors. Watch the routes."
|
||||
detective: "Infrastructure work. Construction means altered access patterns."
|
||||
|
||||
- id: ticker_012
|
||||
text: "TRANSIT: Corridor B maintenance scheduled cycle 16-18 — alternate routing posted"
|
||||
category: infrastructure
|
||||
dual_lens:
|
||||
smuggler: "Corridor B. That's our route. Maintenance means official access. We shut down for three cycles."
|
||||
detective: "Scheduled maintenance on a corridor near the freight bays. Who requested it?"
|
||||
|
||||
- id: ticker_013
|
||||
text: "WATER RECYCLING: Stage 2 filter replacement ahead of schedule — capacity at 97%"
|
||||
category: infrastructure
|
||||
dual_lens:
|
||||
smuggler: "Good. One less thing to worry about."
|
||||
detective: "Infrastructure baseline. Station systems functioning normally."
|
||||
|
||||
- id: ticker_014
|
||||
text: "POWER GRID: Outer ring voltage fluctuations traced to span gate resonance"
|
||||
category: infrastructure
|
||||
dual_lens:
|
||||
smuggler: "Voltage fluctuations in the outer ring. Cameras might glitch. Useful."
|
||||
detective: "Power issues could affect surveillance systems. Note the timing."
|
||||
|
||||
# --- Sports (3) ---
|
||||
|
||||
- id: ticker_015
|
||||
text: "GRAV-BALL: Sova Drifters fall to Havara United 3-1 — playoff hopes dim"
|
||||
category: sports
|
||||
dual_lens:
|
||||
smuggler: "Drifters lost again. Lera's going to be in a mood."
|
||||
detective: "Sports. The universal social lubricant. File under 'conversation openers.'"
|
||||
|
||||
- id: ticker_016
|
||||
text: "LEAGUE TABLE: Van Maanen's Star Conference — Sova 4th, Mirren Station leads"
|
||||
category: sports
|
||||
dual_lens:
|
||||
smuggler: "Fourth. We were second last season. This place is sliding."
|
||||
detective: "Local standings. Note who cares about the Drifters — it's a belonging marker."
|
||||
|
||||
- id: ticker_017
|
||||
text: "HIGHLIGHT: Drifters' Pael Tev named to All-Reach reserve squad"
|
||||
category: sports
|
||||
dual_lens:
|
||||
smuggler: "Tev made the reserves. Good for him. At least someone's getting out."
|
||||
detective: "The name Tev — any relation to dock personnel? Check roster."
|
||||
|
||||
# --- Commission Advisories (3) ---
|
||||
|
||||
- id: ticker_018
|
||||
text: "COMMISSION: Manifest compliance audits scheduled — Sova Transit, cycles 15-20"
|
||||
category: commission
|
||||
dual_lens:
|
||||
smuggler: "Compliance audits. Cycle 15. That's five cycles from now. We need to be clean by then."
|
||||
detective: "Scheduled audits. Standard, but the timing aligns with my investigation window."
|
||||
|
||||
- id: ticker_019
|
||||
text: "ADVISORY: Unlicensed lattice modifications carry Category 3 penalties — report anonymously"
|
||||
category: commission
|
||||
dual_lens:
|
||||
smuggler: "Category 3. Years in detention. Same poster, same message, same empty threat. Until it isn't."
|
||||
detective: "Public messaging campaign. Commission HQ wants visible enforcement. Pressure from above."
|
||||
|
||||
- id: ticker_020
|
||||
text: "ENFORCEMENT: Commission confirms 'routine assessment' of Reach freight operations"
|
||||
category: commission
|
||||
dual_lens:
|
||||
smuggler: "'Routine assessment.' Is that the detective? Is that why he's here?"
|
||||
detective: "That's my cover story. Or headquarters' way of telling me the clock is running."
|
||||
|
||||
# --- Local Community (4) — added Sprint 12, Mellanie ---
|
||||
|
||||
- id: ticker_021
|
||||
text: "SECTOR 3: Sova Station Admin acknowledges ventilation review — timeline 'under discussion'"
|
||||
category: infrastructure
|
||||
dual_lens:
|
||||
smuggler: "Under discussion. Same thing they said last cycle. Seven years of under discussion."
|
||||
detective: "Deferred maintenance, seven-year backlog, workers frustrated. That's a community with grievances. File that."
|
||||
|
||||
- id: ticker_022
|
||||
text: "WORKERS: Cargo Workers' Association calls for review of thirty-minute shift handoff protocols"
|
||||
category: community
|
||||
dual_lens:
|
||||
smuggler: "Workers pushing back on the transition window. If they shorten it, we lose our gap."
|
||||
detective: "Workers know the window is too short. And they're right. The question is who else knows it."
|
||||
|
||||
- id: ticker_023
|
||||
text: "SOVA LOCAL: Missing persons — Vessels Tamm, Sova Transit District, Month 11. Contact Sova liaison."
|
||||
category: community
|
||||
dual_lens:
|
||||
smuggler: "Vessels Tamm. That name — any connection to Naia's family? Don't chase ghosts."
|
||||
detective: "Tamm. Naia Tamm is the name in the case file as Kael Davan's partner. Related? Flag."
|
||||
notes: >
|
||||
Connects to notice board in the-last-shift environmental text (env_bar_003).
|
||||
Detective's reaction sets up the Naia-Tamm connection thread.
|
||||
|
||||
- id: ticker_024
|
||||
text: "HEALTH: Re-embodiment wait times at Sova Clinic — non-emergency cases: 4-6 cycles. Main station for urgent."
|
||||
category: community
|
||||
dual_lens:
|
||||
smuggler: "Four cycles. If something goes wrong on a run, four cycles at the clinic before you're back. Remember that."
|
||||
detective: "Healthcare routing. Non-urgent cases handled locally, urgent cases moved off-station. Operational detail."
|
||||
|
||||
# --- Lattice Economy (3) — added Sprint 12, Mellanie ---
|
||||
|
||||
- id: ticker_025
|
||||
text: "LATTICE: Commission-approved upgrade costs rise — standard lattice enhancement up 18% this cycle"
|
||||
category: freight
|
||||
dual_lens:
|
||||
smuggler: "Eighteen percent. That's why the waiting list for off-book components keeps growing. We're providing a service."
|
||||
detective: "Price pressure on approved upgrades. Economic driver for the unlicensed market. Motive confirmed."
|
||||
|
||||
- id: ticker_026
|
||||
text: "LATTICE COMMISSION: Public access modification registry now mandatory — self-report deadline cycle 20"
|
||||
category: commission
|
||||
dual_lens:
|
||||
smuggler: "Self-report. Right. The people who bought off-book components are definitely filing that form."
|
||||
detective: "Mandatory registry. Anyone who doesn't file either doesn't have mods or is hiding them. Narrow that list."
|
||||
|
||||
- id: ticker_027
|
||||
text: "HEALTHCARE: Medical-grade lattice component recall — batch 44xx — contact nearest clinic for assessment"
|
||||
category: community
|
||||
dual_lens:
|
||||
smuggler: "Batch 44xx. Kael's last shipment was 4471 series components. Are they in that range? Check."
|
||||
detective: "Batch 44xx recall. Container 4471 in the manifest anomaly. Cross-reference. This could be the thread."
|
||||
notes: >
|
||||
High-value dual-lens trigger. Smuggler worries about operational risk; detective spots the
|
||||
evidence connection. The 44xx range is intentionally ambiguous — might match, might not.
|
||||
|
||||
# --- Van Maanen's Star / Setting (2) — added Sprint 12, Mellanie ---
|
||||
|
||||
- id: ticker_028
|
||||
text: "VELEN WEATHER: Coastal fog advisories in effect — Sova orbital approach window reduced, gate scheduling adjusted"
|
||||
category: infrastructure
|
||||
dual_lens:
|
||||
smuggler: "Fog on Velen. Gate scheduling adjusted — means transit timing shifts. The window might move."
|
||||
detective: "Environmental factors affecting gate operations. Adjust surveillance timing accordingly."
|
||||
|
||||
- id: ticker_029
|
||||
text: "REACH ECONOMY: Van Maanen's Star trade volume up 7% — analysts attribute to 'informal market activity'"
|
||||
category: freight
|
||||
dual_lens:
|
||||
smuggler: "Informal market activity. They know. The whole Reach knows. And still the demand keeps climbing."
|
||||
detective: "'Informal market.' The analysts see the pattern but can't name it. I can."
|
||||
|
||||
- id: ticker_030
|
||||
text: "ASSEMBLY: Severance technology moratorium extended — counter-surveillance devices remain Category 2 restricted"
|
||||
category: politics
|
||||
dual_lens:
|
||||
smuggler: "Moratorium extended. Good. Severance equipment costs keep the Commission from blanketing everything."
|
||||
detective: "Counter-surveillance devices still legally restricted. Anyone running them is committing a documented infraction."
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
# Triangle 3: Bar Tensions — mundane social friction at The Last Shift
|
||||
# Passive — runs on background simulation, no storyteller intervention
|
||||
canonical_id: bar-tensions
|
||||
display_name: "Bar Tensions"
|
||||
description: >
|
||||
Mundane social friction at The Last Shift. Lera Sessik (bar owner) runs
|
||||
a tight establishment. Resha (regular) has a grievance — could be about
|
||||
the bar, another regular, or community politics. Pell (bartender) is
|
||||
caught in the middle, trying to keep both the boss and the customers
|
||||
happy. This is the 50% of life that has nothing to do with conspiracy —
|
||||
the noise floor that makes investigation signal meaningful.
|
||||
|
||||
members:
|
||||
- npc: "npc:lera-sessik"
|
||||
role: "owner — mediates disputes, protects her establishment"
|
||||
- npc: "npc:resha"
|
||||
role: "regular — has a grievance, vocal about it"
|
||||
- npc: "npc:pell"
|
||||
role: "bartender — caught between boss and customers"
|
||||
|
||||
forks:
|
||||
- id: grievance-escalation
|
||||
condition: >
|
||||
Resha's grievance reaches a tipping point. Lera must decide whether
|
||||
to take sides or maintain neutrality. Pell gets drawn in.
|
||||
outcomes:
|
||||
- id: lera-sides-with-resha
|
||||
description: >
|
||||
Lera validates Resha's complaint. Pell adjusts service accordingly.
|
||||
Social dynamics shift — Resha becomes more central, the bar's
|
||||
atmosphere changes slightly.
|
||||
effects:
|
||||
- "resha.behavior_flags += vindicated"
|
||||
- "pell.behavior_flags += accommodating"
|
||||
- "bar atmosphere = tense but resolving"
|
||||
- id: lera-shuts-it-down
|
||||
description: >
|
||||
Lera tells Resha to drop it. Her bar, her rules. Resha sulks.
|
||||
Pell is relieved. The grievance goes underground.
|
||||
effects:
|
||||
- "resha.behavior_flags += resentful,quiet"
|
||||
- "pell.behavior_flags += relieved"
|
||||
- "bar atmosphere = business as usual"
|
||||
|
||||
resolution_states:
|
||||
- id: grievance-resolved
|
||||
description: The dispute is settled one way or another. Normal bar dynamics resume.
|
||||
- id: grievance-simmering
|
||||
description: The issue goes underground. Occasional flare-ups provide social texture.
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
# Triangle 1: Hub Power — workplace hierarchy under ring pressure
|
||||
# Active fork — smuggler decision (3 paths, self-contained per D-053/A-17)
|
||||
canonical_id: hub-power
|
||||
display_name: "Hub Power"
|
||||
description: >
|
||||
Workplace hierarchy tension at The Terminal. Voss (shift supervisor) has
|
||||
positional authority but takes operational orders from the ring. Kael
|
||||
(dock worker, THE FRIEND) is caught between his boss and the ring's demands.
|
||||
Maret (freight scheduler) sees manifest discrepancies and doesn't know
|
||||
whom to tell. The triangle's resting tension: Voss needs quiet, Kael
|
||||
needs everything to hold together, Maret is too smart not to notice.
|
||||
|
||||
members:
|
||||
- npc: "npc:voss"
|
||||
role: "authority — shift supervisor with ring complicity"
|
||||
- npc: "npc:kael-davan"
|
||||
role: "subordinate — dock worker, ring member, caught between boss and ring"
|
||||
- npc: "npc:maret-korr"
|
||||
role: "caught-between — freight scheduler who sees the discrepancies"
|
||||
|
||||
forks:
|
||||
- id: volume-escalation
|
||||
condition: >
|
||||
Ring demands double-volume shipment via intermediary. Smuggler
|
||||
must decide how to handle the pressure on Voss and Kael.
|
||||
outcomes:
|
||||
- id: escalate
|
||||
description: >
|
||||
Side with ring (escalate). Convince Voss to widen the shift gap.
|
||||
Investigation accelerates — manifest discrepancies spike, Voss
|
||||
becomes visibly anxious. Detective reads organizational stress.
|
||||
effects:
|
||||
- "voss.behavior_flags += nervous,schedule_changes,evasive"
|
||||
- "voss.position_integrity = thin"
|
||||
- "ring.exposure_risk increases"
|
||||
- "detective.investigation_pace = accelerated"
|
||||
- id: stabilize
|
||||
description: >
|
||||
Side with Voss (stabilize). Reject or delay the double shipment.
|
||||
Hub runs quiet but Kael absorbs redirected pressure from ring
|
||||
coordinator. Detective reads personal stress on Kael instead.
|
||||
effects:
|
||||
- "kael.behavior_flags += lattice_checking,distracted,evasive"
|
||||
- "kael.trust_level (from ring) drops"
|
||||
- "friend_arc timing = accelerated"
|
||||
- "detective.investigation_pace = slowed"
|
||||
- id: mediate
|
||||
description: >
|
||||
Compromise — half volume, phased across two shipments. Nobody's
|
||||
happy, nobody's exposed. Detective reads inconsistent operational
|
||||
tempo. Creates a deferred second decision point.
|
||||
effects:
|
||||
- "ring.exposure_risk = moderate"
|
||||
- "smuggler.operational_trust (from ring) drops"
|
||||
- "kael.behavior_flags += uncertain,distracted"
|
||||
- "detective reads organizational confusion"
|
||||
|
||||
resolution_states:
|
||||
- id: ring-exposed-via-voss
|
||||
description: >
|
||||
Voss's anxiety becomes the detective's thread to pull. Investigation
|
||||
arrives at the ring through institutional signals.
|
||||
- id: ring-exposed-via-kael
|
||||
description: >
|
||||
Kael's personal strain becomes the detective's signal. Investigation
|
||||
arrives through behavioral tells on THE FRIEND.
|
||||
- id: ring-exposed-via-inconsistency
|
||||
description: >
|
||||
Irregular operational tempo reveals internal disagreement. Detective
|
||||
infers organizational structure from pattern disruption.
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
# Triangle 5: Worried Partner — ring pressure on personal relationships
|
||||
# Passive tension (D-087) — background pressure, not a direct player decision point
|
||||
canonical_id: worried-partner
|
||||
display_name: "Worried Partner"
|
||||
classification: passive_tension
|
||||
description: >
|
||||
Kael Davan (dock worker, ring member, smuggler's FRIEND) is under
|
||||
increasing ring pressure from Devra (ring coordinator). Naia Tamm
|
||||
(Kael's partner) is worried about his late nights and evasive answers.
|
||||
The smuggler knows why Kael is busy and can't say. This is the most
|
||||
emotionally loaded triangle — it connects THE FRIEND's contradiction
|
||||
arc to personal relationships. If Naia asks the smuggler directly,
|
||||
there's no good answer.
|
||||
|
||||
members:
|
||||
- npc: "npc:kael-davan"
|
||||
role: "partner under pressure — ring work destroying home life"
|
||||
- npc: "npc:naia-tamm"
|
||||
role: "worried — sees the changes, doesn't understand the cause"
|
||||
- npc: "npc:devra"
|
||||
role: "cause — ring coordinator whose demands increase Kael's burden"
|
||||
|
||||
forks:
|
||||
- id: naia-confronts
|
||||
condition: >
|
||||
Naia's worry reaches a threshold. She confronts Kael directly, or
|
||||
asks the smuggler what's going on. The smuggler faces a loyalty test.
|
||||
outcomes:
|
||||
- id: smuggler-deflects
|
||||
description: >
|
||||
Smuggler deflects Naia's questions. Protects Kael's cover but
|
||||
damages trust with Naia. Kael is grateful but the lie costs.
|
||||
effects:
|
||||
- "naia.trust_level (toward smuggler) drops"
|
||||
- "kael.behavior_flags += relieved,guilty"
|
||||
- "smuggler.moral_weight (toward naia) = complicit"
|
||||
- id: smuggler-hints
|
||||
description: >
|
||||
Smuggler gives Naia a partial truth — Kael's under work pressure,
|
||||
it'll pass. Not a lie, but not the truth. Naia is temporarily
|
||||
reassured but the pattern continues.
|
||||
effects:
|
||||
- "naia.behavior_flags += cautiously_reassured"
|
||||
- "kael.behavior_flags += unaware"
|
||||
- "smuggler.moral_weight (toward naia) = peripheral"
|
||||
- id: kael-snaps
|
||||
description: >
|
||||
Before the smuggler can intervene, Kael snaps at Naia under
|
||||
pressure. The argument is public enough to be observed. Devra's
|
||||
pressure has become visible through personal fallout.
|
||||
effects:
|
||||
- "kael.behavior_flags += agitated,public_argument"
|
||||
- "naia.behavior_flags += hurt,withdrawn"
|
||||
- "detective observes domestic stress (behavioral signal)"
|
||||
|
||||
resolution_states:
|
||||
- id: relationship-strained
|
||||
description: >
|
||||
Kael and Naia's relationship is visibly strained. The domestic
|
||||
tension becomes an observable signal for the detective.
|
||||
- id: temporary-calm
|
||||
description: >
|
||||
The immediate crisis passes but the underlying cause remains.
|
||||
Another confrontation is inevitable.
|
||||
- id: naia-investigates
|
||||
description: >
|
||||
Naia starts looking into Kael's activities independently. She
|
||||
becomes a potential variable the ring didn't account for.
|
||||
@@ -0,0 +1,7 @@
|
||||
# Station Sova metadata (D-036)
|
||||
display_name: "Station Sova"
|
||||
description: >
|
||||
A freight logistics station in Van Maanen's Star. 40-year-old prefab-modular
|
||||
facility serving the span gate's cargo throughput. ~12,000 population.
|
||||
districts:
|
||||
- "transit"
|
||||
@@ -0,0 +1,8 @@
|
||||
# Van Maanen's Star metadata (D-036)
|
||||
display_name: "Van Maanen's Star"
|
||||
description: >
|
||||
A mid-tier system connected via the Sova span gate. Industrial economy
|
||||
centered on freight logistics and lattice component trade. ~2.4M population,
|
||||
~180 years settled.
|
||||
stations:
|
||||
- "sova"
|
||||
Reference in New Issue
Block a user