Files
settled-reach/content/global/rural-zone-spec.ron
T
jpmschweitzerandClaude Opus 4.6 95c0da9cf5 feat(copy): add zone identity specs and Krenn culture profile (#609, #610)
Zone identity specs for the generator spike proof-of-life:
- rural-zone-spec.ron: 4 roles, 3 social sites, density 2, economic 3
- industrial-zone-spec.ron: 4 roles, 3 social sites, density 6, economic 7

Krenn culture profile:
- culture-krenn.ron: 40 given names, 16 family names, speech patterns,
  cultural values (Bold/Honest/Curious/Social favored)

All three files validate against the Rust structs from #611 and produce
visibly differentiated output from the generator spike.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 09:27:16 +01:00

117 lines
4.8 KiB
Plaintext

// Zone Identity Spec — Rural
//
// Schema: server/src/npc/blueprint.rs :: ZoneSpec
// Ticket: #609 (copy team)
// Validate: tooling/validate-ron content/global/rural-zone-spec.ron zone
//
// Character: scattered homesteads and small workshops. Unhurried. Community-bound.
// Low throughput, high familiarity. Everyone knows who belongs here.
//
// Generator contrast target: rural vs industrial (Sprint 25 proof).
// If these produce NPCs that look the same, something is wrong.
(
zone_type: "rural",
label: "Rural Settlement",
description: "Scattered homesteads, small workshops, and communal gathering points. Low population density, strong community bonds, subsistence-plus economy. Work is seasonal and visible — everyone knows what everyone else is doing.",
// 1-10. Rural Krenn: self-sufficient, low cash flow, barter supplements credits.
economic_level: 3,
// 1-10. Sparse. Faces are familiar. Strangers stand out.
population_density: 2,
roles: [
(
id: "farmer",
label: "Farmer",
// Most common. The settlement runs on food production.
weight: 5,
skill_focus: ["technical"],
combat_eligible: false,
typical_behaviors: [
"tends rows of low-growing crops with a long-handled hoe",
"lifts a crate of produce onto a flatbed with practiced ease",
"squints at the sky before deciding whether to water",
"patches a cracked irrigation pipe with strips of bonding tape",
"calls across a field to a neighbor without looking up from work",
"hauls produce to the market stall before the heat of the day",
"checks seedling trays in a low prefab greenhouse",
],
),
(
id: "mechanic",
label: "Settlement Mechanic",
// One or two per settlement. Everyone knows who to call.
weight: 3,
skill_focus: ["technical"],
combat_eligible: false,
typical_behaviors: [
"pulls a drive unit from a tiller and examines the worn housing",
"wipes grease on the thigh of her coveralls between jobs",
"explains a repair in clipped shorthand without looking up",
"lines up salvaged parts on a workbench and assesses them",
"welds a seam on a cracked water tank with slow, careful strokes",
"borrows a tool from a neighbor and returns it without being asked",
],
),
(
id: "trader",
label: "Itinerant Trader",
// Passes through. Outsider-familiar — not local, not stranger.
weight: 2,
skill_focus: ["persuasion", "observation"],
combat_eligible: false,
typical_behaviors: [
"squares goods on a fold-out portable display with deliberate care",
"leans back on a stool and watches the foot traffic",
"counts credit chits with one thumb while talking to a customer",
"haggles with quiet patience — lets silence do the work",
"notes which locals are buying what, and remembers",
"packs unsold goods with no visible frustration",
],
),
(
id: "militia",
label: "Settlement Militia",
// Rare. Part-time. Knows everyone, trusted because of it.
weight: 1,
skill_focus: ["combat", "observation"],
combat_eligible: true,
typical_behaviors: [
"walks the fence line at a measured, unhurried pace",
"leans on the gate post with rifle slung, watching the road",
"waves a familiar face through without checking credentials",
"sits in the shade of the gatehouse with a local newsline",
"stops to talk with a passing farmer, eyes still scanning the perimeter",
],
),
],
social_sites: [
(
site_type: "tavern",
label: "Local Tavern",
// The Last Shift equivalent for rural Krenn: functional, familiar, slow.
roles: ["farmer", "mechanic", "trader", "militia"],
min_npcs: 3,
max_npcs: 6,
),
(
site_type: "workshop",
label: "Community Workshop",
// Shared space. People fix things together.
roles: ["mechanic", "farmer"],
min_npcs: 2,
max_npcs: 4,
),
(
site_type: "market_stall",
label: "Settlement Market",
// Weekly or daily trading post. Commerce and gossip combined.
roles: ["trader", "farmer"],
min_npcs: 1,
max_npcs: 3,
),
],
)