# NPC Generation Model — D-024, D-025 # 10 axes + combat component. Social site / functional cluster as atomic template unit. vars: { color-bg: "#2a3040" color-stroke: "#333340" color-text: "#c8d0e0" color-accent: "#c8d8f0" color-dim: "#1a1e24" } direction: right npc: NPC (generated) { shape: person style.fill: ${color-bg} style.stroke: ${color-accent} style.font-color: ${color-text} } essential: 7 Essential Axes { style.fill: ${color-dim} style.stroke: ${color-accent} style.font-color: ${color-text} want: Want { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } secret: Secret / Vulnerability { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } relationships: Relationships (1-3) { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } tolerance: Tolerance Threshold { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } routine: Daily Routine { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } info_inv: Information Inventory { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } contentment: Contentment { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } } supporting: 3 Supporting Axes { style.fill: ${color-dim} style.stroke: ${color-stroke} style.font-color: ${color-text} personality: Personality Traits (2-3) { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } tell: Tell System { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } skills: Skill Set { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } } combat_comp: CombatCapability\n(optional ECS component) { shape: package style.fill: ${color-bg} style.stroke: ${color-accent} style.font-color: ${color-text} style.stroke-dash: 4 } key_interactions: Key Contradiction Interactions { style.fill: ${color-dim} style.stroke: ${color-stroke} style.font-color: ${color-text} i1: Want × Secret { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } i2: Routine × Secret { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } i3: Tolerance × Relationships { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } i4: Want × Relationships { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } i5: Personality × Tolerance { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } } social_site: Social Site\n(atomic Tier 2 template unit) { style.fill: ${color-dim} style.stroke: ${color-accent} style.font-color: ${color-text} group: Social Group (4-8 NPCs)\n2+ triangles + 1 cross-template triangle { style.fill: ${color-bg} style.stroke: ${color-accent} style.font-color: ${color-text} } cluster: Functional Cluster\n15-40 tiles, internal sightlines { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } ownership: NPC Ownership\nowned by 1 template, referenced by others { style.fill: ${color-bg} style.stroke: ${color-stroke} style.font-color: ${color-text} } } npc -> essential: "generated with" { style.stroke: ${color-accent} } npc -> supporting: "generated with" { style.stroke: ${color-stroke} } supporting.skills -> combat_comp: "combat tag → component" { style.stroke: ${color-accent} style.stroke-dash: 4 } essential -> key_interactions: "produces" { style.stroke: ${color-stroke} } npc -> social_site: "placed in" { style.stroke: ${color-accent} }