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,41 @@
|
||||
# 5 access tier values (D-035, D-028 Layer 1)
|
||||
# Hard filter on every dialogue line — determines who can hear what
|
||||
name: access-tiers
|
||||
decision_ref: D-035
|
||||
description: >
|
||||
Access tiers control which dialogue lines are available to the player based
|
||||
on their current social standing at the NPC's social site. This is a hard
|
||||
filter — lines are invisible if access doesn't match. A line can be eligible
|
||||
for multiple access tiers (access is a list). The detective's institutional
|
||||
Commission lattice registers as 'authority'; the smuggler's ring membership
|
||||
provides 'insider' access.
|
||||
|
||||
values:
|
||||
- value: public
|
||||
description: >
|
||||
Available to anyone. Surface-level conversation, safe topics, the social
|
||||
wallpaper that everyone hears. Greetings, weather, the local complaint.
|
||||
|
||||
- value: insider
|
||||
description: >
|
||||
Available to people who belong. Ring members, established regulars, anyone
|
||||
the NPC considers part of their social group. The smuggler starts here at
|
||||
the logistics hub.
|
||||
|
||||
- value: authority
|
||||
description: >
|
||||
Available to institutional figures. Commission agents, station security,
|
||||
anyone with formal investigative standing. The detective's default tier.
|
||||
NPCs are more careful, more formal, less revealing.
|
||||
|
||||
- value: peer
|
||||
description: >
|
||||
Available to social equals who have earned personal trust. Not institutional,
|
||||
not group membership — individual relationship. Requires repeated positive
|
||||
interactions. The tier where real conversation happens.
|
||||
|
||||
- value: hostile
|
||||
description: >
|
||||
Available when the relationship has broken down. Accusations, threats,
|
||||
defensive responses. Activates when trust drops below threshold or after
|
||||
a confrontation event.
|
||||
@@ -0,0 +1,55 @@
|
||||
# NPC activity types for routine scheduling
|
||||
# Derived from Gestalt routine format + Miri cultural patterns (Sova Transit District)
|
||||
name: activities
|
||||
decision_ref: D-024
|
||||
description: >
|
||||
Activity categories for NPC routine entries. Each routine schedule entry has a
|
||||
phase (morning/afternoon/evening/night) and an activity describing what the NPC
|
||||
is doing. Activities are used by the observation event generator to determine
|
||||
what the player sees when observing an NPC, and by the situation activation
|
||||
system to set dialogue context.
|
||||
|
||||
values:
|
||||
- value: working
|
||||
description: On-shift job duties — processing cargo, inspecting manifests, operating equipment
|
||||
|
||||
- value: supervising
|
||||
description: Overseeing others' work — shift supervisor role, checking quality, giving orders
|
||||
|
||||
- value: maintaining
|
||||
description: Maintenance and repair tasks — fixing equipment, cleaning, infrastructure upkeep
|
||||
|
||||
- value: patrolling
|
||||
description: Security rounds — checking access points, monitoring areas, enforcement presence
|
||||
|
||||
- value: socializing
|
||||
description: Casual social interaction — chatting at the bar, break room conversation, gossip
|
||||
|
||||
- value: drinking
|
||||
description: At The Last Shift or similar — consuming drinks, unwinding after shift
|
||||
|
||||
- value: eating
|
||||
description: Meal time — food vendors, break room, bar food
|
||||
|
||||
- value: resting
|
||||
description: Off-shift downtime — in quarters, low activity, recuperating
|
||||
|
||||
- value: commuting
|
||||
description: Moving between locations — corridor transit, shift change movement
|
||||
|
||||
- value: gambling
|
||||
description: Card game at the bar — the regular social ritual, information exchange venue
|
||||
|
||||
- value: trading
|
||||
description: Legitimate commerce — buying, selling, negotiating, market activity
|
||||
|
||||
- value: operating
|
||||
description: >
|
||||
Ring operations — contraband handling, manifest doctoring, coordination.
|
||||
Only visible to characters with sufficient knowledge or direct observation.
|
||||
|
||||
- value: waiting
|
||||
description: Idle between activities — lingering, watching, killing time
|
||||
|
||||
- value: meeting
|
||||
description: Arranged or coincidental encounter with specific NPCs — planned conversation
|
||||
@@ -0,0 +1,34 @@
|
||||
# 8 mood values (D-035, D-028 Layer 4)
|
||||
# Mood tags for weighted dialogue selection
|
||||
name: moods
|
||||
decision_ref: D-035
|
||||
description: >
|
||||
NPC mood tags for Layer 4 weighted selection. The engine matches NPC current
|
||||
mood state against line mood tags to weight selection. NPC mood changes based
|
||||
on simulation events (triangle pressure, time of day, recent interactions).
|
||||
Lines can be appropriate for multiple moods.
|
||||
|
||||
values:
|
||||
- value: anxious
|
||||
description: Anxious about something specific. Distracted, checking surroundings. (Renamed from 'worried' in Sprint 14.)
|
||||
|
||||
- value: frustrated
|
||||
description: Blocked, irritated, empathetically distressed. Outward-directed tension. (Renamed from 'concerned' in Sprint 14.)
|
||||
|
||||
- value: content
|
||||
description: At ease, relaxed. Default positive-neutral state. (Renamed from 'comfortable' in Sprint 14.)
|
||||
|
||||
- value: suspicious
|
||||
description: Guarded, measuring words. Something feels off to this NPC.
|
||||
|
||||
- value: warm
|
||||
description: Warm, affectionate. Genuine positive feeling toward the listener. (Renamed from 'fond' in Sprint 14.)
|
||||
|
||||
- value: hostile
|
||||
description: Actively antagonistic. Trust broken, relationship damaged. (Added in Sprint 14.)
|
||||
|
||||
- value: relieved
|
||||
description: Tension has eased. Something feared didn't happen, or a burden lifted.
|
||||
|
||||
- value: focused
|
||||
description: Thoughtful, assessing, task-oriented. Processing information rather than emoting. (Renamed from 'analytical', merged with 'conflicted' in Sprint 14.)
|
||||
@@ -0,0 +1,41 @@
|
||||
# 6 functional motivations — System B (D-050)
|
||||
# NPC functional role in the conspiracy/investigation structure
|
||||
name: motivations
|
||||
decision_ref: D-050
|
||||
description: >
|
||||
Functional motivations (System B) define an NPC's role relative to the
|
||||
conspiracy and investigation structure. Combined with thematic patterns
|
||||
(System A) to produce the full NPC generation model. Motivations are
|
||||
uppercase enum values referenced by npc-profile.schema.json.
|
||||
|
||||
values:
|
||||
- value: HANDLER
|
||||
description: >
|
||||
Manages or coordinates others within the ring structure. Has authority
|
||||
over ring operations and knowledge of the network. Devra-type.
|
||||
|
||||
- value: WITNESS
|
||||
description: >
|
||||
Has seen or knows something significant, possibly without realizing it.
|
||||
Their testimony or observations are valuable to the investigation.
|
||||
|
||||
- value: TURNCOAT
|
||||
description: >
|
||||
Wavering loyalty. Could flip sides given the right pressure or
|
||||
incentive. The uncertain element in any conspiracy.
|
||||
|
||||
- value: CIVILIAN
|
||||
description: >
|
||||
Genuinely uninvolved. Their mundane concerns and daily life provide
|
||||
the substrate that makes the conspiracy invisible. The honest majority.
|
||||
|
||||
- value: OPERATOR
|
||||
description: >
|
||||
Active participant in ring operations. Handles logistics, moves product,
|
||||
takes direct action. Kael, Renn — the workers of the conspiracy.
|
||||
|
||||
- value: SKEPTIC
|
||||
description: >
|
||||
Questions the status quo — institutional, criminal, or both. May be
|
||||
suspicious of the ring, critical of the Commission, or both. Asks
|
||||
uncomfortable questions.
|
||||
@@ -0,0 +1,57 @@
|
||||
# 9 thematic patterns — System A (D-050)
|
||||
# NPC archetype patterns for character generation and narrative role
|
||||
name: patterns
|
||||
decision_ref: D-050
|
||||
description: >
|
||||
Thematic patterns (System A) define an NPC's narrative archetype — their
|
||||
structural role in the story. Combined with functional motivations (System B)
|
||||
to produce the full NPC generation model. Patterns are uppercase enum values
|
||||
referenced by npc-profile.schema.json.
|
||||
|
||||
values:
|
||||
- value: FRIEND
|
||||
description: >
|
||||
Production-level complex NPC bonded to a playable character (D-034).
|
||||
Full 10-axis depth, contradiction arc, multi-phase relationship.
|
||||
One per playable character in v0.1.
|
||||
|
||||
- value: MIRROR
|
||||
description: >
|
||||
Reflects the player character's situation from a different angle.
|
||||
What the player could become, or what they might have been.
|
||||
|
||||
- value: ANCHOR
|
||||
description: >
|
||||
Stabilizing presence in the community. The person everyone knows,
|
||||
who provides continuity and normalcy. The bar owner, the shift lead.
|
||||
|
||||
- value: GHOST
|
||||
description: >
|
||||
Absent or barely-present figure whose influence is felt through
|
||||
others. Referenced in dialogue, effects visible, person rarely seen.
|
||||
|
||||
- value: CATALYST
|
||||
description: >
|
||||
Triggers change in others. Their actions or arrival destabilize
|
||||
existing equilibria. The new hire, the returning contact.
|
||||
|
||||
- value: THRESHOLD
|
||||
description: >
|
||||
Gatekeeper between social worlds. Controls access to information,
|
||||
spaces, or people. Their cooperation or opposition shapes player options.
|
||||
|
||||
- value: REMNANT
|
||||
description: >
|
||||
Carries the past. Remembers how things were before the current
|
||||
situation. Provides historical context and perspective.
|
||||
|
||||
- value: SYSTEM
|
||||
description: >
|
||||
Represents institutional power. Their actions reflect organizational
|
||||
priorities, not personal ones. The Commission agent, the inspector.
|
||||
|
||||
- value: NOBODY
|
||||
description: >
|
||||
Deliberately flat. Social wallpaper with one memorable trait.
|
||||
Part of the 30% truly flat population (D-029). Provides the noise
|
||||
floor that makes investigation signal meaningful.
|
||||
@@ -0,0 +1,60 @@
|
||||
# 14 situation values (D-035, D-028 Layer 2)
|
||||
# Situation context for dialogue line eligibility — engine-state-to-situation mapping
|
||||
name: situations
|
||||
decision_ref: D-035
|
||||
description: >
|
||||
Dialogue situation tags. The engine activates situations based on simulation
|
||||
state (time of day, interaction history, NPC routine state, triangle pressure).
|
||||
Content authors tag lines with situations; the engine decides which situations
|
||||
are currently active for a given NPC encounter.
|
||||
|
||||
values:
|
||||
- value: arrival
|
||||
description: Player has just arrived at this location (first visit this game-day)
|
||||
|
||||
- value: shift_start
|
||||
description: NPC is beginning their work shift — settling in, task-focused
|
||||
|
||||
- value: shift_end
|
||||
description: NPC is wrapping up their work shift — tired, ready to leave
|
||||
|
||||
- value: shift_transition
|
||||
description: >
|
||||
The gap between shifts when oversight is thinnest. Key operational window
|
||||
for the ring. People are moving, handoffs happening, attention divided.
|
||||
|
||||
- value: bar_evening
|
||||
description: Social hours at The Last Shift — off-duty, relaxed, drinks flowing
|
||||
|
||||
- value: night_shift
|
||||
description: Late hours, skeleton crew. Quieter, more intimate conversations.
|
||||
|
||||
- value: investigation
|
||||
description: Player is actively asking pointed or probing questions
|
||||
|
||||
- value: confrontation
|
||||
description: >
|
||||
Triangle tension has escalated past the pressure threshold. NPCs are
|
||||
agitated, defensive, or aggressive. Activated by triangle pressure system.
|
||||
|
||||
- value: social
|
||||
description: NPC is in a social activity — bar, break room, casual conversation
|
||||
|
||||
- value: alone
|
||||
description: NPC is by themselves, no other NPCs nearby
|
||||
|
||||
- value: emergency
|
||||
description: An urgent event is occurring — alarm, accident, security incident
|
||||
|
||||
- value: routine
|
||||
description: Normal daily activity, nothing notable happening
|
||||
|
||||
- value: observation
|
||||
description: Player is watching from a distance, not directly interacting
|
||||
|
||||
- value: greeting
|
||||
description: >
|
||||
Initial contact phase of an encounter. Layer 2 (D-028) uses greeting lines
|
||||
with access tier filtering to differentiate first meeting vs established vs
|
||||
post-confrontation greetings. Added Sprint 8 amendment. NOTE: server
|
||||
derive_situations() does not yet push Situation::Greeting — pending Rust update.
|
||||
@@ -0,0 +1,44 @@
|
||||
# 9 topic values (D-035, D-028 Layer 4)
|
||||
# Topic tags for weighted dialogue selection
|
||||
name: topics
|
||||
decision_ref: D-035
|
||||
description: >
|
||||
Dialogue topic tags for Layer 4 weighted selection. The engine matches NPC
|
||||
current concern topics against line topic tags to weight selection. Lines can
|
||||
cover multiple topics. Note: 'crime' is deliberately excluded — NPCs think
|
||||
of smuggling as 'cargo' or 'money', not crime. The dual-lens interpretation
|
||||
is what makes those topics crime-adjacent for the detective.
|
||||
|
||||
values:
|
||||
- value: colleague
|
||||
description: Talk about coworkers, workplace relationships, team dynamics
|
||||
|
||||
- value: routine
|
||||
description: Daily schedules, habits, shift patterns, the rhythm of station life
|
||||
|
||||
- value: cargo
|
||||
description: >
|
||||
Freight, manifests, shipments — setting-specific. For ring members,
|
||||
this covers contraband discussion without calling it that.
|
||||
|
||||
- value: money
|
||||
description: Finances, costs, wages, spending. The economic squeeze.
|
||||
|
||||
- value: trust
|
||||
description: Reliability, loyalty, who can be counted on, who's changed
|
||||
|
||||
- value: danger
|
||||
description: Threats, risks, things to watch out for, security concerns
|
||||
|
||||
- value: institution
|
||||
description: >
|
||||
The Commission, station administration, regulations, official procedures.
|
||||
How institutional power affects daily life.
|
||||
|
||||
- value: personal
|
||||
description: Family, health, aspirations, feelings — non-work life
|
||||
|
||||
- value: investigation
|
||||
description: >
|
||||
Direct references to the detective's work, evidence, suspicions.
|
||||
Typically only surfaces at higher trust levels or under pressure.
|
||||
@@ -0,0 +1,56 @@
|
||||
# 9 monologue trigger types (D-035, D-032)
|
||||
# What causes an internal monologue line to fire
|
||||
name: triggers
|
||||
decision_ref: D-035
|
||||
description: >
|
||||
Monologue trigger types. The observation event generator detects simulation
|
||||
events and fires triggers consumed by the monologue system. Each trigger type
|
||||
selects from character-specific pools (D-032 hard partition) and applies
|
||||
prerequisite knowledge gates before selection.
|
||||
|
||||
values:
|
||||
- value: enter_location
|
||||
description: >
|
||||
Player enters a new area. First impressions, atmosphere, spatial awareness.
|
||||
"The Last Shift. Lera's already got my usual poured."
|
||||
|
||||
- value: observe_npc
|
||||
description: >
|
||||
Player sees an NPC doing something notable — an activity, a posture, a
|
||||
tell. "Kael's at the corner booth. He looks rough tonight."
|
||||
|
||||
- value: hear_sound
|
||||
description: >
|
||||
Sound event from fog edge — voices through walls, footsteps in corridors,
|
||||
machinery changes. The player interprets what they can't see.
|
||||
|
||||
- value: observe_anomaly
|
||||
description: >
|
||||
NPC deviates from known routine. The character notices something out of
|
||||
place. "That's not where they usually go." Requires prerequisite knowledge
|
||||
of the NPC's normal pattern.
|
||||
|
||||
- value: post_conversation
|
||||
description: >
|
||||
After dialogue ends. The character reflects on what was said, what wasn't
|
||||
said, what felt off. Processing and interpretation.
|
||||
|
||||
- value: discover_evidence
|
||||
description: >
|
||||
Player examines an informational object — a manifest, a terminal, a
|
||||
personal item. The character interprets what they find.
|
||||
|
||||
- value: witness_interaction
|
||||
description: >
|
||||
Player sees two NPCs interacting with each other. The character reads the
|
||||
body language, the tone, the context. Social observation.
|
||||
|
||||
- value: time_idle
|
||||
description: >
|
||||
Player hasn't acted for a while. The character's mind wanders — ambient
|
||||
thoughts, rumination, noticing background details.
|
||||
|
||||
- value: return_visit
|
||||
description: >
|
||||
Player returns to a previously visited area. Changed perspective, new
|
||||
details noticed, comparison to last time. "Something's different."
|
||||
@@ -0,0 +1,28 @@
|
||||
# 3 trust tier values (D-035, D-028 Layer 3)
|
||||
# Hard filter for trust-gated gossip disclosure
|
||||
name: trust-tiers
|
||||
decision_ref: D-035
|
||||
description: >
|
||||
Trust tiers control information disclosure depth. Each NPC tracks trust
|
||||
progression per player character, starting at surface. Trust advances
|
||||
through repeated positive interactions. This is a hard filter — lines at
|
||||
'real' or 'secret' trust are invisible until the player earns that level.
|
||||
|
||||
values:
|
||||
- value: surface
|
||||
description: >
|
||||
Default tier. Safe, non-committal responses. What the NPC tells
|
||||
strangers and acquaintances. The public face.
|
||||
|
||||
- value: real
|
||||
description: >
|
||||
Earned through repeated positive interactions. The NPC shares genuine
|
||||
opinions, workplace complaints, personal concerns. What they tell
|
||||
people they trust.
|
||||
|
||||
- value: secret
|
||||
description: >
|
||||
Highest tier. The NPC reveals information they'd normally hide —
|
||||
involvement in the ring, knowledge of the smuggling operation,
|
||||
fears and vulnerabilities. Reaching this tier with THE FRIEND is
|
||||
where the contradiction arc becomes explicit.
|
||||
Reference in New Issue
Block a user