data(content): use WantKind enum keywords in NPC profiles
Change want.primary from narrative strings to WantKind enum keywords (Safety, Wealth, Knowledge, etc.) across all 20 NPC profiles. Move narrative text to want.description. Add Happiness to WantKind enum. Add enum constraint to npc-profile.schema.json so make validate-content catches invalid values at authoring time. Fixes silent Want component drop where parse_want_kind() returned None for all real NPCs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,7 @@
|
||||
"type": "object",
|
||||
"description": "Primary want/need driving this NPC",
|
||||
"properties": {
|
||||
"primary": { "type": "string" },
|
||||
"primary": { "type": "string", "enum": ["Wealth", "Safety", "Knowledge", "Connection", "Power", "Freedom", "Justice", "Revenge", "Happiness"] },
|
||||
"intensity": { "type": "integer", "minimum": 0, "maximum": 10 },
|
||||
"description": { "type": "string" }
|
||||
},
|
||||
|
||||
+2
-1
@@ -17,9 +17,10 @@ description: >
|
||||
regular seat at The Last Shift.
|
||||
|
||||
want:
|
||||
primary: "keep the operation running smoothly and profitably"
|
||||
primary: "Wealth"
|
||||
intensity: 7
|
||||
description: >
|
||||
Keep the operation running smoothly and profitably.
|
||||
Devra is the ring's operational brain. She manages external supply chain
|
||||
coordination, schedules handoffs, and maintains timing between gate transits
|
||||
and dock processing. She is good at this — better than Nils, though she would
|
||||
|
||||
@@ -18,9 +18,10 @@ description: >
|
||||
commission.
|
||||
|
||||
want:
|
||||
primary: "clear the debt and stop looking over his shoulder"
|
||||
primary: "Freedom"
|
||||
intensity: 8
|
||||
description: >
|
||||
Clear the debt and stop looking over his shoulder.
|
||||
Drin wants to return to when the job was just a job — maintenance rounds, dock
|
||||
inspections, clocking out, going home. The work was repetitive and that was
|
||||
fine. Now every inspection cycle carries a second calculation: which containers
|
||||
|
||||
+2
-1
@@ -18,9 +18,10 @@ description: >
|
||||
because investigating would mean confronting what the card game created.
|
||||
|
||||
want:
|
||||
primary: "maintain his comfortable position"
|
||||
primary: "Happiness"
|
||||
intensity: 4
|
||||
description: >
|
||||
Maintain his comfortable position.
|
||||
Harek has a good thing: security officer with a predictable schedule, card games
|
||||
at the bar, social capital. He doesn't want promotions (more responsibility, more
|
||||
visibility). He doesn't want trouble. Secondary want: keep Drin's debt
|
||||
|
||||
+2
-1
@@ -20,9 +20,10 @@ description: >
|
||||
contradiction surfaces.
|
||||
|
||||
want:
|
||||
primary: "protect the operation and the people in it"
|
||||
primary: "Safety"
|
||||
intensity: 8
|
||||
description: >
|
||||
Protect the operation and the people in it.
|
||||
Two years in, Kael is shifting from "keep things running" to "keep people
|
||||
safe." The operation is escalating — higher volume, tighter margins, more
|
||||
risk. Secondary want: protect Naia from the truth and the consequences.
|
||||
|
||||
+2
-1
@@ -18,9 +18,10 @@ description: >
|
||||
solvent.
|
||||
|
||||
want:
|
||||
primary: "keep the bar viable"
|
||||
primary: "Wealth"
|
||||
intensity: 7
|
||||
description: >
|
||||
Keep the bar viable.
|
||||
The Last Shift operates on thin margins. The after-shift crowd is what keeps
|
||||
the lights on. Lera knows some regulars have grey-market income — she does not
|
||||
ask where the money comes from because the spending keeps her solvent. Secondary
|
||||
|
||||
+2
-1
@@ -22,9 +22,10 @@ description: >
|
||||
on her personal lattice storage.
|
||||
|
||||
want:
|
||||
primary: "understand the manifest discrepancies"
|
||||
primary: "Knowledge"
|
||||
intensity: 7
|
||||
description: >
|
||||
Understand the manifest discrepancies.
|
||||
Maret processes freight schedules and the numbers are not adding up. Container
|
||||
counts do not reconcile, manifests are revised after Voss's schedule adjustments,
|
||||
Drin's inspection reports are suspiciously clean. She is paralyzed between duty
|
||||
|
||||
+2
-1
@@ -16,9 +16,10 @@ description: >
|
||||
exactly what she appears to be: a teacher worried about her partner.
|
||||
|
||||
want:
|
||||
primary: "understand what is happening with Kael"
|
||||
primary: "Knowledge"
|
||||
intensity: 8
|
||||
description: >
|
||||
Understand what is happening with Kael.
|
||||
Naia and Kael have been together 6 years. It was good — stable, warm,
|
||||
predictable. Then Kael started coming home late. Evasive answers. Money
|
||||
that did not match the hours. Stress that Kael will not explain. Naia does
|
||||
|
||||
+2
-1
@@ -18,8 +18,9 @@ description: >
|
||||
without seeing him. Tier 1 in schema; functionally off-stage (tier 0).
|
||||
|
||||
want:
|
||||
primary: "control"
|
||||
primary: "Power"
|
||||
description: >
|
||||
Control.
|
||||
Grow the operation. Increase volume. Maintain authority over the ring from
|
||||
a distance. Nils sets volume targets, applies escalation pressure, and makes
|
||||
personnel decisions. The ring's growth imperative comes from Nils; the
|
||||
|
||||
@@ -15,8 +15,9 @@ description: >
|
||||
attention, convenience is suspicious. Ambiguity is deliberate and unresolved.
|
||||
|
||||
want:
|
||||
primary: "employment"
|
||||
primary: "Safety"
|
||||
description: >
|
||||
Employment.
|
||||
Find work. Settle in. Start over. Whether this is genuine or a cover story
|
||||
is left deliberately ambiguous for v0.1.
|
||||
|
||||
|
||||
+2
-1
@@ -18,9 +18,10 @@ description: >
|
||||
threat to avoid. Second playthrough: "That's me. That's what I was doing."
|
||||
|
||||
want:
|
||||
primary: "answers"
|
||||
primary: "Knowledge"
|
||||
intensity: 5
|
||||
description: >
|
||||
Answers.
|
||||
Wants to understand the freight discrepancies. Follows the investigation
|
||||
methodically. Does not make dramatic decisions on the neutral path -- no
|
||||
confrontations, no leverage plays, no dramatic revelations.
|
||||
|
||||
+2
-1
@@ -19,9 +19,10 @@ description: >
|
||||
neutral path and the player's actual choices IS the narrative distance traveled.
|
||||
|
||||
want:
|
||||
primary: "stability"
|
||||
primary: "Safety"
|
||||
intensity: 4
|
||||
description: >
|
||||
Stability.
|
||||
Keep the day smooth. Keep the operation running, the team safe, the shift
|
||||
uneventful. Does not make dramatic decisions on the neutral path.
|
||||
|
||||
|
||||
@@ -18,9 +18,10 @@ description: >
|
||||
a handler.
|
||||
|
||||
want:
|
||||
primary: "get out without getting killed"
|
||||
primary: "Freedom"
|
||||
intensity: 9
|
||||
description: >
|
||||
Get out without getting killed.
|
||||
Pell is past the point of wanting to stay. The escalating volume, the increasing
|
||||
risk, the paranoia — the ring has gone from manageable supplement to existential
|
||||
threat. Secondary want: find someone — anyone — who can offer protection in
|
||||
|
||||
@@ -18,9 +18,11 @@ description: >
|
||||
wavering to Devra.
|
||||
|
||||
want:
|
||||
primary: "stay useful to the ring without getting caught"
|
||||
primary: "Power"
|
||||
intensity: 6
|
||||
description: >
|
||||
Prove loyalty to the ring and earn trust.
|
||||
Stay useful without getting caught.
|
||||
Renn is the physical courier — lifting, carrying, timing runs through
|
||||
maintenance corridors during Meridian dead spots. Takes pride in the execution.
|
||||
The job feels important. Secondary want: prove loyalty to Nils and Devra. Renn
|
||||
|
||||
+2
-1
@@ -18,9 +18,10 @@ description: >
|
||||
match what she observes.
|
||||
|
||||
want:
|
||||
primary: "prove herself at the job"
|
||||
primary: "Power"
|
||||
intensity: 5
|
||||
description: >
|
||||
Prove herself at the job.
|
||||
Resha wants to be competent, reliable, valued. She studies shift protocols,
|
||||
asks questions about procedures, and takes notes. Some of those questions —
|
||||
about locked bays, irregular schedule changes, containers with routing codes
|
||||
|
||||
+2
-1
@@ -17,8 +17,9 @@ description: >
|
||||
ring members' dialogue.
|
||||
|
||||
want:
|
||||
primary: "profit"
|
||||
primary: "Wealth"
|
||||
description: >
|
||||
Profit.
|
||||
Deliver. Get paid. Maintain the supply chain. If the operation on Sova is
|
||||
compromised, Sabel cuts the connection and finds another distribution point.
|
||||
|
||||
|
||||
+2
-1
@@ -21,9 +21,10 @@ description: >
|
||||
evidence from the detective she calls a friend. The quiet life she wanted is gone.
|
||||
|
||||
want:
|
||||
primary: "keep her life stable and her friendships intact"
|
||||
primary: "Connection"
|
||||
intensity: 8
|
||||
description: >
|
||||
Keep her life stable and her friendships intact.
|
||||
Sova was supposed to be quiet — routine calibration checks, scheduled
|
||||
inspections, paperwork. For 12 months, it was exactly that. Then Naia started
|
||||
confiding about Kael's late nights, and Sera's competence made her curious, and
|
||||
|
||||
@@ -14,8 +14,9 @@ description: >
|
||||
full of people with secrets, Sess's lack of hidden agenda is camouflage.
|
||||
|
||||
want:
|
||||
primary: "stability"
|
||||
primary: "Safety"
|
||||
description: >
|
||||
Stability.
|
||||
Do the job. Go home. Don't get involved. The work is steady, the tips are
|
||||
adequate, the regulars are predictable. No ambitions beyond maintaining
|
||||
this equilibrium.
|
||||
|
||||
@@ -16,8 +16,9 @@ description: >
|
||||
on watch but visibly nervous to anyone who knows what to look for.
|
||||
|
||||
want:
|
||||
primary: "belonging"
|
||||
primary: "Connection"
|
||||
description: >
|
||||
Belonging.
|
||||
Do the watch. Don't get noticed. Prove useful. The role is simple — watch,
|
||||
signal, move — but it is the first thing Tav has been trusted with and
|
||||
the consequences of failure are immediate and severe.
|
||||
|
||||
+2
-1
@@ -17,9 +17,10 @@ description: >
|
||||
without intent.
|
||||
|
||||
want:
|
||||
primary: "enjoy the good life while it lasts"
|
||||
primary: "Wealth"
|
||||
intensity: 5
|
||||
description: >
|
||||
Enjoy the good life while it lasts.
|
||||
Torek is young, single, and flush for the first time. He buys rounds, tips well,
|
||||
has a new jacket and lattice accessories. He is performing generosity — and the
|
||||
performance is the problem. In a district where everyone knows everyone's salary,
|
||||
|
||||
@@ -18,9 +18,10 @@ description: >
|
||||
Voss's schedule first.
|
||||
|
||||
want:
|
||||
primary: "operational stability"
|
||||
primary: "Safety"
|
||||
intensity: 6
|
||||
description: >
|
||||
Operational stability.
|
||||
Keep his shift running without incident. Clean handoffs, zero incident reports.
|
||||
The smuggling operation introduces variables he cannot control, but the cut he
|
||||
receives smooths the rough edges of a supervisor's salary. Secondary want:
|
||||
|
||||
Reference in New Issue
Block a user