feat(simulation): add social site template schema types
Implements #163 (RoleSchema), #164 (SpaceSpec), #165 (TemplateOwnership + TemplateReferenceMap), #106 (TriangleDef), #107 (intra-template triangle generation), and #250 (triangle escalation system) as the foundational Tier 2 template system per D-025. New content/template module with YAML-deserializable schema types, ECS components for ownership/triangle state, escalation system running on game-minute boundaries, and TriangleCrisisEvent emission. Sample YAML templates at server/data/templates/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Sample role schema for the dock-worker role in the terminal social site.
|
||||
# Spec ref: D-023 (Tier 2 templates), D-024 (10-axis model), D-025 (social site)
|
||||
#
|
||||
# Tile scale note (D-066): tile_count_* fields are in SIM tiles (0.5m each).
|
||||
# 1 visual tile = 2 sim tiles. A 15-40 visual tile space = 30-80 sim tiles.
|
||||
|
||||
role_id: "dock-worker"
|
||||
required_traits:
|
||||
- Honest
|
||||
- Social
|
||||
skill_focus:
|
||||
- Technical
|
||||
- Observation
|
||||
relationship_constraints:
|
||||
- with_role: "logistics-manager"
|
||||
kind: Colleague
|
||||
required_trust:
|
||||
min: -2
|
||||
max: 4
|
||||
- with_role: "ring-contact"
|
||||
kind: Colleague
|
||||
required_trust:
|
||||
min: -4
|
||||
max: 0
|
||||
routine_template:
|
||||
- phase: morning
|
||||
location: "terminal-cargo-bay"
|
||||
- phase: afternoon
|
||||
location: "terminal-cargo-bay"
|
||||
- phase: evening
|
||||
location: "bar-last-shift"
|
||||
@@ -0,0 +1,18 @@
|
||||
# Sample space spec for the terminal social site (Sova Logistics Hub).
|
||||
# Spec ref: D-025 (15-40 visual tiles = 30-80 sim tiles), D-064 (dual-scale grid)
|
||||
#
|
||||
# Tile scale (D-066): all tile counts are SIM tiles (0.5m each).
|
||||
# Terminal: 44×28 visual tiles = 88×56 sim tiles = 4928 sim tiles.
|
||||
# Using a subsection for one functional zone: ~44×8 visual = 88×16 sim = 1408 sim.
|
||||
|
||||
tile_count_min: 30
|
||||
tile_count_max: 80
|
||||
sightline_zones:
|
||||
- name: "loading-floor"
|
||||
radius: 8 # 4m clear sightline across the loading area
|
||||
- name: "reception-desk"
|
||||
radius: 4 # 2m clear sightline at the desk
|
||||
- name: "cargo-staging"
|
||||
radius: 6 # 3m clear sightline in staging area
|
||||
privacy_level: SemiPrivate
|
||||
traffic_pattern: Destination
|
||||
@@ -0,0 +1,24 @@
|
||||
# Sample triangle definition: T4 Drin-System-Ring (D-087 active fork).
|
||||
# Spec ref: D-024 (triangles as atomic social unit), D-087 (T4 configuration),
|
||||
# D-089 (self-contained, no cross-triangle cascade)
|
||||
#
|
||||
# Note: triangle_id is computed at world-gen time from seed + roles.
|
||||
# The value below is a placeholder for YAML authoring — the runtime
|
||||
# calls TriangleId::from_seed_and_roles() to derive the actual ID.
|
||||
|
||||
triangle_id: 0
|
||||
roles:
|
||||
- "ring-leader"
|
||||
- "dock-worker"
|
||||
- "logistics-manager"
|
||||
conflict_type: ResourceCompetition
|
||||
interest_axes:
|
||||
- Want
|
||||
- Secret
|
||||
- Relationships
|
||||
relationship_constraints:
|
||||
- with_role: "dock-worker"
|
||||
kind: Subordinate
|
||||
required_trust:
|
||||
min: -2
|
||||
max: 2
|
||||
Reference in New Issue
Block a user