[
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "affected_by": [
          "automated-playtesting",
          "learned-level-generation",
          "open-ended-environment-generation",
          "simulation-based-inference"
        ],
        "involved_in": [
          "mechanic-discovery-search",
          "parallel-autobalance"
        ],
        "used_by": [
          "against-the-storm",
          "dont-starve",
          "dwarf-fortress",
          "dyson-sphere-program",
          "factorio",
          "fallout-shelter",
          "farthest-frontier",
          "mindustry",
          "rimworld"
        ]
      },
      "prevalence": 9,
      "prevalence_rank": 70,
      "prevalence_share": 0.051,
      "subgenre_spread": 4,
      "technique_count": 4,
      "technique_exposure": 0.775
    },
    "ai_leverage": 3,
    "aliases": [
      "threat budget",
      "difficulty scaling",
      "wealth-based raid scaling"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "The game keeps a threat budget recomputed before each hostile event as a function of one or more proxies for player strength, multiplied by a difficulty scalar, and spends that budget on enemy count and composition. RimWorld computes raid points as (wealth points + pawn points) x threat scale x starting factor x adaptation factor, capped at 10,000: wealth points rise from 0 at 14,000 storyteller wealth to 4,200 at 1,000,000, each healthy colonist adds 15 to 200 points, a 0.7 starting factor applies through day 10, and an adaptation factor drops after colonist deaths or downings. Factorio's enemy evolution factor rises with elapsed time, pollution produced, and spawners destroyed, unlocking larger biters. Oblivion scaled enemy level to the player's level. Inputs: player state proxies and recent losses. Output: a scalar budget or tier consumed by the event or spawn system.",
    "design_levers": [
      "which proxies define strength (wealth, population, time, kills, player level, recent damage taken)",
      "the curve from proxy to budget, including dead zones, piecewise slopes, and the hard cap",
      "difficulty multiplier presets and whether players can set them freely",
      "adaptation or mercy terms that lower the budget after losses and raise it after easy wins",
      "grace period length before scaling starts",
      "how budget maps to enemy composition, such as tiers unlocked at thresholds versus more of the same unit"
    ],
    "dynamics": [
      "Players optimize the ratio of combat value to counted value, producing lean, militarized bases.",
      "Run length and difficulty converge across skill levels because the system rubber-bands toward a target challenge.",
      "Coupled with permadeath, the adaptation term creates recovery arcs after a massacre instead of an immediate death spiral.",
      "Coupled with pollution or expansion (Factorio), the threat becomes a cost of growth that players trade against output."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Scaling on wealth punishes building: RimWorld players practice wealth management, avoiding valuable furniture or art so raids stay small.",
      "Scaling on player level makes progression feel null when every enemy keeps pace, a common criticism of The Elder Scrolls IV: Oblivion.",
      "Proxies that ignore defensive investment let a cheap killbox beat budgets tuned for open combat, or let an undefended rich colony be overwhelmed.",
      "Opaque formulas read as the game cheating when a large attack follows a burst of growth."
    ],
    "family": "risk-failure",
    "feedback": "balancing",
    "id": "adaptive-threat-scaling",
    "legibility": 2,
    "math_basis": [
      "control-theory",
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Adaptive threat scaling",
    "open_questions": [
      "Can a learned estimate of actual defensive capability, such as a fast simulated raid against the current base, replace wealth proxies and remove the incentive to stay poor?",
      "What adaptation rate keeps tension stable without players perceiving rubber-banding?"
    ],
    "player_experience": "Success is answered by stronger opposition, so the player never fully escapes danger. Players learn to read what the game counts as strength and manage it: converting wealth into combat power instead of decoration, or holding back expansion. After a disaster, mercy terms give a breathing window that feels like the world easing off.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-rimworldwiki-2026-raid-points"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "stochastic-events"
    ],
    "summary": "Threat intensity is computed from a measure of the player's strength, such as wealth, population, time survived, or recent performance.",
    "synergy": [
      {
        "id": "storyteller-director",
        "note": "The director spends a threat budget that scales with wealth, keeping pressure proportional to success."
      },
      {
        "id": "raid-defense",
        "note": "Raids grow with the colony, so defenses must scale."
      }
    ],
    "tension": [
      {
        "id": "milestone-unlocks",
        "note": "One rewards growth, the other punishes it; tuning both sets the game's attitude to expansion."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "mule",
      "earliest_year": 1983,
      "incoming": {
        "involved_in": [
          "learned-build-assist",
          "placement-that-tells-stories"
        ],
        "used_by": [
          "anno-117",
          "islanders",
          "mule",
          "the-farmer-was-replaced"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "adjacency bonus",
      "neighbor bonus",
      "synergy radius"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Each placeable type has a table of signed effects from neighbor types within a footprint, ring, or radius. When an object is placed (and in some games when a neighbor later changes), its value is recomputed as a base plus the sum of qualifying neighbor contributions, sometimes capped or with diminishing returns. The value feeds score, production yield, or desirability. Islanders (2019) previews the points a building will earn from nearby buildings before it is placed, and points unlock new building packs. Civilization VI (2016) gives districts adjacency yields from neighboring terrain and districts, such as science for a Campus next to mountains and gold for a Commercial Hub next to a river. Tile-laying builders such as Dorfromantik score matching edges between neighboring tiles. The state is the placement map plus the effect table; the update is a local sum.",
    "design_levers": [
      "neighborhood shape: touching tiles, ring, or radius, and whether diagonals count",
      "size and asymmetry of the effect table, including negative pairs that force separation",
      "stacking rule for multiple neighbors: linear, capped, or diminishing",
      "whether values freeze at placement or recompute when neighbors change later",
      "how much of the calculation the preview shows before commitment"
    ],
    "dynamics": [
      "Clusters of mutually reinforcing types form districts, and nuisance types get pushed to edges or buffers.",
      "Scarce space turns adjacency into a packing problem in which early placements constrain later ones.",
      "When adjacency feeds unlocks or income, early good clusters compound into a lead."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Once players find the best repeating cluster, every settlement uses the same stamp and the spatial puzzle ends.",
      "Positive-only tables make maximum density always optimal, removing any reason to spread out.",
      "Hidden or partly shown effect tables push players to wikis and calculators to plan placements.",
      "Retroactive recomputation changes the value of old placements in ways players did not intend and cannot trace."
    ],
    "family": "space-construction",
    "feedback": "reinforcing",
    "id": "adjacency-scoring",
    "legibility": 4,
    "math_basis": [
      "optimization",
      "combinatorics"
    ],
    "maturity": "established",
    "name": "Adjacency scoring",
    "open_questions": [
      "Can a learned model of layout quality replace hand-written pairwise tables while staying predictable enough to plan against?",
      "What table size and asymmetry keep a solved cluster template from appearing within a few hours of play?"
    ],
    "player_experience": "Every placement is a small search problem with a visible answer. Players hover candidates to read preview numbers, reserve tiles for pieces they expect later, and feel clever when one placement lights up several neighbors. Penalties make them keep nuisances apart, so layouts acquire districts and buffers.",
    "player_interface": [
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "requires": [
      "free-placement"
    ],
    "sources": [],
    "status": "asserted",
    "substrate": [
      "cellular-grid",
      "rule-system"
    ],
    "summary": "A placement's value is computed from a table of bonuses and penalties for the placements around it.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "lemonade-stand",
      "earliest_year": 1973,
      "incoming": {
        "affected_by": [
          "human-behavior-simulation-models"
        ],
        "used_by": [
          "big-ambitions",
          "capitalism",
          "game-dev-story",
          "game-dev-tycoon",
          "lemonade-stand",
          "rollercoaster-tycoon",
          "two-point-hospital"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "marketing",
      "brand awareness",
      "hype",
      "advertising campaigns"
    ],
    "authoring_cost": 1,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-lemonade-stand"
        ],
        "text": "Lemonade Stand's daily inputs are glasses made, advertising signs, and price per glass, set against a weather report."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-two-point-hospital"
        ],
        "text": "In Two Point Hospital assistants run marketing."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns an awareness, brand, or hype stock per business, product, or venue and the rule that maps it onto customer traffic. Each period paid campaigns add to the stock with diminishing returns, and the stock decays toward a baseline when spending stops; its current level multiplies arrivals, the share of customers who consider the offering, or launch sales. Lemonade Stand (1973) reduces it to a daily input with no carryover: advertising signs bought before the day resolves raise sales alongside price and the weather. Two Point Hospital has assistants run marketing campaigns that bring in more patients. Capitalism and Game Dev Tycoon use advertising or marketing spend to build brand or pre-release hype. It differs from customer-value-choice, which owns how a customer who is already present chooses among offerings by price and value; this mechanic owns how many customers show up or consider the offering at all.",
    "design_levers": [
      "cost per campaign unit and campaign duration",
      "decay rate of awareness after spending stops",
      "saturation curve, or diminishing returns per unit spent",
      "targeting by customer segment, product, or condition",
      "whether awareness raises arrivals, conversion, or willingness to pay",
      "whether advertising can sell a poor product or only amplifies quality"
    ],
    "dynamics": [
      "Advertising raises traffic and revenue that fund more advertising, a reinforcing loop limited by saturation.",
      "Pre-release hype front-loads sales, so campaign timing and release timing couple.",
      "Extra arrivals load service capacity, so a campaign can create queues that lower satisfaction."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Linear returns make maximum advertising always correct and remove the decision.",
      "Effects too small to see in the statistics teach players to skip advertising entirely.",
      "Without decay, one early campaign buys permanent demand.",
      "Advertising that overrides quality lets poor products sell and undermines the product-quality systems."
    ],
    "family": "economy-finance",
    "feedback": "both",
    "id": "advertising-awareness",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Advertising and awareness",
    "open_questions": [
      "Could simulated customers with stated tastes respond to generated ad copy, making campaign content rather than only spend a lever?",
      "Which decay and saturation curves keep advertising a recurring decision instead of a one-time setting?"
    ],
    "player_experience": "Buying customers. The player decides how much to spend before the demand exists, watches arrivals rise and fall with each campaign, and learns that awareness fades: a store or game the market has forgotten needs fresh spending, while a strong brand lets prices rise.",
    "player_interface": [
      "parameter",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-lemonade-stand",
      "src-wikipedia-two-point-hospital"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "Spending on advertising raises a demand or awareness stock that decays without upkeep and scales how many customers arrive or buy.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "hamurabi",
      "earliest_year": 1968,
      "incoming": {
        "affected_by": [
          "llm-explanation-of-state",
          "on-device-language-models"
        ],
        "involved_in": [
          "causal-why-query",
          "explained-delegation"
        ],
        "used_by": [
          "black-and-white",
          "civilization",
          "hamurabi",
          "simcity-4",
          "suzerain",
          "theme-hospital"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 5,
      "technique_count": 2,
      "technique_exposure": 1.125
    },
    "ai_leverage": 4,
    "aliases": [
      "advisor council",
      "counselors",
      "department advisors"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-simcity-1989"
        ],
        "text": "The Super NES version of SimCity added Dr. Wright, an advisor character who appears to report problems in the city."
      }
    ],
    "compute_cost": 1,
    "definition": "An advisor layer watches a set of indicators (budget balance, unemployment, crime, service coverage, happiness, military strength) and maps threshold crossings or rule matches to authored messages spoken by a named character, usually with a recommended action. It owns no simulation state: only trigger conditions, a priority per message, cooldowns, and an optional persona per department. Each evaluation interval it tests its conditions, ranks firing messages by severity, suppresses those still on cooldown, and presents the top one as a pop-up, voiced line, or entry in an advisor panel the player opens on demand. Inputs are aggregate state variables; outputs are text and, in some games, a one-click link to the relevant tool. Canonical forms: the department advisors of SimCity 2000 and SimCity 4, the Super NES SimCity advisor Dr. Wright who appears to report city problems, the advisor screens of the Civilization series, and Tropico's Penultimo.",
    "design_levers": [
      "which indicators each advisor watches and the threshold or trend that triggers a message",
      "diagnosis only versus a concrete recommendation or a one-click fix",
      "one generalist advisor versus a council of department advisors with conflicting priorities",
      "delivery mode: interrupting pop-up, voiced line, or passive panel opened on demand",
      "cooldown and repetition rules per message",
      "accuracy: whether advisors read true state, a lagged view, or a view biased toward their department"
    ],
    "dynamics": [
      "Advisors act as an embedded tutorial whose value fades as the player's own causal model improves.",
      "Department advisors arguing for opposite policies externalize tradeoffs such as tax revenue versus satisfaction.",
      "When advice is trusted, player builds converge on what the advisor recommends, narrowing strategic variety."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "A message keeps firing while the player cannot act on it, so players mute or ignore the advisor entirely.",
      "Advice derived from a single indicator recommends the wrong fix when the cause is an interaction, such as more police when crime is driven by unemployment.",
      "Advisors that are always right reduce the player to following instructions; advisors that are often wrong teach players to ignore all advice.",
      "Lines written for early-game states become irrelevant or wrong at late-game scale."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "advisors",
    "legibility": 4,
    "math_basis": [
      "utility-decision",
      "information-theory"
    ],
    "maturity": "classic",
    "name": "Advisors",
    "open_questions": [
      "Can a language-model advisor grounded in live state queries answer arbitrary why-questions accurately enough to be trusted, and how should it express uncertainty?",
      "Does advice deliberately biased by an advisor's department or personality produce better decisions than neutral advice?"
    ],
    "player_experience": "The player gets a running diagnosis without reading every graph. Early on advisors teach which variables matter and what usually fixes them; later the player weighs advice against their own model, and conflicting advisors make tradeoffs explicit. Bad or repetitive advice is felt as nagging.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-wikipedia-simcity-1989"
    ],
    "status": "sourced",
    "substrate": [
      "ui-layer",
      "rule-system"
    ],
    "summary": "In-world advisor characters monitor simulation indicators, summarize problems, and recommend actions.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "creatures",
      "earliest_year": 1996,
      "incoming": {
        "affected_by": [
          "generative-agents",
          "llm-explanation-of-state"
        ],
        "involved_in": [
          "causal-why-query",
          "neural-npc-motion"
        ],
        "used_by": [
          "creatures",
          "generative-agents-smallville",
          "rimworld",
          "rollercoaster-tycoon",
          "species-alre"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 4,
      "technique_count": 2,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "inspect panel",
      "character sheet",
      "unit info panel"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Selecting an individual agent opens a live panel that reads that agent's internal state: need levels, mood and its itemized contributors, current action and its target, queued actions, skills, traits, relationships, health by body part, inventory, and sometimes a log of recent thoughts or events. The mechanic owns only the selection and which fields are exposed; it reads state owned by other mechanics and refreshes each tick or on change. Its key design property is whether it shows reasons (why the agent is doing this) or only values. Canonical forms: The Sims need bars and visible action queue, RimWorld's needs, health, and social tabs with each mood thought listed with its source and expiry, Dwarf Fortress unit thoughts and preferences sheets, and RollerCoaster Tycoon guest windows listing a guest's thoughts, cash, hunger, and nausea.",
    "design_levers": [
      "depth of exposure: raw meters, itemized reasons, or a full decision trace",
      "whether each reason lists its source, magnitude, and remaining duration",
      "live updating versus snapshot on open",
      "which variables stay hidden (true personality, latent potential) to preserve uncertainty",
      "whether every agent is inspectable or only a representative sample at large populations",
      "supporting affordances such as follow camera, thought bubbles, and pinned favorites"
    ],
    "dynamics": [
      "Players trace aggregate problems to individual causes, such as following one hauler to find a pathing bottleneck.",
      "Named, inspectable agents raise the emotional cost of loss, which strengthens permadeath and injury systems.",
      "Exposed reasons create pressure on designers to make the underlying model truthful, since players test it against what the panel says."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Panels with dozens of unranked numbers overwhelm players without telling them what matters.",
      "The panel shows state but not the decision rule, so behavior still looks random even after inspection.",
      "Inspection exposes shortcuts in the agent model; following citizens in SimCity (2013) revealed that agents took the nearest free home and job rather than keeping their own, undermining belief in individual citizens.",
      "At city scale inspecting one agent is unrepresentative, so players cannot diagnose aggregate problems from it."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "agent-inspection",
    "legibility": 4,
    "math_basis": [
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Agent inspection",
    "open_questions": [
      "For agents driven by language models, what inspection format (plans, memories, rationales) lets players predict behavior rather than just read it?",
      "How much reason exposure maximizes attachment before it turns agents into transparent spreadsheets?"
    ],
    "player_experience": "A crowd becomes individuals. When an agent misbehaves the player clicks it to find out why, reads the cause, and fixes the environment rather than the agent. Reading named thoughts and histories builds attachment and supplies the raw material for player stories.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "ui-layer",
      "agent-based"
    ],
    "summary": "Selecting an agent opens a panel that reveals its needs, mood contributors, current job, and the reasons behind its behavior.",
    "synergy": [
      {
        "id": "memories-thoughts",
        "note": "Inspection panels expose the thought list, converting hidden state into narrative."
      }
    ],
    "tuning_difficulty": 1,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "simtower",
      "earliest_year": 1994,
      "incoming": {
        "affected_by": [
          "alphaevolve-algorithm-discovery",
          "automated-playtesting",
          "deep-rl-npc-policies",
          "mean-field-games"
        ],
        "involved_in": [
          "mean-field-crowds"
        ],
        "required_by": [
          "hauling-jobs"
        ],
        "used_by": [
          "cities-skylines",
          "cities-skylines-2",
          "mini-metro",
          "prison-architect",
          "rollercoaster-tycoon",
          "screeps",
          "simcity-2013",
          "simtower",
          "songs-of-syx"
        ]
      },
      "prevalence": 9,
      "prevalence_rank": 70,
      "prevalence_share": 0.051,
      "subgenre_spread": 4,
      "technique_count": 4,
      "technique_exposure": 1.25
    },
    "ai_leverage": 2,
    "aliases": [
      "pathing",
      "navigation",
      "route finding"
    ],
    "authoring_cost": 2,
    "compute_cost": 3,
    "definition": "Owns a traversal representation (tile grid, navmesh, or waypoint graph) with per-cell or per-edge movement costs and permissions, plus each agent's current path or a shared direction field. On request a search returns a least-cost route from position to goal; A* (Hart, Nilsson, and Raphael, 1968) expands nodes by cost so far plus an admissible heuristic. Paths are invalidated and recomputed when the map changes or agents block each other. Scale variants trade exactness for speed: Factorio (2019) abstracts each 32x32 chunk into terrain components and runs a reverse resumable A* over them to supply the heuristic for tile-level A*; Supreme Commander 2 searches a portal graph between 10x10 m sectors and shares flow fields so many units read one direction field instead of each searching. Inputs: terrain and floor costs, doors and allowed areas, other agents. Outputs: routes, travel times, and occupancy along routes that feed hauling, traffic, and defense.",
    "design_levers": [
      "movement cost per terrain, floor, road, or door type",
      "search method and hierarchy (grid A*, navmesh, hierarchical abstraction, flow fields) and per-tick search budget",
      "repath triggers and frequency when the map or obstacles change",
      "local avoidance between agents (none, steering, reservation) versus passing through each other",
      "agent map knowledge and permissions (full map, explored only, allowed areas, locked doors)"
    ],
    "dynamics": [
      "Shortest-path choices concentrate trips on a few links, producing congestion that lowers throughput without any explicit traffic rule.",
      "Defenders shape attacker routes with walls and gaps, so layout itself becomes the defense mechanic.",
      "Travel time silently becomes the largest work cost, so compact bases and well-placed stockpiles dominate efficiency."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Agents take absurd detours or get stuck because the cost model or permissions disagree with what the player sees on screen.",
      "Repathing storms after map edits become a late-game slowdown on large colony and factory maps.",
      "Per-unit paths ignore other units and stall at chokepoints; Emerson describes Supreme Commander 2's earlier single-path system compounding collisions into stops.",
      "Deterministic pathing invites exploits such as mazes and wall-hugging layouts that trivialize threats."
    ],
    "family": "agents-behavior",
    "feedback": "none",
    "id": "agent-pathfinding",
    "legibility": 4,
    "math_basis": [
      "graph-search",
      "network-flow"
    ],
    "maturity": "classic",
    "name": "Agent pathfinding",
    "open_questions": [
      "Can learned crowd models or mean-field approximations replace per-agent search at city scale while preserving individual route choices?",
      "How much should paths reflect imperfect knowledge and preferences such as scenery or safety rather than shortest cost?"
    ],
    "player_experience": "The player notices pathfinding mostly through layout: where doors, stockpiles, and roads go decides how far agents walk. In defense play the player builds mazes that lengthen enemy routes; in colony sims the player winces as a colonist crosses the map for one item. Failures are visible and comic, so players learn the cost model by watching.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-hart-1968-astar",
      "src-wube-2019-fff-317-pathfinding",
      "src-emerson-2013-flow-field-tiles"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "cellular-grid",
      "agent-based"
    ],
    "summary": "Agents compute routes through space using movement costs, and the routes they choose shape congestion, travel time, and access.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 8,
      "earliest_game": "princess-maker-2",
      "earliest_year": 1993,
      "incoming": {
        "affected_by": [
          "voyager-skill-libraries"
        ],
        "involved_in": [
          "living-workforce-factories",
          "scientists-not-tech-trees"
        ],
        "used_by": [
          "aurora-4x",
          "bitburner",
          "car-mechanic-simulator-2021",
          "crusader-kings-3",
          "dwarf-fortress",
          "eco",
          "euro-truck-simulator-2",
          "eve-online",
          "fallout-shelter",
          "football-manager",
          "ftl",
          "game-dev-story",
          "game-dev-tycoon",
          "going-medieval",
          "house-flipper",
          "inzoi",
          "kenshi",
          "out-of-the-park-baseball",
          "oxygen-not-included",
          "paralives",
          "princess-maker-2",
          "project-hospital",
          "project-zomboid",
          "rimworld",
          "silent-hunter-3",
          "space-haven",
          "stardew-valley",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "theme-hospital",
          "two-point-hospital",
          "ultima-online",
          "valheim"
        ]
      },
      "prevalence": 35,
      "prevalence_rank": 7,
      "prevalence_share": 0.198,
      "subgenre_spread": 16,
      "technique_count": 1,
      "technique_exposure": 0.25
    },
    "ai_leverage": 2,
    "aliases": [
      "skill levels",
      "learning by doing",
      "experience levels"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Each agent holds an experience stock and level per skill. Doing a task adds experience at a rate scaled by learning modifiers; crossing thresholds raises the level, and some games decay unused high levels. Level feeds work speed, success or botch chance, output quality, and minimum-level gates. RimWorld uses levels 0-20; experience to the next level rises from 1,000 at level 0 to 30,000 at level 19; passion sets learning to 35% (none), 100%, or 150%; skills above 9 decay by 30 to 3,600 XP per day; a daily cap of 4,000 XP per skill cuts further gains to 20%; construction speed is 50% plus 15% per level; some backstories make pawns incapable of a work type. The Sims raises skills through objects such as bookshelves and easels and gates promotions on them; Dwarf Fortress dwarves improve by repeating labors. Inputs: task time, learning modifiers. Outputs: speed, quality, eligibility for tasks.",
    "design_levers": [
      "experience curve shape and level cap",
      "learning-rate modifiers such as passions, traits, age, and teachers",
      "decay of unused skills and daily learning caps",
      "effect curves per level on speed, quality, and failure chance",
      "hard gates (minimum level, incapable) versus soft penalties"
    ],
    "dynamics": [
      "Specialization snowballs: the best agent at a job gets assigned it, which raises that skill further and widens gaps.",
      "Losing a specialist opens a capability hole that forces retraining or recruitment; with permadeath this is a common crisis.",
      "Coupled with quality tiers, item value depends on who made it, so assignment becomes an economic decision."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Uncapped or linear growth turns every long-lived agent into a master, flattening differences between characters.",
      "Grinding: players set agents to repeat cheap tasks to farm experience, which RimWorld counters with a daily learning cap.",
      "Steep effect curves make low-skill recruits useless, so new agents are dead weight rather than trainees.",
      "Decay without clear feedback reads as random loss of competence."
    ],
    "family": "agents-behavior",
    "feedback": "both",
    "id": "agent-skills",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Agent skills",
    "open_questions": [
      "Can skills be represented as learned competence (policies that actually improve) rather than numeric multipliers, and does that change player attachment?",
      "Which decay and cap settings keep specialization meaningful without rewarding grinding?"
    ],
    "player_experience": "Agents become individuals with track records. The player assigns specialists, trains newcomers on low-stakes work, and feels the loss when a master crafter dies. Skill growth gives each character a slow progression arc that runs alongside the base's growth.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-rimworldwiki-2026-skills"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "aggregate-stocks"
    ],
    "summary": "Agents gain skill through practice or training, and skill sets work speed, quality, and access to tasks.",
    "synergy": [
      {
        "id": "staff-hiring",
        "note": "Hiring trades wage cost against skill, and skills grow with time on the roster."
      },
      {
        "id": "work-priorities",
        "note": "Priorities route skilled agents to the jobs they do best."
      },
      {
        "id": "quality-tiers",
        "note": "Skilled workers produce higher-quality goods."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "balance-of-power",
      "earliest_year": 1985,
      "incoming": {
        "involved_in": [
          "causal-why-query"
        ],
        "used_by": [
          "balance-of-power",
          "plague-inc",
          "tamagotchi"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "notifications",
      "letters",
      "announcements",
      "event log"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "The feed subscribes to simulation events (raid arrived, agent died, contract completed) and to condition predicates over state (food below a threshold, building unpowered, storage full, entity damaged). It owns a list of active alerts, each with type, severity, timestamp, a deduplication key, a location or entity link, and a lifetime. Each tick it adds an alert on the rising edge of a predicate or on an event, merges alerts with the same key, removes condition alerts when the condition clears, and expires event alerts after a timeout or dismissal. Optional rules pause the game or drop speed on chosen types. Canonical forms: RimWorld's severity-colored event letters plus a persistent condition list (low food, colonist needs rescue), Factorio alerts for entities under attack or destroyed, trains out of fuel, and ghosts lacking construction materials, problem icons over buildings and the Chirper feed in Cities: Skylines, Dwarf Fortress announcements, and the Football Manager inbox.",
    "design_levers": [
      "event alerts versus persistent condition alerts that clear themselves",
      "severity tiers, color, and sound per alert type",
      "auto-pause or speed-drop rules per alert type",
      "aggregation: one alert for many identical problems versus one per entity",
      "persistence until dismissed versus until the condition clears",
      "click-through to location and player-side filtering",
      "in-fiction framing (social posts, letters) versus neutral system text"
    ],
    "dynamics": [
      "The alert set encodes what the designer considers a problem, so players optimize to keep icons off rather than toward their own goals.",
      "With auto-pause, alert density sets the effective pacing of a real-time game.",
      "Paired with an event director, alerts announcing incident arrival create a recognizable beat structure of calm, alarm, and response."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Alert fatigue: frequent low-value alerts bury the one that matters, and players miss a fatal problem.",
      "In-fiction feeds read as noise; many Cities: Skylines players hid the Chirper feed with mods.",
      "Predicates near a threshold, such as power just at capacity, flicker and spam add and remove cycles.",
      "Alerts that report symptoms (no goods) rather than causes send players to fix the wrong thing."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "alerts-feed",
    "legibility": 4,
    "math_basis": [
      "information-theory"
    ],
    "maturity": "classic",
    "name": "Alerts feed",
    "open_questions": [
      "Can a learned salience model rank and merge alerts by predicted consequence so the feed stays useful at megabase or metropolis scale?",
      "Do natural-language digests of many alerts help players more than icons, or do they slow reaction time?"
    ],
    "player_experience": "In a system too large to watch, the feed decides where the player looks. The player triages, jumps the camera to the alert, and learns to dread specific alert types. Auto-pause on alerts turns real-time play into a series of decision points.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "ui-layer",
      "rule-system"
    ],
    "summary": "A notification layer surfaces discrete events and threshold crossings with severity and a link to their location.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "harvest-moon",
      "earliest_year": 1996,
      "incoming": {
        "used_by": [
          "autonauts",
          "farming-simulator-25",
          "going-medieval",
          "harvest-moon",
          "minecraft",
          "oxygen-not-included",
          "stardew-valley",
          "valheim",
          "viva-pinata"
        ]
      },
      "prevalence": 9,
      "prevalence_rank": 70,
      "prevalence_share": 0.051,
      "subgenre_spread": 6,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "livestock",
      "ranching",
      "animal breeding"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Owns a herd of individual animals or a count per species, each with growth stage, food state, often affection or mood, and sometimes pregnancy and genes. Each day animals eat from grazing or stored fodder, grow toward maturity, and roll for products such as milk, eggs, or wool and for births; care actions raise affection or mood, which scales yield and quality. Stardew Valley tracks friendship from 0 to 1000 and mood from 0 to 255: unfed animals stop producing but do not die, mood under 70 can skip production, quality products need mood 150, and a nightly birth check governs pregnancies. RimWorld and Dwarf Fortress breed animals that must be fed, sheltered, trained, or slaughtered; Farming Simulator ties livestock productivity to feed. Inputs are feed, housing, and care; outputs are products, meat, and offspring.",
    "design_levers": [
      "feed requirement per animal and the balance between grazing and stored fodder",
      "time to maturity and product cycle per species",
      "how care, mood, and affection scale yield and quality",
      "breeding rate and population caps from housing size",
      "losses: disease, predators, exposure, slaughter decisions"
    ],
    "dynamics": [
      "Feed demand links husbandry to crop fields and storage, especially before winter.",
      "Herds become targets for predators and raids, requiring fences and defense.",
      "Breeding for traits ties husbandry to inheritance and long-term planning."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Unchecked breeding produces runaway herds that eat all fodder and then starve, a recurring colony-sim problem.",
      "Daily care actions with no decisions become chores players automate away or abandon.",
      "Animals that can never die or fall ill turn husbandry into passive income."
    ],
    "family": "biology-health",
    "feedback": "both",
    "id": "animal-husbandry",
    "legibility": 4,
    "math_basis": [
      "population-dynamics",
      "genetics-evolution",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Animal husbandry",
    "open_questions": [
      "Can learned animal behavior and animation make individually simulated livestock expressive enough to deepen attachment without bespoke animation per species?"
    ],
    "player_experience": "Routine care with compounding returns. The player builds pens and barns, keeps feed stocked through winter, and turns daily tending into reliable income. Animals can become personal: named, petted, and missed when lost to a predator or a hard winter.",
    "player_interface": [
      "direct-manipulation",
      "placement",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-stardewvalleywiki-2026-animals"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "aggregate-stocks"
    ],
    "summary": "Domestic animals are housed, fed, tended, and bred, and they yield products whose quantity and quality depend on their care.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "the-sims-2",
      "earliest_year": 2004,
      "incoming": {
        "affected_by": [
          "generative-agents"
        ],
        "used_by": [
          "the-sims-2",
          "the-sims-3",
          "the-sims-4"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 1,
      "technique_count": 1,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "wants and fears",
      "wishes",
      "whims",
      "life goals"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-the-sims-2",
          "src-wikipedia-the-sims-3"
        ],
        "text": "The Sims 2 gives each Sim an aspiration with wants and fears, and an elder's remaining lifespan depends on the aspiration meter; The Sims 3 replaced wants and fears with wishes that pay Lifetime Happiness."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-the-sims-4"
        ],
        "text": "The Sims 4 adults take a bonus trait from their chosen aspiration."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns, per agent, a long-term aspiration (a goal type such as family, knowledge, or fortune), a few open want slots, sometimes paired with fear slots, and a reward stock. A generator refills empty slots by sampling wants from a pool weighted by aspiration, traits, life stage, needs, and recent events; each want is a predicate over simulation state (make a friend, gain a skill level, get promoted) with a point value. When a predicate becomes true the want pays its points and leaves its slot, and a realized fear subtracts. Points feed a meter that shifts mood or behavior and usually a currency for rewards. The Sims 2 set the form: the aspiration biases which wants and fears appear, fulfilled wants fill the aspiration meter, and an elder's remaining lifespan depends on that meter. The Sims 3 replaced it with wishes that pay Lifetime Happiness, and The Sims 4 ties a bonus trait and a goal track to the chosen aspiration. Wants do not decay like needs; unlike a career ladder they are generated from state rather than authored as a fixed sequence, and unlike villager requests they are the agent's own goals.",
    "design_levers": [
      "number of open slots and whether fears exist alongside wants",
      "reroll, lock, and dismiss rules for slots",
      "generator weights by aspiration, traits, life stage, and recent events",
      "point value per want and what points buy (meter effects, reward objects, traits)",
      "difficulty and time horizon of individual wants relative to play pace",
      "whether unmet wants cost anything or simply expire"
    ],
    "dynamics": [
      "Players chase wants that line up across household members, so generated goals couple separate characters' days.",
      "Wants seeded by recent events (a promotion, a new baby) create follow-on arcs, an informal story chain driven by state.",
      "Points buy rewards that make later wants easier to meet, a reinforcing loop toward a comfortable late game."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Wants that need unavailable or off-lot actions clutter the slots and teach players to ignore the panel.",
      "Cheap repeatable wants let players farm points, so the reward store empties early and the meter stops mattering.",
      "Generators that ignore context produce incoherent wants, such as wanting a first date the day after a spouse dies, which breaks the illusion of a mind.",
      "Too many slots turn the panel into a checklist with no choice in it."
    ],
    "family": "agents-behavior",
    "feedback": "reinforcing",
    "id": "aspiration-wants",
    "legibility": 4,
    "math_basis": [
      "utility-decision",
      "markov-stochastic"
    ],
    "maturity": "established",
    "name": "Aspirations and wants",
    "open_questions": [
      "Can a language model write wants from an agent's memories and relationships while keeping each want checkable as a predicate over game state?",
      "Do fears add enough drama to justify goals the player cannot fully prevent from failing?"
    ],
    "player_experience": "A stream of small, personal goals. The player reads what each character wants right now, plans the day around one or two of them, and collects a payout when they land, so an open sandbox gains a to-do list that comes from the character rather than the designer. Fears add dread: the player steers away from events the character would hate.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-the-sims-2",
      "src-wikipedia-the-sims-3",
      "src-wikipedia-the-sims-4"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system",
      "stochastic-events"
    ],
    "summary": "An agent's long-term aspiration and current state generate short-horizon wants, and sometimes fears, whose fulfillment pays into a reward meter or currency.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "nintendogs",
      "earliest_year": 2005,
      "incoming": {
        "involved_in": [
          "agent-ambassadors-async"
        ],
        "used_by": [
          "nintendogs",
          "simcity-2013",
          "tomodachi-life",
          "viva-pinata"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "asynchronous multiplayer",
      "region play",
      "shared region"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each player runs a local simulation that publishes a small exported state to a server, such as surplus resources, service capacity, pollution, or a snapshot of a town, and periodically imports neighbors' exported state as boundary conditions. Exchanges resolve with delay, so play does not require both players online at once. In SimCity (2013), cities in a region connect by highways, rail, and waterways, trade resources, share services such as garbage collection or health care, see traffic and pollution cross borders, and pool wealth into Great Works such as an arcology; the connection was asynchronous, with brief disruptions tolerated. Animal Crossing island visits and Death Stranding's shared structures are related forms. Inputs: local surpluses and needs. Outputs: imported flows and shared projects.",
    "design_levers": [
      "which variables are exported and imported (goods, services, pollution, visitors)",
      "synchronization interval and conflict resolution",
      "region size and how neighbors are matched (friends, public, random)",
      "shared projects that require pooled contributions",
      "fallback behavior when the server or a neighbor is offline"
    ],
    "dynamics": [
      "Specialization emerges: one city goes industrial or hosts the hospital and the others import those services.",
      "Externalities such as pollution and traffic cross borders, creating friction between players who never speak.",
      "Shared projects create focal points that coordinate otherwise independent players."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Server dependence makes single-player play fragile; SimCity (2013) launched with outages and save problems, and an offline mode came later.",
      "Abandoned neighbor cities leave dependent players short of the services they relied on.",
      "Small play areas forced by the region design made specialization a necessity rather than a choice, which players criticized."
    ],
    "family": "multiplayer-persistence",
    "feedback": "both",
    "id": "async-shared-region",
    "legibility": 3,
    "math_basis": [
      "network-flow",
      "game-theory"
    ],
    "maturity": "established",
    "name": "Asynchronous shared regions",
    "open_questions": [
      "Can AI-controlled stand-in neighbors, trained on real player cities, keep regions alive when players leave?",
      "What exchange latency preserves the feeling of a shared region while keeping each player's simulation independent?"
    ],
    "player_experience": "The player is part of a neighborhood without coordinating schedules. They specialize, relying on neighbors for what they lack, and notice others' choices arrive as traffic, pollution, or help. Cooperation feels light because commitments are small and delayed.",
    "player_interface": [
      "parameter",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-wikipedia-simcity-2013"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "aggregate-stocks"
    ],
    "summary": "Separate players' simulations affect each other asynchronously through shared regions, visits, or exchanges of goods and services.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "out-of-the-park-baseball",
      "earliest_year": 1999,
      "incoming": {
        "affected_by": [
          "massively-parallel-simulation",
          "simulation-based-inference"
        ],
        "used_by": [
          "football-manager",
          "motorsport-manager",
          "out-of-the-park-baseball"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 1,
      "technique_count": 2,
      "technique_exposure": 0.2
    },
    "ai_leverage": 3,
    "aliases": [
      "match engine",
      "sim engine",
      "play-by-play simulation"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Owns the state of a contest in progress (score, clock, possession or positions, fatigue, morale) and each participant's attribute vector and tactical instructions. Each step the engine selects the next event (pass, shot, pitch, overtake) and resolves it by sampling probabilities computed from the involved participants' attributes, the tactics in force, fatigue, and context, then updates state and emits commentary or animation. Football Manager, which continues the Championship Manager series begun in 1992, renders its engine as text, as a 2D pitch from Football Manager 2005, and in 3D from Football Manager 2009; Out of the Park Baseball reports simulated games as text play-by-play; Motorsport Manager resolves races from driver and car ratings with player pit and pace calls. Inputs: lineups, attributes, tactics, in-match interventions. Outputs: results, per-participant statistics, injuries, and form that feed rosters, morale, and finances.",
    "design_levers": [
      "event granularity (per possession, per pitch, per lap) and how many events are rendered to the player",
      "mapping from attributes to event probabilities and the weight of randomness relative to ratings",
      "tactical instruction set and how strongly each instruction shifts event probabilities",
      "fatigue, morale, and home-advantage modifiers",
      "in-match interventions such as substitutions, touchline shouts, and pit calls"
    ],
    "dynamics": [
      "Results feed morale, form, finances, and transfers, so streaks compound into dynasties or collapses.",
      "Communities reverse-engineer engine weights into a tactical meta, which yearly engine revisions then disrupt.",
      "Simulated statistics become scouting data, coupling the engine to player valuation and transfer markets."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "One tactic or formation dominates because the engine overweights a parameter, and the player community converges on it.",
      "Low-variance engines make results feel predetermined by ratings; high-variance engines make tactics feel irrelevant.",
      "Rendered visuals that disagree with the underlying event logic undermine trust in the simulation.",
      "Players cannot tell bad luck from bad decisions because the attribute-to-outcome mapping is opaque."
    ],
    "family": "agents-behavior",
    "feedback": "none",
    "id": "attribute-match-engine",
    "legibility": 2,
    "math_basis": [
      "markov-stochastic",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Attribute-driven match engine",
    "open_questions": [
      "Can event models trained on real tracking or event data replace hand-tuned probabilities while keeping tactics legible to players?",
      "Can generated commentary explain why an event happened in terms of attributes and tactics, so players can separate luck from decisions?"
    ],
    "player_experience": "The player is the coach in the stands: setting lineups and tactics, watching a sampled stream of events, and reading results as evidence about whether decisions worked. Upsets feel earned or cruel; across a season noisy results become stories about form, slumps, and tactical identity.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-wikipedia-football-manager",
      "src-wikipedia-out-of-the-park-baseball"
    ],
    "status": "sourced",
    "substrate": [
      "stochastic-events",
      "agent-based"
    ],
    "summary": "Contest outcomes are simulated play by play from participant attributes, tactics, and randomness instead of being played directly.",
    "synergy": [
      {
        "id": "scouting-knowledge",
        "note": "Hidden attributes make scouting valuable because they drive simulated outcomes (Football Manager)."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "mule",
      "earliest_year": 1983,
      "incoming": {
        "affected_by": [
          "imperfect-information-solvers"
        ],
        "involved_in": [
          "ai-liquidity-in-player-markets"
        ],
        "used_by": [
          "car-mechanic-simulator-2021",
          "house-flipper",
          "mule",
          "offworld-trading-company"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.25
    },
    "ai_leverage": 3,
    "aliases": [
      "bidding",
      "auction house"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns a lot (item, quantity, optional reserve price), the standing bids, and a clock. Bidders submit or raise bids under a format: ascending open outcry, sealed bid, descending price, or a timed listing with a buyout price. When the clock ends or no bidder will go higher, the rule assigns the lot to the winner, transfers money, and settles fees. AI bidders bid up to a valuation computed from their needs and cash. M.U.L.E. (1983) runs real-time auctions for each resource, breaks ties in favor of the trailing player, and lets players who withhold supply raise prices on later turns; its designers replaced land auctions with one free plot per turn because auctioning land fed a runaway loop. MMO auction houses such as World of Warcraft's use timed listings with a minimum bid and an optional buyout price.",
    "design_levers": [
      "auction format (ascending, sealed-bid first or second price, descending, timed listing with buyout)",
      "tie-breaking and catch-up rules, such as awarding ties to the trailing player",
      "reserve prices, minimum increments, and listing fees or deposits that act as money sinks",
      "auction duration and whether bidding happens in real time or between turns",
      "AI bidder valuation function and how much cash it holds back",
      "which goods are auctioned versus sold at fixed prices or granted for free"
    ],
    "dynamics": [
      "Withholding supply from an auction raises clearing prices on later rounds, enabling deliberate shortage play.",
      "Bidding wars between two rivals let a third party buy cheaply elsewhere.",
      "Reserve prices and fees act as money sinks that slow inflation in persistent economies."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Auctioning productive assets such as land lets the richest player buy more production, the snowball M.U.L.E.'s designers removed by granting free plots.",
      "AI bidders with simple valuation rules can be baited into overpaying or never compete, so auctions become trivial.",
      "Long timed auctions in MMOs reward bots and last-second sniping over judgment.",
      "Collusion between human bidders suppresses prices when the rules cannot detect it."
    ],
    "family": "economy-finance",
    "feedback": "reinforcing",
    "id": "auctions",
    "legibility": 4,
    "math_basis": [
      "mechanism-design",
      "game-theory"
    ],
    "maturity": "established",
    "name": "Auctions",
    "open_questions": [
      "Can LLM bidders with private valuations and bluffing make single-player auctions as tense as multiplayer ones?",
      "Which catch-up rules (tie-breaks, budget caps) prevent auction snowballs without feeling arbitrary?"
    ],
    "player_experience": "Reading rivals. The player estimates what a lot is worth to each competitor, decides how far to push the price, and feels the sting of overpaying or the relief of a bargain. In real-time formats such as M.U.L.E. bidding is a test of nerve and timing; in timed listings it becomes patient sniping and undercutting.",
    "player_interface": [
      "parameter",
      "embodied-skill"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-wikipedia-mule"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based"
    ],
    "summary": "Goods, land, or rights are allocated by bidding procedures in which players or agents compete on price under rules for timing, ties, and reserves.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "the-sims",
      "earliest_year": 2000,
      "incoming": {
        "used_by": [
          "rimworld",
          "the-sims",
          "the-sims-4"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "free will setting",
      "autonomy slider"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns a global, per-agent, or per-category autonomy setting that gates which actions an agent may select for itself. Each decision cycle the setting filters or reweights the candidate set before action selection: at full autonomy the agent chooses among all actions; at reduced levels only urgent self-care or specific categories remain; at zero the agent idles until ordered. Player orders always take precedence while queued. The Sims (2000) exposes free will as an option, and even with it on, Sims need orders to pay bills, find jobs, exercise, or conceive. RimWorld's drafting switches a colonist from self-assigned work to direct control for combat or emergencies. Inputs: the setting, the order queue, urgency of needs. Outputs: the share of agent time under player versus agent control.",
    "design_levers": [
      "number of levels and whether the setting is global, per agent, or per action category",
      "which actions stay autonomous at each level (survival needs, social, self-care)",
      "override rules when player orders conflict with urgent needs",
      "quality of autonomous choices (competent versus deliberately flawed agents)"
    ],
    "dynamics": [
      "Players run mixed teams of puppets and free agents, adjusting per character and per crisis.",
      "Low-autonomy play exposes needs systems as chores, while high-autonomy play exposes utility-scoring quirks as personality.",
      "With permadeath, the choice to delegate during danger (drafting colonists for a raid) becomes a risk decision."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Autonomous choices are worse than the player's, so players turn autonomy off and drown in micromanagement.",
      "Autonomy that is too competent removes the player's role and turns the game into a screensaver.",
      "Agents override intent at bad moments, such as wandering off mid-task, which reads as disobedience rather than personality.",
      "Unclear boundaries between autonomous and ordered actions make failures hard to attribute."
    ],
    "family": "agents-behavior",
    "feedback": "none",
    "id": "autonomy-levels",
    "legibility": 4,
    "math_basis": [
      "utility-decision"
    ],
    "maturity": "established",
    "name": "Autonomy levels",
    "open_questions": [
      "Can language-model agents accept intent-level delegation (keep the house running during the party) as a richer replacement for discrete autonomy levels?",
      "Do players attach more strongly to agents they control or to agents they watch, and which autonomy setting maximizes attachment?"
    ],
    "player_experience": "Lets the player choose how much to micromanage. High autonomy turns play into arranging and watching; low autonomy turns it into puppetry with responsibility for every need. Players switch per situation: autonomy for routine life, manual control for crises and set pieces.",
    "player_interface": [
      "parameter",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-wikipedia-the-sims"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "The degree to which agents act on their own is adjustable, from full free will to explicit commands only.",
    "tension": [
      {
        "id": "unit-commands",
        "note": "Agents with strong free will resist direct commands; designers must decide who is in charge."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "capitalism",
      "earliest_year": 1995,
      "incoming": {
        "involved_in": [
          "teachable-sim-companion"
        ],
        "used_by": [
          "anno-1800",
          "capitalism",
          "dyson-sphere-program",
          "factorio",
          "garrys-mod",
          "mindustry",
          "planet-coaster",
          "satisfactory",
          "shapez-2",
          "space-engineers",
          "the-sims-4"
        ]
      },
      "prevalence": 11,
      "prevalence_rank": 56,
      "prevalence_share": 0.062,
      "subgenre_spread": 7,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "templates",
      "stamps",
      "copy-paste building",
      "prefabs"
    ],
    "authoring_cost": 1,
    "claims": [
      {
        "confidence": "high",
        "sources": [
          "src-wube-2016-fff-170-blueprint-library"
        ],
        "text": "Factorio's blueprint library keeps a player's blueprints across saves, shares them with other players in multiplayer, and separately holds save-specific game blueprints."
      }
    ],
    "compute_cost": 1,
    "definition": "A blueprint is a saved snapshot of a region's entities with relative positions, rotations, and configuration (recipes, filters, circuit settings, sometimes tiles). State owned: a library of blueprints plus placed ghosts awaiting construction. Capture copies selected entities into a blueprint; stamping projects its entities at a cursor with rotation or mirroring, checks placement validity, and creates ghost build orders that construction agents or the player fulfill. Export serializes a blueprint to a string or file that other players can import. Canonical form: Factorio blueprints, blueprint books, a personal library that persists across saves and is visible to other players in multiplayer, and exchange strings used by community sites. Others: Dyson Sphere Program and Satisfactory blueprints, Mindustry schematics shared as text, and Space Engineers ship blueprints rebuilt through projectors.",
    "design_levers": [
      "unlock timing: available from the start or gated behind progression such as construction robots",
      "what is captured: entities only or also configuration, tiles, and logic",
      "parameterized blueprints that substitute items or values at placement",
      "sharing scope: within a save, across saves, or exported strings and workshop integration",
      "who fulfills placed ghosts: the player by hand or automated builders",
      "validity rules when stamping over obstacles or partial resources"
    ],
    "dynamics": [
      "Modular, tileable designs become dominant because they stamp cleanly, shaping the visual language of player bases.",
      "Shared blueprint strings create a design culture of named, versioned community layouts.",
      "Stamping lowers the marginal cost of expansion, so growth becomes limited by resources and logistics rather than player time."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Imported meta designs replace the core puzzle, and players report feeling they are executing other people's solutions.",
      "Late unlock makes the repetitive early game tedious and drives players to mods.",
      "Blueprints that break when stamped into slightly different terrain or orientation cost more time than rebuilding by hand."
    ],
    "family": "control-automation",
    "feedback": "reinforcing",
    "id": "blueprints",
    "legibility": 5,
    "math_basis": [
      "combinatorics",
      "optimization"
    ],
    "maturity": "established",
    "name": "Blueprints",
    "open_questions": [
      "Can generative models produce valid blueprints from a goal such as a 45 per second green circuit block, and does that remove or relocate the design puzzle?",
      "How should parameterized blueprints be represented so designs adapt to terrain and recipes without becoming full programming?"
    ],
    "player_experience": "Solving a layout once is enough. The player designs a module carefully, then scales it by stamping, which moves attention from placing pieces to designing systems. Imported community designs let newcomers skip solved problems; some players feel that copying removes the puzzle.",
    "player_interface": [
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-wube-2016-fff-170-blueprint-library"
    ],
    "status": "sourced",
    "substrate": [
      "player-authored-logic",
      "rule-system"
    ],
    "summary": "Player-made layouts can be saved, stamped as build orders, copied, and shared as text or files.",
    "synergy": [
      {
        "id": "conveyor-transport",
        "note": "Stamping solved belt layouts lets players scale proven designs instead of re-solving them."
      },
      {
        "id": "content-sharing",
        "note": "Shareable blueprint strings created whole communities of design exchange."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "out-of-the-park-baseball",
      "earliest_year": 1999,
      "incoming": {
        "used_by": [
          "football-manager",
          "motorsport-manager",
          "out-of-the-park-baseball"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "job security",
      "owner expectations",
      "board expectations",
      "sacking"
    ],
    "authoring_cost": 2,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-football-manager",
          "src-wikipedia-football-manager-2005"
        ],
        "text": "In Football Manager the board judges the manager's performance."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns a set of expectations (league finish, cup progress, budget balance, profit, playing style, youth development) imposed or agreed at the start of a season or term, and a confidence stock held by an evaluator such as a board, owner, chairman, or fan base. After each match, report, or period the stock moves by the gap between results and expectations, weighted by importance and recency; crossing warning levels triggers meetings, ultimatums, or budget cuts, and falling below the floor ends the job. Expectations are re-set from the organization's reputation and resources, so success raises the bar. Football Manager has the board judge the manager's performance and, with fan confidence, decide whether the manager is sacked; other sports management games set owner or chairman goals for each season. It differs from elections, where an electorate decides tenure at fixed dates, and from scenario-objectives, which test a fixed goal at a deadline; here a continuously updated stock can end the job at any time.",
    "design_levers": [
      "how expectations are set: imposed from reputation or negotiated with the player",
      "weight per result and how fast older results fade",
      "warning thresholds and the events they trigger (meetings, ultimatums, budget cuts)",
      "firing threshold and whether the player continues in a new job",
      "separate evaluators (board, owner, fans) and how they combine",
      "grace period after hiring"
    ],
    "dynamics": [
      "Players manage expectations as well as results, for example by accepting modest targets to buy safety.",
      "High-variance match engines produce sudden sackings that become career stories.",
      "Being fired and hired by another club turns failure into a career path instead of a game over."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Expectations re-set too aggressively after success make long tenures impossible, punishing good play.",
      "Sackings driven by short streaks feel arbitrary when simulated results have high variance.",
      "Confidence that forgives too easily makes the threat vanish after one good season.",
      "Hidden weights leave players unsure which goal actually matters."
    ],
    "family": "risk-failure",
    "feedback": "balancing",
    "id": "board-confidence",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Board confidence",
    "open_questions": [
      "Can language-model board members with distinct priorities negotiate expectations with the player in conversation and remember broken promises?",
      "What weighting of recent results makes sackings feel deserved under a high-variance match simulation?"
    ],
    "player_experience": "A clock on the player's job. Every result moves a meter the player does not fully control, so a run of bad form becomes existential and a promised top-four finish hangs over every match. Success raises expectations, so security never fully arrives.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-football-manager",
      "src-wikipedia-football-manager-2005"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "An evaluator such as a board, owner, or chairman sets expectations, updates a confidence stock from results against them, and fires the player below a threshold.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "lemonade-stand",
      "earliest_year": 1973,
      "incoming": {
        "involved_in": [
          "participatory-planning-sandboxes"
        ],
        "required_by": [
          "loans-debt",
          "taxation"
        ],
        "used_by": [
          "aurora-4x",
          "contraband-police",
          "equilinox",
          "euro-truck-simulator-2",
          "football-manager",
          "game-dev-story",
          "game-dev-tycoon",
          "kerbal-space-program",
          "lemonade-stand",
          "motorsport-manager",
          "out-of-the-park-baseball",
          "papers-please",
          "pc-building-simulator",
          "pocket-city",
          "princess-maker-2",
          "prison-architect",
          "project-hospital",
          "rebel-inc",
          "simcity-1989",
          "simcity-2000",
          "simcity-2013",
          "simcity-4",
          "simtower",
          "suzerain",
          "terra-nil",
          "the-sims",
          "tropico-6",
          "utopia",
          "victoria-3"
        ]
      },
      "prevalence": 29,
      "prevalence_rank": 10,
      "prevalence_share": 0.164,
      "subgenre_spread": 13,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "treasury",
      "cash flow",
      "budget panel"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns one money stock and a ledger of flow categories. Each accounting period income (taxes, fees, sales, trade) is added and expenses (upkeep, wages, service funding, interest) are subtracted. Players often set a funding fraction per department, and service effectiveness scales with it. In Micropolis, the open-source SimCity engine, the collection every 48 city-time steps computes revenue = population x average land value / 120 x tax rate x a difficulty factor, sets required police and fire funds at 100 per station and road funds per road and rail tile, and converts the fraction actually paid into RoadEffect (0-32) and PoliceEffect and FireEffect (0-1000), so underfunded roads decay and coverage shrinks. A negative balance leads to loans, bonds, bankruptcy, or game over; SimCity 2000 ends the game after extreme deficit spending.",
    "design_levers": [
      "accounting period length and whether flows post continuously or at fixed ticks",
      "which expense categories are player-adjustable and how effectiveness scales with the funding fraction",
      "upkeep per building relative to the revenue it enables",
      "consequence of a negative balance (borrowing, forced cuts, bankruptcy, or game over)",
      "how much ledger detail and forecasting the interface shows"
    ],
    "dynamics": [
      "Surpluses fund expansion that raises both revenue and upkeep, so cash pressure returns at each growth stage.",
      "Underfunding one service degrades a dependent system (roads, crime, fires), which later lowers the revenue base.",
      "Periodic settlement creates sawtooth cash curves and end-of-period scrambles."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Upkeep that scales slower than revenue makes money irrelevant by mid-game, a common complaint about Cities: Skylines.",
      "Funding sliders whose effects are delayed or hidden teach players to cut services without visible cost until a collapse.",
      "Fixed upkeep with no link to growth produces an early cash trap with no recovery path."
    ],
    "family": "economy-finance",
    "feedback": "both",
    "id": "budget-treasury",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Treasury and budget",
    "open_questions": [
      "Can an LLM advisor explain a deficit as a causal chain through the ledger well enough to replace spreadsheet-style budget panels?",
      "What upkeep-to-revenue curve keeps money a meaningful constraint into the late game?"
    ],
    "player_experience": "Periodic reckoning. The player watches a running balance and a monthly or yearly ledger, trims service budgets to stay solvent, and decides when a surplus should become new construction. Shortfalls show up as visible decay: crumbling roads, slower fire response, unpaid staff.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-hopkins-2008-micropolis",
      "src-wikipedia-simcity-2000"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "A money stock with income and expense flows such as taxes, upkeep, wages, and service funding; a negative balance leads to debt or failure.",
    "synergy": [
      {
        "id": "loans-debt",
        "note": "Debt extends the treasury in time, trading future flexibility for present growth."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "oxygen-not-included",
      "earliest_year": 2017,
      "incoming": {
        "used_by": [
          "captain-of-industry",
          "oxygen-not-included",
          "satisfactory"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "waste products",
      "secondary outputs",
      "garbage"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "A recipe or activity emits one or more secondary outputs alongside its primary product, at a fixed ratio per cycle or per capita. The byproduct accumulates in a local output buffer or tile stock; when that stock hits a cap, the producer stalls, degrades, or releases it into the environment. The player must route it to a consumer, a sink (incinerator, landfill, vent), or a converter. In Oxygen Not Included a Natural Gas Generator burning 90 g/s of natural gas yields 800 W plus 67.5 g/s of polluted water and 22.5 g/s of carbon dioxide that must be piped away or vented into the base. In Factorio oil processing yields heavy oil, light oil, and petroleum gas together, so an unconsumed output backs up and halts the refinery. In Cities: Skylines buildings generate garbage that trucks must collect or it accumulates and flags the building as a problem. Inputs: production cycles or population. Outputs: a waste stock and an impairment signal (stall, pollution, illness, abandonment).",
    "design_levers": [
      "byproduct ratio per cycle and whether it scales with efficiency upgrades",
      "buffer size before the producer stalls or starts releasing waste into the environment",
      "whether the byproduct is pure waste, a sellable good, or an input to another chain",
      "available sinks and their costs, such as incinerators, landfills, vents, or voiding",
      "the impairment when unhandled: production stall, pollution, disease, morale loss, or abandonment"
    ],
    "dynamics": [
      "Waste outputs become inputs elsewhere, so industrial clusters form around reuse loops (polluted water to a water sieve in Oxygen Not Included, heavy oil cracked to light oil in Factorio).",
      "Disposal capacity becomes a hidden ceiling on growth, separate from input supply.",
      "Coupled with pollution spread, unhandled byproducts shift cost onto neighbors and land value.",
      "Players overbuild storage for byproducts as a buffer, trading space for time before the next fix."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A cheap sink that destroys anything removes the problem and turns the mechanic into a one-time build tax.",
      "Byproducts with no use and no penalty become clutter that players ignore.",
      "Fixed-ratio multi-output recipes deadlock silently when one output has no consumer, and the stall appears far from its cause.",
      "Waste that only matters late, such as a full landfill or spent nuclear fuel, surprises players who built for hours without a disposal plan."
    ],
    "family": "resources-production",
    "feedback": "balancing",
    "id": "byproducts-waste",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "established",
    "name": "Byproducts and waste",
    "open_questions": [
      "Can a generative chemistry model produce byproduct sets for new recipes that stay balanced without hand tuning?",
      "What ratio of waste to useful output keeps disposal a design problem rather than a chore?"
    ],
    "player_experience": "Every new building arrives with a cleanup problem attached. The player learns to ask where the waste goes before placing a producer, and designs sinks, reuse loops, or disposal districts. A full output buffer stopping a whole line teaches that the unwanted product sets the pace of the wanted one.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-oniwiki-2026-natural-gas-generator"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Production emits secondary outputs such as sludge, garbage, heat, or spent fuel that must be handled or they impair the system.",
    "synergy": [
      {
        "id": "pollution-spread",
        "note": "Waste outputs are the sources that pollution diffusion spreads."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "princess-maker-2",
      "earliest_year": 1993,
      "incoming": {
        "used_by": [
          "princess-maker-2",
          "tamagotchi"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "branching development",
      "care-based evolution",
      "raising outcomes",
      "endings by upbringing"
    ],
    "authoring_cost": 4,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-tamagotchi"
        ],
        "text": "Tamagotchi (1996) has Hunger, Happy, and Training meters, life stages, and an adult form that depends on care."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-princess-maker-2"
        ],
        "text": "Princess Maker 2 covers the daughter's life from age 10 to 18 and has 74 endings."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns, per raised creature or character, a running history of care and attributes (tallies of neglect and discipline, stat values, behavior counts) and a developmental table that maps ranges of that history to next-stage forms or final outcomes. Between stages the history accumulates from care actions and scheduled activities; at each stage boundary the table is evaluated, by first matching branch or best score, and the chosen form replaces the old one, setting appearance, stats, behavior, lifespan, or an ending. Tamagotchi (1996) chooses its adult character from the quality of care it received, so neglect yields a different creature rather than only a sick one. Princess Maker 2 (1993) develops the daughter's attributes from age 10 to 18 and then selects one of 74 career endings from her attributes and history. It differs from creature-care, which owns need meters and care actions; from lifecycle-aging, whose stages advance without branching; and from trait-inheritance, where form comes from the parents' genes rather than the individual's own history.",
    "design_levers": [
      "which history variables are tracked and how they are weighted",
      "number of stage boundaries and branches per boundary",
      "threshold placement and whether ties resolve by priority or chance",
      "visibility of the table (hidden, hinted, or shown)",
      "whether later care can redeem an early bad branch",
      "how different branches are mechanically, from cosmetic to changes in stats, lifespan, or ending"
    ],
    "dynamics": [
      "Players compare outcomes socially (which character did yours become), turning private care into shared stories.",
      "Replays to collect branches convert one raising loop into a collection game.",
      "Players reverse-engineer the tables, and community guides become part of the game's culture."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Hidden tables push optimization to wikis and walkthroughs, after which players follow a recipe instead of raising.",
      "Branches that differ only cosmetically make care history feel irrelevant.",
      "Early branches that cannot be recovered punish new players for mistakes they could not understand.",
      "A single best branch turns the table into a target and removes variety."
    ],
    "family": "biology-health",
    "feedback": "none",
    "id": "care-dependent-development",
    "legibility": 2,
    "math_basis": [
      "combinatorics",
      "markov-stochastic"
    ],
    "maturity": "established",
    "name": "Care-dependent development",
    "open_questions": [
      "Can generative models produce a distinct form or ending for every care history, and do players value that over a small set of collectible authored branches?",
      "How much of the table should be visible so that care feels intentional without becoming a recipe?"
    ],
    "player_experience": "Raising with consequences. Every feeding, scolding, lesson, or missed call writes into a history the player cannot fully see, and the reveal at the next stage passes judgment on it. Players replay to see other branches, compare results with friends, and look up the tables to aim for a particular form or ending.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-tamagotchi",
      "src-wikipedia-princess-maker-2"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based"
    ],
    "summary": "A creature's or character's accumulated care or attribute history selects which form or outcome it develops into at each stage boundary, from a fixed branching table.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "princess-maker-2",
      "earliest_year": 1993,
      "incoming": {
        "affected_by": [
          "automated-playtesting"
        ],
        "used_by": [
          "game-dev-story",
          "gran-turismo",
          "gran-turismo-7",
          "inzoi",
          "iracing",
          "microsoft-flight-simulator-2024",
          "paralives",
          "princess-maker-2",
          "silent-hunter-3",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4"
        ]
      },
      "prevalence": 13,
      "prevalence_rank": 45,
      "prevalence_share": 0.073,
      "subgenre_spread": 4,
      "technique_count": 1,
      "technique_exposure": 0.3
    },
    "ai_leverage": 3,
    "aliases": [
      "jobs and promotions",
      "career tracks"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-strategywiki-2026-sims-2-careers"
        ],
        "text": "In The Sims 2 adult careers have ten levels and teen careers three; promotion requires advancing three skills, enough household friends, and high mood, and missing work two days in a row causes firing."
      }
    ],
    "compute_cost": 1,
    "definition": "A career is an ordered list of levels, each with a title, pay, schedule, and promotion requirements. State owned: per character, current career and level, and a job performance meter. Update rule: each work period, performance changes based on attendance and inputs such as mood, skills, or task completion; when performance and the next level's requirements are met, the character is promoted; very low performance or missed shifts cause demotion or firing. Inputs come from other mechanics (skills, relationships, needs); outputs are income, schedule, and status. Canonical form: The Sims 2, where adult careers have ten levels, teen careers three, promotion requires advances in three skills, a number of household friends, and high mood, and missing work two days in a row gets a Sim fired; The Sims 4 adds daily career tasks and branching tracks.",
    "design_levers": [
      "number of levels and spacing of requirements",
      "requirement types: skills, relationships, mood, or task completion",
      "performance meter rate and decay",
      "branching tracks at upper levels",
      "random work events with choices, such as The Sims chance cards",
      "pay and schedule curve across levels"
    ],
    "dynamics": [
      "Career requirements route characters' free time into skill and friend grinding, coupling work to social and needs systems.",
      "Schedule conflicts between household members' careers create household logistics problems.",
      "Promotions raise income and enable home upgrades, a reinforcing loop toward comfort."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Requirements become a checklist that drains spontaneity from life simulation.",
      "Rabbit-hole careers where the Sim leaves the lot make the career invisible to play.",
      "Pay grows faster than costs, so money stops mattering by mid-career."
    ],
    "family": "progression-goals",
    "feedback": "reinforcing",
    "id": "career-ladder",
    "legibility": 4,
    "math_basis": [
      "scheduling"
    ],
    "maturity": "classic",
    "name": "Career ladder",
    "open_questions": [
      "Can generated workplaces with colleagues, tasks, and politics replace authored rabbit-hole careers without large writing costs?",
      "Does requirement opacity, like a real workplace, make careers more engaging than explicit checklists?"
    ],
    "player_experience": "A long-term arc for one character. The player schedules skill-building and socializing around work, watches the performance bar before a promotion, and feels the status jump of a new title and pay. It gives sandbox life a direction.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-strategywiki-2026-sims-2-careers"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based"
    ],
    "summary": "Characters advance through ranked job levels by meeting skill, relationship, and performance requirements.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "europa-universalis-4",
      "earliest_year": 2013,
      "incoming": {
        "affected_by": [
          "llm-explanation-of-state"
        ],
        "involved_in": [
          "causal-why-query",
          "event-sourced-sim-runtime",
          "negotiating-faction-ai"
        ],
        "used_by": [
          "crusader-kings-3",
          "europa-universalis-4",
          "victoria-3"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 1,
      "technique_count": 1,
      "technique_exposure": 0.3
    },
    "ai_leverage": 3,
    "aliases": [
      "nested tooltips",
      "modifier breakdowns",
      "tooltip breakdowns"
    ],
    "authoring_cost": 2,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-pcgamesn-2022-victoria-3-nested-tooltips"
        ],
        "text": "Victoria 3 uses a nested tooltip system in which highlighted terms inside a tooltip open further tooltips, a system introduced by Crusader Kings III."
      },
      {
        "confidence": "high",
        "sources": [
          "src-paradox-2023-victoria-3-dev-diary-74"
        ],
        "text": "Victoria 3 UX work repositioned tooltips so players can move into a nested tooltip without opening another, and added military tooltips that break down battle calculations."
      }
    ],
    "compute_cost": 1,
    "definition": "Any displayed derived value (mood, stability, price, income, work speed, battle strength) can be hovered to list its contributing terms, each with a label, source, sign, and magnitude, usually as base plus additive modifiers times multiplicative modifiers. Terms that are themselves derived or that name a game concept can be hovered again, opening a nested tooltip. The mechanic owns no simulation state but requires the simulation to compute values as explicit lists of labeled modifiers rather than opaque formulas. Update rule: on hover, read the modifier list for the value, sort and render it, and attach hover targets to sub-terms. Canonical forms: Paradox grand strategy (Europa Universalis IV, Stellaris), Crusader Kings III, which introduced nested tooltips on highlighted terms that Victoria 3 adopted, Victoria 3 tooltips breaking down battle calculations, RimWorld info-card stat breakdowns (skill and capacity factors behind work speed), and Civilization yield breakdowns.",
    "design_levers": [
      "recursion depth: one level of breakdown versus nested tooltips on every term",
      "whether tooltips can be pinned or locked so the player can move into them",
      "which modifiers are hidden from the breakdown, if any",
      "presentation of additive versus multiplicative terms, ordering, and rounding",
      "whether each modifier shows its remaining duration",
      "glossary links from terms to concept explanations"
    ],
    "dynamics": [
      "Full transparency speeds up optimization and exploit discovery, pushing play toward spreadsheet min-maxing.",
      "Because each new effect appears in breakdowns automatically, modifier architectures are easy for modders to extend legibly.",
      "Players learn the simulation's causal graph by walking tooltips, which lowers the need for external wikis."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Late-game modifier stacks grow into walls of numbers that no longer explain anything.",
      "Rounded or partial terms that do not sum to the displayed value erode trust in the whole interface.",
      "Values with clamps, caps, or nonlinear interactions are presented as simple sums and mislead.",
      "Hover-dependent design moves essential information off the main screen and works poorly with controllers and touch."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "causal-tooltips",
    "legibility": 4,
    "math_basis": [
      "probability-statistics"
    ],
    "maturity": "established",
    "name": "Causal breakdown tooltips",
    "open_questions": [
      "When values come from a learned simulator instead of modifier lists, can attribution methods produce breakdowns players trust?",
      "Do counterfactual tooltips (what single change would flip this outcome) teach faster than additive breakdowns?"
    ],
    "player_experience": "The player can interrogate any number until the lever appears. Opaque systems become debuggable: why is stability falling, which modifier expires next, what would fix it. Players who enjoy optimization dig through several levels; others glance at the top line.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-pcgamesn-2022-victoria-3-nested-tooltips",
      "src-paradox-2023-victoria-3-dev-diary-74"
    ],
    "status": "sourced",
    "substrate": [
      "ui-layer",
      "rule-system"
    ],
    "summary": "Hovering a derived value shows the named modifiers that produce it, and terms inside the tooltip can be hovered in turn.",
    "synergy": [
      {
        "id": "opinion-modifiers",
        "note": "Itemized modifiers are only legible when tooltips decompose them (Paradox titles)."
      }
    ],
    "tuning_difficulty": 1,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "utopia",
      "earliest_year": 1982,
      "incoming": {
        "involved_in": [
          "participatory-planning-sandboxes"
        ],
        "used_by": [
          "against-the-storm",
          "civilization",
          "frostpunk",
          "kingdoms-and-castles",
          "manor-lords",
          "rebel-inc",
          "simcity-1989",
          "tropico-6",
          "utopia",
          "workers-and-resources"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "happiness",
      "approval rating",
      "city score"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns one aggregate score (or one per district or class) computed each evaluation period from service levels, problems, and events, usually smoothed toward its previous value. Downstream systems read it: growth and migration, productivity, tax tolerance, election odds, and unrest. In Micropolis, the SimCity engine, a yearly evaluation sums seven problem values (crime, pollution, housing cost as 0.7 x average land value, taxes as rate x 10, traffic, unemployment, fires), maps the sum to a 0-1000 score, multiplies it by penalties for missing stadium, airport, or seaport (0.85 each), underfunded roads, police, and fire, and the share of unpowered zones, adjusts for population growth, and averages it with last year's score; an approval poll then gives 100 citizens a yes with probability score / 1000. Frostpunk (2018) splits the score into Hope and Discontent, and the game ends in revolt if hope stays too low or discontent too high for too long.",
    "design_levers": [
      "which inputs enter the score and their weights",
      "smoothing or averaging period, which sets how quickly fixes show up",
      "thresholds where satisfaction triggers growth, emigration, strikes, or game over",
      "single score versus separate scores per class, district, or faction",
      "how causes are explained (complaint lists, thoughts, polls, advisors)"
    ],
    "dynamics": [
      "Low satisfaction drives emigration, which lowers demand for services and can partly restore satisfaction for those who stay.",
      "Satisfaction tied to productivity creates spirals where unhappy workers produce less and services decline further.",
      "Scores averaged over time let a short crisis pass without punishment but punish sustained neglect."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A single number hides which problem matters, so players chase the wrong fix without a breakdown view.",
      "Easy maximization by stacking one cheap amenity makes satisfaction irrelevant.",
      "Long smoothing makes improvements feel unrewarded and pushes players to over-correct."
    ],
    "family": "governance-policy",
    "feedback": "both",
    "id": "citizen-satisfaction",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Citizen satisfaction",
    "open_questions": [
      "Can LLM-voiced citizens explain their dissatisfaction in specific, accurate terms that point to real causes in the simulation?",
      "Is one aggregate score better or worse for play than many per-group scores when citizens can explain themselves?"
    ],
    "player_experience": "A report card on the whole system. The player watches one number rise and fall, digs into the complaint list or overlays to find the cause, and fixes the top problem. In crisis games like Frostpunk it becomes the meter the player is always defending.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-hopkins-2008-micropolis",
      "src-wikipedia-frostpunk"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "An aggregate satisfaction score computed from services, conditions, and events modulates growth, productivity, and unrest.",
    "synergy": [
      {
        "id": "stability-unrest",
        "note": "Low satisfaction accumulates into unrest; unrest further lowers satisfaction."
      },
      {
        "id": "elections",
        "note": "Satisfaction becomes votes, tying tenure to welfare (Tropico)."
      },
      {
        "id": "immigration-attractiveness",
        "note": "Satisfied populations attract migrants; dissatisfied ones leave."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "gran-turismo",
      "earliest_year": 1997,
      "incoming": {
        "affected_by": [
          "llm-rule-adjudication"
        ],
        "used_by": [
          "animal-crossing-new-horizons",
          "equilinox",
          "gran-turismo",
          "gran-turismo-7",
          "infinite-craft",
          "stardew-valley",
          "viva-pinata"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 5,
      "technique_count": 1,
      "technique_exposure": 0.75
    },
    "ai_leverage": 2,
    "aliases": [
      "catalogs",
      "bundles",
      "collection logs",
      "museum donations"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-stardewvalleywiki-2026-bundles"
        ],
        "text": "Stardew Valley's Community Center has six rooms and thirty bundles; completing rooms repairs the quarry bridge, greenhouse, minecarts, and bus, and a Joja membership replaces bundles with payments."
      }
    ],
    "compute_cost": 1,
    "definition": "The game defines named sets of collectibles (items, fish, insects, fossils, species, recipes) and tracks which members the player has obtained, donated, or observed. State owned: per set, a membership checklist and completion state. Update rule: when the player acquires or submits a qualifying item, mark it; when a set is complete, grant a reward or unlock. Collection drives engagement with other systems because members are spread across seasons, locations, and rarities. Canonical forms: Stardew Valley's Community Center, with six rooms and thirty bundles whose rewards repair the quarry bridge, greenhouse, minecarts, and bus, Animal Crossing: New Horizons' museum and Critterpedia, and Viva Pinata's species journal with per-species visit, resident, and romance requirements.",
    "design_levers": [
      "set size and rarity distribution of members",
      "seasonal, weather, or location gating of members",
      "reward type: functional unlocks, cosmetics, or none",
      "fixed versus randomized set contents, such as Stardew Valley remixed bundles",
      "whether items are consumed by submission",
      "visibility of missing members as silhouettes or hints"
    ],
    "dynamics": [
      "Collection targets route player attention through seasons, weather, and locations they would otherwise skip.",
      "Players share calendars and spreadsheets of where and when members appear.",
      "Alternative completion routes, such as the Joja membership in Stardew Valley, frame collection as a moral choice."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "The last few rare members take far longer than the rest, turning completion into a grind.",
      "Members missable for a season or year punish players who fall behind.",
      "Functional rewards locked behind collection force players who dislike collecting through it."
    ],
    "family": "progression-goals",
    "feedback": "none",
    "id": "collection-goals",
    "legibility": 5,
    "math_basis": [
      "combinatorics",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Collection goals",
    "open_questions": [
      "Can generated collectible sets tied to world state, such as species that evolved in this run, keep collection goals meaningful in procedural worlds?",
      "What rarity curve keeps the final members exciting rather than grinding?"
    ],
    "player_experience": "A gentle, open checklist. The player plans around a missing fish that appears only in rain in autumn, feels a click when a set completes, and has a reason to explore every corner of the simulation.",
    "player_interface": [
      "observation",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-stardewvalleywiki-2026-bundles"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "Catalogs of items, species, or bundles give the player sets to complete for rewards or recognition.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "noita",
      "earliest_year": 2019,
      "incoming": {
        "affected_by": [
          "llm-rule-adjudication"
        ],
        "used_by": [
          "infinite-craft",
          "noita"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "element combining",
      "alchemy games",
      "recipe discovery"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-infinite-craft"
        ],
        "text": "Infinite Craft starts from water, fire, wind, and earth; a new pair is generated by Llama 2 or Llama 3.1 with an emoji under a twenty-token cap and stored so all players get the same result, and new results earn a First Discovery label."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns a recipe graph that maps combinations of elements, usually unordered pairs, to results, the set of elements the player has found, and per-recipe discovery records. A combine action looks up the chosen inputs: if a recipe exists the result joins the player's set, first-time results are announced, and the new element becomes an input for further combinations; if none exists nothing happens or a small cost is paid. The graph is hidden, so the loop is experimentation, and progress is counted in elements found rather than items used. Infinite Craft (2024) starts from water, fire, wind, and earth and has no fixed graph: on a cache miss a language model (Llama 2, later Llama 3.1) names the result, capped at twenty tokens, with an emoji; the result is stored so every player gets the same answer, and the player who triggered it earns a First Discovery label. Little Alchemy and Doodle God use authored graphs. It differs from hand-crafting, where known recipes turn carried components into useful items at workstations, and from generative-content, which owns the model call rather than the discovery loop.",
    "design_levers": [
      "graph size and depth, authored or generated",
      "number of inputs per combination and whether order matters",
      "cost of a failed combination",
      "hint systems and whether the count of remaining recipes is shown",
      "shared first-discovery records and leaderboards",
      "whether elements have any use beyond further combination"
    ],
    "dynamics": [
      "Each discovery enlarges the input set, so the number of untried pairs grows roughly with the square of elements found.",
      "A shared cache turns discovery into a race for First Discoveries and produces community lists of paths to rare results.",
      "Players form folk theories about how the graph or the model reasons and test them systematically."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Without hints, players brute-force every pair or consult a list, which ends the discovery loop.",
      "Authored results that do not follow from their inputs feel arbitrary.",
      "Generated graphs drift into nonsense or offensive results and need moderation.",
      "Elements with no use beyond combining make the collection feel hollow once novelty fades."
    ],
    "family": "progression-goals",
    "feedback": "reinforcing",
    "id": "combination-discovery",
    "legibility": 4,
    "math_basis": [
      "combinatorics",
      "graph-search"
    ],
    "maturity": "established",
    "name": "Combination discovery",
    "open_questions": [
      "Can generated combination results carry mechanical properties that make them useful inside a simulation, rather than only names?",
      "What hint density keeps experimentation fun without turning it into lookup?"
    ],
    "player_experience": "Curiosity as the whole loop. The player tries pairs on a hunch, laughs at or argues with the result, and chases rare elements by reasoning about what the designer or the model would think. Each find opens new combinations, so the field of untried ideas keeps growing.",
    "player_interface": [
      "direct-manipulation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-infinite-craft"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "learned-model"
    ],
    "summary": "The player combines owned elements to discover the products of a hidden recipe graph, and finding recipes is itself the goal.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "spacechem",
      "earliest_year": 2011,
      "incoming": {
        "affected_by": [
          "alphaevolve-algorithm-discovery"
        ],
        "involved_in": [
          "qd-scenario-libraries",
          "sims-as-agent-benchmarks",
          "specification-programming-games"
        ],
        "used_by": [
          "opus-magnum",
          "spacechem"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 1,
      "technique_exposure": 0.1
    },
    "ai_leverage": 2,
    "aliases": [
      "score histograms",
      "solution histograms"
    ],
    "authoring_cost": 1,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-spacechem"
        ],
        "text": "Zach Barth designed SpaceChem's global histograms so players could check their solutions without feeling overwhelmed by the top players a leaderboard would list."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-opus-magnum"
        ],
        "text": "Opus Magnum ranks solutions on cycles, cost, and area, and players combine them in an unofficial sum statistic."
      },
      {
        "confidence": "high",
        "sources": [
          "src-couture-2019-road-to-igf-opus-magnum"
        ],
        "text": "Zachtronics deliberately offers no in-game rewards for optimization in Opus Magnum, so players who optimize do so for intrinsic reasons."
      }
    ],
    "compute_cost": 1,
    "definition": "After a solution passes validation, the game computes several independent metrics that trade off against each other and shows the player's value on each as a marker on a histogram of all players' (or friends') values for that puzzle. State owned: per-puzzle score distributions aggregated on a server, plus the player's best per metric. Update rule: on completion, simulate the solution, compute metrics, upload them, and fetch the current distributions. The metrics come from a design-evaluation mechanic; this mechanic owns only the population comparison. Canonical forms are Zachtronics games: SpaceChem ranks instructions, cycles, and reactors, and Zach Barth designed its global histograms so players could check a solution without being overwhelmed by the top players a leaderboard lists; Opus Magnum compares cost, cycles, and area; TIS-100, Shenzhen I/O, Infinifactory, and Exapunks use the same pattern.",
    "design_levers": [
      "number of metrics and how strongly they trade off against each other",
      "global distribution versus friends-only comparison",
      "bin width and handling of outliers or exploit scores",
      "per-metric personal bests versus recognition of Pareto-optimal combinations",
      "whether any reward is attached to good scores (Zachtronics deliberately attaches none)"
    ],
    "dynamics": [
      "Players replay solved puzzles to move their marker, extending content life without new content.",
      "Communities build external record trackers for Pareto frontiers that the in-game histograms do not show.",
      "Friend comparison produces asynchronous rivalry without direct competition."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Metrics that do not trade off collapse into one dominant solution, and the histograms show a single spike.",
      "Exploit or bugged solutions create impossible scores that distort the left tail.",
      "Late puzzles are attempted only by skilled survivors, so average players appear below median on every metric.",
      "Independent per-metric bars ignore balanced solutions; Opus Magnum players invented an unofficial sum metric to score them."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "comparative-histograms",
    "legibility": 4,
    "math_basis": [
      "probability-statistics",
      "optimization"
    ],
    "maturity": "established",
    "name": "Comparative histograms",
    "open_questions": [
      "Can distributions seeded by automated solvers before launch give useful comparison targets without discouraging human players?",
      "Does showing a Pareto frontier instead of per-metric histograms change which tradeoffs players explore?"
    ],
    "player_experience": "Instead of a rank, the player sees where they sit in a crowd on each axis. A solution that is slow but cheap still feels good, and a visible tail of better scores invites returning to a solved puzzle to shave cycles. Comparison is social but low in intimidation.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "requires": [
      "design-performance-rating"
    ],
    "sources": [
      "src-wikipedia-spacechem",
      "src-wikipedia-opus-magnum",
      "src-couture-2019-road-to-igf-opus-magnum"
    ],
    "status": "sourced",
    "substrate": [
      "ui-layer"
    ],
    "summary": "A player's solution is plotted against distributions of other players' scores on several metrics.",
    "synergy": [
      {
        "id": "design-performance-rating",
        "note": "Multi-metric ratings become social when plotted against everyone else's solutions (Opus Magnum)."
      },
      {
        "id": "player-programming",
        "note": "Open-ended programming puzzles gain replay value from optimization histograms."
      }
    ],
    "tension": [
      {
        "id": "storyteller-director",
        "note": "Directed randomness makes scores incomparable across players."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "creatures",
      "earliest_year": 1996,
      "incoming": {
        "affected_by": [
          "differentiable-simulation",
          "simulation-based-inference"
        ],
        "involved_in": [
          "calibrated-serious-sims"
        ],
        "used_by": [
          "banished",
          "creatures",
          "farthest-frontier",
          "inzoi",
          "jurassic-world-evolution",
          "kingdoms-and-castles",
          "oxygen-not-included",
          "plague-inc",
          "theme-hospital",
          "two-point-hospital"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 6,
      "technique_count": 2,
      "technique_exposure": 0.2
    },
    "ai_leverage": 3,
    "aliases": [
      "disease spread",
      "epidemics",
      "plague"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each host (agent, building, settlement, or country) carries a disease state from a small compartment set, usually susceptible, infected, recovered or immune, and dead. Each tick infected hosts transmit to susceptible contacts with a probability per contact (agent-based) or at a rate proportional to infected times susceptible (aggregate), and leave infection at a recovery or death rate. Inputs are contact structure (adjacency, shared rooms, trade and travel links), host resistance, and interventions such as quarantine, vaccination, or medicine; outputs are cases, deaths, and lost labor. Kermack and McKendrick showed that an epidemic occurs only above a threshold set by infectivity and recovery rates. Plague Inc. spreads a player-evolved pathogen between countries until a cure completes; Theme Hospital has contagious patients who infect others inside the hospital; World of Warcraft's 2005 Corrupted Blood debuff spread by proximity and escaped its raid through suspended pets and fast travel to cities.",
    "design_levers": [
      "transmission probability per contact or aggregate rate, and which contacts count (adjacency, shared rooms, trade routes, flights)",
      "infectious period, incubation length, and whether carriers can be asymptomatic",
      "recovery, death, and immunity rules, including whether recovery confers lasting immunity",
      "intervention set and costs: quarantine, closing borders or ports, vaccination, treatment",
      "spatial resolution: per agent, per building, per settlement, or per country",
      "how much disease state is shown: case counts, overlays, or only visible symptoms"
    ],
    "dynamics": [
      "Hubs such as cities, hospitals, and transport nodes become superspreaders, so network topology matters more than total population.",
      "Sick workers leave jobs, cutting production of the food, medicine, or care that would end the outbreak.",
      "Agents or players bypass quarantine for convenience, so enforcement becomes its own problem, as in the Corrupted Blood outbreak.",
      "Depletion of susceptible hosts ends waves on its own, producing boom-and-bust waves that can look like successful policy."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "A reproduction number far above any real pathogen makes spread unstoppable and interventions pointless; Lofgren and Fefferman noted Corrupted Blood's exceeded any observed real disease.",
      "Contact channels the designer did not model, such as Corrupted Blood's suspended pets and fast travel, carry infection past intended boundaries.",
      "Hidden infection with no leading indicator reads as a random wipeout rather than a failed response.",
      "Aggregate compartments with no spatial structure give every outbreak the same curve, so the player learns one fixed response."
    ],
    "family": "environment-ecology",
    "feedback": "both",
    "id": "contagion",
    "legibility": 3,
    "math_basis": [
      "epidemiology",
      "markov-stochastic",
      "social-network"
    ],
    "maturity": "established",
    "name": "Contagion",
    "open_questions": [
      "Can LLM-driven agents produce plausible behavioral responses to outbreaks (compliance, panic, rumor) that change the effective contact rate in play?",
      "What is the minimum contact structure that still makes intervention placement a meaningful spatial decision?"
    ],
    "player_experience": "Watching an invisible quantity become visible too late. Early cases look harmless, then counts climb faster than responses can be built, so the player learns to act on leading indicators: isolating carriers, closing links, stockpiling medicine, or, in Plague Inc., keeping symptoms mild so the disease spreads widely before lethality alerts the world. Most responses trade economic activity against spread.",
    "player_interface": [
      "observation",
      "parameter",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-kermack-1927-epidemic-theory",
      "src-lofgren-2007-corrupted-blood",
      "src-wikipedia-corrupted-blood-incident",
      "src-wikipedia-plague-inc"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "network-graph",
      "aggregate-stocks"
    ],
    "summary": "Disease spreads between agents or regions via contact rates and moves hosts through compartments such as susceptible, infected, and recovered.",
    "synergy": [
      {
        "id": "service-coverage",
        "note": "Health coverage determines whether outbreaks are contained."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "the-incredible-machine",
      "earliest_year": 1993,
      "incoming": {
        "affected_by": [
          "open-interactive-video-models"
        ],
        "involved_in": [
          "generative-decoration-catalogs",
          "illustrated-chronicles",
          "language-modding",
          "open-ended-evolution-sandbox"
        ],
        "used_by": [
          "ai-dungeon",
          "arma-3",
          "beamng-drive",
          "besiege",
          "command-modern-operations",
          "creatures",
          "garrys-mod",
          "inzoi",
          "opus-magnum",
          "paralives",
          "planet-coaster",
          "planet-zoo",
          "poly-bridge",
          "prison-architect",
          "second-life",
          "spacechem",
          "spore",
          "suck-up",
          "the-incredible-machine",
          "the-powder-toy",
          "the-sims-4",
          "tomodachi-life",
          "two-point-hospital",
          "universe-sandbox"
        ]
      },
      "prevalence": 24,
      "prevalence_rank": 16,
      "prevalence_share": 0.136,
      "subgenre_spread": 11,
      "technique_count": 1,
      "technique_exposure": 0.5
    },
    "ai_leverage": 3,
    "aliases": [
      "user-generated content",
      "workshop",
      "creation sharing"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "A creation is serialized to a compact format, uploaded to a shared catalog with metadata, and ranked by downloads, ratings, or curation; other players browse and import it, or the game pulls catalog items into their worlds automatically. Spore uploaded every creature, vehicle, and building to the Sporepedia, ranked items by downloads, and redistributed them to populate other players' galaxies, with only a few kilobytes per item because the game rebuilds each creation procedurally from its template; it passed 100 million creations by May 2009, and players could filter or ban user content. Steam Workshop for Cities: Skylines, Planet Coaster blueprints, and Factorio blueprint strings are other forms. Inputs: serialized creations. Outputs: imported content and creator reputation.",
    "design_levers": [
      "serialization format and size, such as procedural templates versus full assets",
      "ranking and discovery signals (downloads, ratings, curation, subscriptions)",
      "automatic versus opt-in import into other players' worlds",
      "moderation tools and content filters",
      "attribution and feedback to creators"
    ],
    "dynamics": [
      "A small share of creators produce most of the popular content.",
      "Shared blueprints spread optimal designs quickly, which compresses the discovery phase for later players.",
      "Communities form around creator challenges and showcases."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Offensive or infringing uploads spread fast without moderation; Spore needed filters and in-game bans.",
      "Popularity rankings concentrate attention on a few creators and bury new work.",
      "Imported content that breaks balance or performance degrades the importer's game."
    ],
    "family": "multiplayer-persistence",
    "feedback": "reinforcing",
    "id": "content-sharing",
    "legibility": 5,
    "math_basis": [
      "social-network",
      "probability-statistics"
    ],
    "maturity": "established",
    "name": "Content sharing",
    "open_questions": [
      "Can models classify and moderate uploaded creations at scale with fewer false positives than keyword or report systems?",
      "How should catalogs recommend shared content without concentrating attention on a few top creators?"
    ],
    "player_experience": "Creators build for an audience and check how their work spreads; browsers get far more variety than the developer shipped. Seeing another player's creature walk through your world, or importing a polished city block, makes the game feel populated.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-spore"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "player-authored-logic"
    ],
    "summary": "Player creations such as buildings, creatures, or blueprints are uploaded, browsed, rated, and imported into other players' games.",
    "synergy": [
      {
        "id": "generative-content",
        "note": "Shared first discoveries give generated content social value (Infinite Craft)."
      },
      {
        "id": "modding-api",
        "note": "Mods need distribution; sharing platforms need mods."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 7,
      "earliest_game": "transport-tycoon",
      "earliest_year": 1994,
      "incoming": {
        "involved_in": [
          "agent-ambassadors-async",
          "generated-inspection-shifts"
        ],
        "used_by": [
          "bitburner",
          "car-mechanic-simulator-2021",
          "eco",
          "elite-dangerous",
          "euro-truck-simulator-2",
          "farming-simulator-25",
          "game-dev-story",
          "house-flipper",
          "jurassic-world-evolution",
          "kerbal-space-program",
          "microsoft-flight-simulator-2024",
          "pc-building-simulator",
          "powerwash-simulator",
          "prison-architect",
          "snowrunner",
          "theme-hospital",
          "transport-tycoon"
        ]
      },
      "prevalence": 17,
      "prevalence_rank": 33,
      "prevalence_share": 0.096,
      "subgenre_spread": 10,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "job board",
      "missions",
      "commissions",
      "freight market"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a pool of offers, each with a requirement (cargo type and quantity, a service, or an object meeting a spec), an origin and destination or a client, a deadline, a payout, and often a penalty and a reputation gate. Offers are generated from templates and current simulation state, sit on a board until they expire, and are accepted by the player. On completion the rule checks the requirement, pays out (often scaled by distance, cargo value, or speed), and updates reputation; lateness or abandonment forfeits pay or charges a penalty. Euro Truck Simulator 2's freight market, Elite Dangerous mission boards, Farming Simulator contracts, Car Mechanic Simulator repair orders, and Transport Tycoon's time-limited subsidies are common forms.",
    "design_levers": [
      "payout formula (distance, cargo value, urgency, risk) relative to running costs",
      "deadline tightness and the penalty for lateness or abandonment",
      "offer generation: random templates versus real shortages in the simulation",
      "reputation or rank gates that unlock higher-paying work",
      "number of simultaneous contracts allowed and board refresh rate"
    ],
    "dynamics": [
      "Players chain contracts into loops that minimize empty legs, producing self-discovered trade circuits.",
      "Reputation gating creates a ladder where risky early work buys access to lucrative later work.",
      "When contracts are generated from real shortages, completing them dampens the shortage that created them."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Templated contracts detached from simulation state feel like grind, since taking the best payout per minute is the only decision.",
      "Abandon-and-refresh exploits let players cherry-pick outliers when boards regenerate too freely.",
      "Payouts that outscale costs make every contract profitable and remove route planning."
    ],
    "family": "economy-finance",
    "feedback": "reinforcing",
    "id": "contracts-orders",
    "legibility": 4,
    "math_basis": [
      "scheduling",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Contracts and orders",
    "open_questions": [
      "Do contracts generated by a language model from live simulation state (a town short of grain, a rival's broken supply line) feel less like grind than templated ones?",
      "Can open-ended commissions be judged by learned evaluators, such as a model scoring whether a built structure meets a client's brief?"
    ],
    "player_experience": "A steady menu of concrete goals. The player scans offers, weighs payout against distance, risk, and time, chains jobs so trips are never empty, and races deadlines. Contracts turn an open sandbox into a sequence of short, legible tasks.",
    "player_interface": [
      "choice-cards",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "rule-system",
      "stochastic-events"
    ],
    "summary": "Discrete jobs with requirements, deadlines, and payouts, such as deliveries or commissions, drive income and planning.",
    "synergy": [
      {
        "id": "vehicle-route-scheduling",
        "note": "Contracts give routes a purpose and a deadline."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "factorio",
      "earliest_year": 2013,
      "incoming": {
        "involved_in": [
          "bottleneck-explainer",
          "sims-as-agent-benchmarks"
        ],
        "used_by": [
          "big-pharma",
          "captain-of-industry",
          "dyson-sphere-program",
          "factorio",
          "mindustry",
          "satisfactory",
          "shapez-2",
          "space-engineers",
          "workers-and-resources"
        ]
      },
      "prevalence": 9,
      "prevalence_rank": 70,
      "prevalence_share": 0.051,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "belts",
      "conveyor belts",
      "transport belts"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "Belts form directed chains of tiles; each tile holds a fixed number of item slots per lane and moves items forward at a tier-dependent speed. Items enter from inserters, machines, or side-loading and exit at the end, onto another belt, or into a machine. Splitters divide and merge flows, often with priority and filter settings; undergrounds and bridges cross other belts. Factorio holds 4 items per lane per tile and carries 15, 30, 45, or 60 items per second across both lanes for transport, fast, express, and turbo belts. Internally it groups adjacent belts into transport lines and stores the gaps between items, so a free-flowing line updates only its end gaps each tick. Satisfactory, Dyson Sphere Program, and Mindustry use similar belt tiers, and Shapez raises belt speed through upgrades. Inputs: items placed on belts. Outputs: items delivered at a throughput capped by the slowest segment.",
    "design_levers": [
      "throughput per tier and number of lanes",
      "splitter, merger, and priority or filter options",
      "crossing options such as undergrounds, bridges, or vertical lifts",
      "item density and whether mixed items share a lane",
      "belt cost and unlock schedule"
    ],
    "dynamics": [
      "Main-bus and ratio-block conventions emerge from throughput caps, and players share them as blueprints.",
      "Belt saturation sets factory module sizes, so each tier upgrade reshapes layouts.",
      "Mixed-item belts create sushi designs and clogging failure modes."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Spaghetti layouts become unreadable and players stop understanding their own factory.",
      "Lane imbalance and side-loading rules are opaque without wikis.",
      "Belt counts at large scale cost simulation time; Factorio's transport-line rewrite was made to cut this cost."
    ],
    "family": "logistics-networks",
    "feedback": "none",
    "id": "conveyor-transport",
    "legibility": 4,
    "math_basis": [
      "network-flow",
      "queueing"
    ],
    "maturity": "established",
    "name": "Conveyor transport",
    "open_questions": [
      "Could layout assistants that propose belt routing under player constraints keep the puzzle while removing tedium?",
      "What is the smallest set of belt primitives that still supports deep layout optimization?"
    ],
    "player_experience": "Layout as the main puzzle. Players route belts around each other, balance lanes, and design compact buses, and they can see throughput problems as gaps or backed-up lines. A compressed belt feeding a full row of machines is a visible proof of a correct design.",
    "player_interface": [
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-wube-2017-fff-176-belts-optimization",
      "src-factoriowiki-2026-transport-belt-physics"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "rule-system"
    ],
    "summary": "Items move continuously on belts or lanes with throughput limits, splitters, merges, and priorities.",
    "synergy": [
      {
        "id": "production-chain",
        "note": "Belts make recipe chains spatial, turning ratios into a layout puzzle (Factorio, Satisfactory)."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "civilization",
      "earliest_year": 1991,
      "incoming": {
        "used_by": [
          "civilization",
          "europa-universalis-4",
          "rebel-inc",
          "stellaris"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "corruption",
      "waste",
      "graft"
    ],
    "authoring_cost": 1,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-rebel-inc"
        ],
        "text": "In Rebel Inc. the more initiatives the player funds from the monthly budget, the more corruption and inflation rise, and a governance tab offers anti-corruption measures."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns a corruption level per polity, region, or city and the rule that turns it into losses. Each period the level rises with drivers such as the volume of spending or programs, distance from the seat of government, the number of administered territories, or weak institutions, and falls with countermeasures such as anti-corruption policies, courthouses, audits, or dedicated spending; some games accumulate it as a stock with slow decay, others recompute it each turn from current conditions. A share that grows with the level is then removed from tax revenue, trade, production, or program effectiveness, or added to costs. Rebel Inc. (2018) makes corruption a side effect of governing: the more civilian initiatives the player funds, the more corruption and inflation rise, and a governance tab offers anti-corruption measures. Civilization (1991) and Europa Universalis IV use other forms. It differs from taxation, which sets the rate of collection, and from stability-unrest, which owns grievance; corruption owns the leak between what the state raises and what it gets to use.",
    "design_levers": [
      "drivers of corruption (spending volume, distance, territory count, institution quality)",
      "what leaks and how much: revenue, output, program effectiveness, or costs",
      "countermeasures and their price (policies, buildings, dedicated spending)",
      "accumulated stock with decay versus a level recomputed each period",
      "visibility, from a shown meter to losses visible only in the ledger"
    ],
    "dynamics": [
      "Corruption caps efficient size, since each additional city, territory, or program returns less, a balancing loop on expansion.",
      "Spending to win support raises corruption that erodes the budget for further spending, as in Rebel Inc.",
      "Players invest in countermeasures first in regions far from the center, which shapes expansion order."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "One cheap countermeasure, a single building or policy, zeroes corruption and removes the mechanic from play.",
      "A flat percentage loss with no driver the player can influence feels like an arbitrary tax rather than a decision.",
      "Distance-based corruption punishes spread-out realms so hard that one empire shape dominates.",
      "Leaks without a breakdown make budgets feel randomly short."
    ],
    "family": "governance-policy",
    "feedback": "balancing",
    "id": "corruption-leakage",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "established",
    "name": "Corruption leakage",
    "open_questions": [
      "Can corruption be modeled as agents (officials, contractors) who skim and can be investigated, rather than as a percentage, while staying readable?",
      "Which drivers make corruption a strategic constraint rather than a flat tax?"
    ],
    "player_experience": "Growth carries a hidden tax. The player watches part of every budget vanish, weighs how much to spend fighting it, and learns that expanding programs or territory faster than institutions can follow makes each new unit of spending worth less.",
    "player_interface": [
      "parameter",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-rebel-inc"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "A corruption level driven by spending, administrative reach, or size removes a share of revenue or output until countermeasures bring it down.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "little-computer-people",
      "earliest_year": 1985,
      "incoming": {
        "involved_in": [
          "trainable-creatures-revival"
        ],
        "used_by": [
          "black-and-white",
          "creatures",
          "little-computer-people",
          "nintendogs",
          "seaman",
          "tamagotchi"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "virtual pet",
      "pet care"
    ],
    "authoring_cost": 4,
    "compute_cost": 1,
    "definition": "Owns one or a few creatures, each with need meters (hunger, happiness, hygiene, health, discipline), a life stage, and often an affection or obedience value. Meters decay in game or real time, and the player restores them with direct care actions: feeding, cleaning, playing, giving medicine, or scolding. Neglect accumulates into sickness, a worse adult form, running away, or death. Tamagotchi (1996) shows hunger and happy meters and a discipline meter, leaves droppings that cause sickness if not cleaned, cures illness with medicine, and ages the pet through life stages in real time; Nintendogs adds stylus petting and voice-recognized commands; Seaman responds to the player's speech. Inputs are care actions and elapsed time; outputs are the creature's condition, form, and behavior.",
    "design_levers": [
      "number of needs and their decay rates in game or real time",
      "severity of neglect consequences: mood, sickness, altered growth, death, leaving",
      "care actions available and whether they are menu choices or direct manipulation",
      "whether care quality shapes the adult form or personality",
      "pause or vacation options that suspend decay"
    ],
    "dynamics": [
      "Check-in frequency becomes the main loop, coupling the game to the player's daily schedule.",
      "Care quality branching into different adult forms motivates replays and comparison between players.",
      "Shared or shown-off pets turn care quality into social status."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Real-time decay with no pause punishes absence; the first Tamagotchi units could stop time only through the clock-setting mode.",
      "Once the optimal care routine is known, interactions become a checklist and attachment fades.",
      "Creatures with too few reactions repeat the same animations, breaking the illusion of a living pet."
    ],
    "family": "biology-health",
    "feedback": "balancing",
    "id": "creature-care",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "control-theory"
    ],
    "maturity": "classic",
    "name": "Creature care",
    "open_questions": [
      "Can language models give pets memory and open-ended conversational responses while keeping their needs legible?",
      "Does generated animation or behavior reduce the repetition that ends attachment?"
    ],
    "player_experience": "Responsibility and attachment. The player checks in often, notices small changes, and feels guilt when the creature gets sick from being forgotten. Care is direct and tactile rather than managerial, and the creature's growth or decline mirrors the player's attention.",
    "player_interface": [
      "direct-manipulation",
      "choice-cards",
      "language"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-wikipedia-tamagotchi"
    ],
    "specializes": "needs-decay",
    "status": "sourced",
    "substrate": [
      "agent-based",
      "aggregate-stocks"
    ],
    "summary": "The player directly feeds, cleans, and plays with a creature whose needs decay; neglect causes sickness, stunted growth, or death.",
    "synergy": [
      {
        "id": "real-time-clock",
        "note": "Wall-clock decay makes care a daily ritual and absence meaningful (Tamagotchi)."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "creatures",
      "earliest_year": 1996,
      "incoming": {
        "affected_by": [
          "massively-parallel-simulation",
          "model-based-planning-muzero",
          "open-ended-environment-generation"
        ],
        "involved_in": [
          "trainable-creatures-revival"
        ],
        "used_by": [
          "black-and-white",
          "creatures",
          "nintendogs",
          "seaman"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 3,
      "technique_exposure": 0.625
    },
    "ai_leverage": 4,
    "aliases": [
      "trainable creature",
      "reinforcement training"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns a creature's learned decision parameters: weights linking perceived situations or objects to actions. After the creature acts, a reward or punishment signal (a player stroke or slap, or a change in an internal drive) adjusts the weights for that situation-action pair, so its future selection probability rises or falls and generalizes to similar situations. Creatures (1996) uses about 1,000 neurons in 9 lobes; a 16-cell decision layer picks the strongest-firing action; drive reduction releases a reward chemical and drive increase a punishment chemical, which reinforce excitatory or inhibitory synapses, so norns learn to eat when hungry but not when full. In Black & White (2001) the creature follows a belief-desire-intention model with desires as simplified perceptrons and opinions as decision trees; the player strokes or slaps it after actions and uses leashes to direct its attention. Inputs: player feedback, drives, perceived objects. Outputs: changed action probabilities.",
    "design_levers": [
      "learning rate and how quickly old associations fade",
      "credit assignment window that decides which recent action receives the feedback",
      "granularity of the situation representation (object types, desires, contexts), which decides what generalizes",
      "feedback channels such as stroke and slap, food, demonstration, and attention leashes",
      "innate drives and biases the learning starts from"
    ],
    "dynamics": [
      "Creatures from the same start diverge into distinct personalities, which drives players to share and compare them.",
      "Learned behavior acts on the world, so training choices reshape villages, alignment, and appearance in Black & White.",
      "Learning from internal drives without player input produces self-taught habits and odd local optima."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Credit assignment errors attach feedback to the wrong action or object, and players cannot tell why the creature learned something.",
      "Learning too slowly makes training feel ignored; too quickly lets one slap erase hours of shaping.",
      "Generalization surprises, such as a creature learning to eat villagers, read as bugs rather than lessons.",
      "Emergent learned behavior varies by player, which makes testing and balancing expensive; Black & White was later called overrated for underusing its creature."
    ],
    "family": "agents-behavior",
    "feedback": "both",
    "id": "creature-learning",
    "legibility": 2,
    "math_basis": [
      "machine-learning",
      "utility-decision"
    ],
    "maturity": "established",
    "name": "Creature learning",
    "open_questions": [
      "Can modern reinforcement learning or language-conditioned policies give creatures learning that generalizes the way players intend, with explainable credit assignment?",
      "Does exposing a creature's learned associations improve attachment or destroy the illusion of a mind?"
    ],
    "player_experience": "The player becomes a parent or trainer. Each reward is a bet about what the creature will generalize, and personality emerges from the history of training. Success feels like understanding; failure feels like a stubborn pet, and players blame themselves for bad habits.",
    "player_interface": [
      "direct-manipulation",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-grand-1996-creatures-alife",
      "src-wikipedia-black-and-white"
    ],
    "status": "sourced",
    "substrate": [
      "learned-model",
      "agent-based"
    ],
    "summary": "A creature's behavior is learned from player reward and punishment or from neural adaptation over its life.",
    "synergy": [
      {
        "id": "god-powers",
        "note": "The creature learns from how the god acts, making the player's own behavior a training signal (Black & White)."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "used_by": [
          "dwarf-fortress",
          "pocket-city",
          "prison-architect",
          "schedule-i",
          "simcity-1989",
          "theme-park"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "crime rate",
      "law enforcement"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each map cell, district, or agent holds a crime level derived from a propensity function over conditions, minus a suppression term from policing. In the open-sourced SimCity engine (Micropolis), crimeScan sets each cell to 128 - land value + population density (capped at 300), subtracts a police-influence map smoothed three times from station positions and funding, and clamps to 0-250; the city average drives a high-crime warning above 100 and crime feeds back into land value. Agent-based variants such as Cities: Skylines 2 spawn criminals and crime events that police units respond to, with arrests flowing into jails and prisons of limited capacity. Tropico and SimCity 2000 use similar aggregate fields, and Prison Architect models the justice end, where reform and labour programmes lower recidivism and the prison is graded on recidivism, happiness, and violence. Inputs: land value, density, education, employment, happiness, police coverage and funding. Outputs: crime map, satisfaction and value penalties, incidents, and incarcerated population.",
    "design_levers": [
      "inputs and weights of the crime propensity function (land value, density, unemployment, education, happiness)",
      "police coverage radius, capacity, and the funding-to-effect curve",
      "justice pipeline capacity: jail and prison slots and what happens when they fill",
      "strength of crime's feedback into land value, migration, and satisfaction",
      "aggregate field versus discrete crime events with agents"
    ],
    "dynamics": [
      "Coverage creates safe islands around stations and crime pockets in gaps, so station placement becomes a covering problem.",
      "Coupling with land value and zoning makes crime track inequality across the map.",
      "Budget cuts to policing show up with a lag, producing oscillation when players react late."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "When suppression is just coverage, the optimal play is blanketing the map with stations, and the social causes the model encodes stop mattering.",
      "Crime lowers land value, which raises crime, so poor districts can lock into a spiral the player cannot read as a loop.",
      "Hidden justice capacity limits make crime rise for no visible reason once jails fill."
    ],
    "family": "risk-failure",
    "feedback": "both",
    "id": "crime-policing",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "cellular-automata",
      "queueing"
    ],
    "maturity": "classic",
    "name": "Crime and policing",
    "open_questions": [
      "Can agent-level motives (need, opportunity, social ties) produce crime patterns that reward social policy over coverage, without becoming illegible?",
      "Would generated investigations or court cases make the justice side of the loop a playable system rather than a capacity number?"
    ],
    "player_experience": "The player reads a crime overlay, spots hot districts, and decides between adding stations, raising police funding, or fixing root causes such as low land value or unemployment. Crime is a visible symptom of neglected neighborhoods and a running cost of growth.",
    "player_interface": [
      "placement",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-hopkins-2008-micropolis",
      "src-wikipedia-prison-architect"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "aggregate-stocks",
      "agent-based"
    ],
    "summary": "Crime levels arise from local conditions such as land value, density, or unemployment, and police coverage, prisons, and justice reduce them.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 7,
      "earliest_game": "project-zomboid",
      "earliest_year": 2011,
      "incoming": {
        "used_by": [
          "against-the-storm",
          "eco",
          "frostpunk",
          "frostpunk-2",
          "ftl",
          "mindustry",
          "plague-inc",
          "project-zomboid",
          "teardown",
          "timberborn"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 7,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "doom clock",
      "known deadline",
      "preparation timer"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns a countdown to a scheduled crisis (in days, turns, or progress percent), the crisis's nature, and sometimes its expected severity. Each tick the counter falls; at zero the crisis applies a large state change such as extreme cold, an attack, a flood, or a scenario loss, which the player's preparation mitigates. The timer may be fixed, randomized within a known window, or driven by a rival process the player can slow. Frostpunk's main scenario builds toward the Great Storm, and its Last Autumn scenario races to finish an outpost before a storm; Plague Inc. runs a cure-research percentage that ends the game when it completes; Don't Starve's winter arrives on a fixed schedule; The Legend of Zelda: Majora's Mask frames play around a three-day falling moon. Inputs are elapsed time and actions that shift the clock; outputs are the crisis and its severity.",
    "design_levers": [
      "warning lead time and whether the exact date is known",
      "crisis severity and whether it is shown in advance",
      "whether player actions can delay, accelerate, or weaken the crisis",
      "single climactic crisis versus recurring crises of rising strength",
      "failure handling: scenario loss, heavy damage, or partial survival"
    ],
    "dynamics": [
      "Players shift from expansion to stockpiling as the counter runs down, creating distinct phases within a run.",
      "Countdowns reward forecasting tools that project resource runways to the deadline.",
      "Recurring crises such as winters or droughts escalate into a cycle of preparation and recovery."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "A crisis with a fixed required preparation becomes a build order that players replay rather than a plan.",
      "Too much lead time removes tension; too little makes the crisis an unavoidable random event.",
      "A single climactic crisis gives a scenario a hard end and little reason to replay."
    ],
    "family": "time-pacing",
    "feedback": "none",
    "id": "crisis-countdown",
    "legibility": 4,
    "math_basis": [
      "scheduling",
      "optimization"
    ],
    "maturity": "established",
    "name": "Crisis countdown",
    "open_questions": [
      "Can a director model choose crises that target the player's actual weak points while keeping the warning fair?"
    ],
    "player_experience": "Dread and focus. Knowing what is coming and when, the player turns the remaining days into a plan: stockpile coal, insulate homes, finish the walls. The final days narrow choices to triage, and surviving feels earned because the preparation was the player's own.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-wikipedia-frostpunk",
      "src-wikipedia-plague-inc",
      "src-dontstarvewiki-2026-day-night-cycle"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "A known future crisis such as a storm, winter, cure, or deadline is announced in advance, and the remaining time structures preparation.",
    "synergy": [
      {
        "id": "seasons",
        "note": "A known winter or storm turns the season calendar into a preparation deadline."
      },
      {
        "id": "forecasting",
        "note": "Forecasts let the player plan against the countdown rather than be ambushed by it (Frostpunk)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 8,
      "earliest_game": "hamurabi",
      "earliest_year": 1968,
      "incoming": {
        "involved_in": [
          "learned-weather-layer"
        ],
        "used_by": [
          "autonauts",
          "banished",
          "captain-of-industry",
          "dont-starve",
          "dwarf-fortress",
          "farming-simulator-25",
          "farthest-frontier",
          "going-medieval",
          "hamurabi",
          "harvest-moon",
          "kenshi",
          "kingdoms-and-castles",
          "manor-lords",
          "minecraft",
          "oxygen-not-included",
          "pharaoh",
          "project-zomboid",
          "rimworld",
          "schedule-i",
          "stardew-valley",
          "stationeers",
          "the-farmer-was-replaced",
          "timberborn",
          "valheim",
          "viva-pinata"
        ]
      },
      "prevalence": 25,
      "prevalence_rank": 14,
      "prevalence_share": 0.141,
      "subgenre_spread": 10,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "farming",
      "growing",
      "agriculture"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Each planted cell or field holds a crop type, a growth progress value, and condition flags such as watered, fertilized, or diseased. Each tick or day, progress advances at a base rate multiplied by modifiers for soil fertility, water, light, temperature, and season; outside allowed conditions growth stops or the plant dies. At maturity the crop is harvested for a yield, sometimes scaled by care or skill, and the cell resets, regrows, or loses fertility. Harvest Moon and Stardew Valley require daily watering and tie crops to seasons of a fixed calendar; RimWorld scales growth by soil fertility and light and halts it outside a temperature band; Farming Simulator turns field preparation, sowing, fertilizing, and harvesting into vehicle operations; Manor Lords and Farthest Frontier track soil fertility per field and reward crop rotation. Inputs: seeds, labor or player actions, environmental conditions. Outputs: harvested goods and an updated field state.",
    "design_levers": [
      "growth duration per crop and number of visible stages",
      "which conditions gate growth (water, light, temperature, season, fertility) and whether violating them pauses or kills the crop",
      "single-harvest versus regrowing crops",
      "yield and quality modifiers from fertilizer, skill, or care",
      "soil fertility depletion and recovery rules, including rotation or fallow",
      "labor or action cost of planting, tending, and harvesting"
    ],
    "dynamics": [
      "Harvests arrive in pulses, creating labor peaks that compete with construction and hauling.",
      "Seasonal growth windows couple farming to storage and spoilage, turning winter into a stockpiling test.",
      "Soil depletion pushes expansion onto new land or forces rotation schedules.",
      "Weather events and blights can wipe out a season and cascade into famine."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Daily manual tending scales poorly, so large farms become rote clicking until automation such as sprinklers arrives.",
      "One crop with the best value per day dominates and planting choice disappears.",
      "Season-change crop deaths feel arbitrary when the calendar is not prominent.",
      "Growth too fast relative to consumption makes food trivial; growth too slow with harsh winters makes early runs unwinnable."
    ],
    "family": "resources-production",
    "feedback": "none",
    "id": "crop-cultivation",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Crop cultivation",
    "open_questions": [
      "Can learned plant growth models give crops plausible responses to microclimate that players can still reason about?",
      "How much automation can farming absorb before cultivation stops being a decision?"
    ],
    "player_experience": "Planning around a delayed payoff. The player commits land and time now for a harvest days or a season later, then guards the field against weather, pests, and neglect. In avatar farming games the daily watering round becomes a ritual; in colony sims the growing season becomes a deadline that sets how much must be stored for winter.",
    "player_interface": [
      "placement",
      "direct-manipulation",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-wikipedia-harvest-moon",
      "src-wikipedia-stardew-valley"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Planted crops progress through growth stages over days or seasons depending on water, soil, and season, then are harvested.",
    "synergy": [
      {
        "id": "daily-action-budget",
        "note": "Watering and harvesting consume the daily energy budget, forcing farm sizing tradeoffs."
      },
      {
        "id": "seasons",
        "note": "Season-locked crops create a calendar of planting decisions."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "theme-park",
      "earliest_year": 1994,
      "incoming": {
        "affected_by": [
          "human-behavior-simulation-models",
          "mean-field-games"
        ],
        "involved_in": [
          "human-calibrated-customers",
          "mean-field-crowds",
          "neural-npc-motion"
        ],
        "used_by": [
          "jurassic-world-evolution",
          "planet-coaster",
          "planet-zoo",
          "rollercoaster-tycoon",
          "theme-park",
          "zoo-tycoon"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 1,
      "technique_count": 2,
      "technique_exposure": 0.375
    },
    "ai_leverage": 3,
    "aliases": [
      "guest thoughts",
      "visitor preferences"
    ],
    "authoring_cost": 2,
    "compute_cost": 3,
    "definition": "Owns a large population of visitor agents, each with preference parameters sampled at spawn (intensity range, nausea tolerance, tastes), a cash budget, and mood stocks such as happiness, energy, hunger, thirst, and toilet. When choosing what to do, a visitor filters attractions by preference and budget, picks among the acceptable ones, and on rejection or experience emits a named thought that changes happiness. In RollerCoaster Tycoon, per the OpenRCT2 reimplementation, a guest rejects a ride whose intensity rating is below its minimum or above its maximum preferred intensity (both widened by happiness), whose nausea rating exceeds its tolerance (300, 600, 800, or 1000 plus happiness), or whose price exceeds twice the ride's value (value quartered when the park charges entry); rejections lower happiness and create thoughts such as bad value, and guests with nothing left to ride head home. Outputs: attendance, spending, park rating, crowding.",
    "design_levers": [
      "preference distributions sampled at spawn (intensity, nausea, tastes, budget)",
      "acceptance rule (hard thresholds versus scored choice) and the price-to-value tolerance multiplier",
      "thought vocabulary and how thoughts aggregate into a park or facility rating",
      "mood decay rates and leave-the-park thresholds",
      "crowd size and spawn rate tied to rating, marketing, or price of entry"
    ],
    "dynamics": [
      "Preferences spread over intensity create demand for a portfolio of gentle and intense attractions rather than one best ride.",
      "Rating raises attendance, and the larger crowd congests queues and paths until mood falls, a balancing loop on growth.",
      "Players learn the value threshold and price every attraction just below it, a stable arbitrage the rule invites."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Price-value rules that ignore context let players overcharge a few attractions with no penalty, or punish small price changes too harshly.",
      "Thought spam: hundreds of identical thoughts bury the actionable signal.",
      "Narrow preference sampling makes the crowd behave like one average agent, removing segmentation decisions.",
      "Large crowds cost pathfinding and update time, capping park size."
    ],
    "family": "agents-behavior",
    "feedback": "balancing",
    "id": "crowd-preferences",
    "legibility": 3,
    "math_basis": [
      "probability-statistics",
      "utility-decision",
      "queueing"
    ],
    "maturity": "classic",
    "name": "Crowd preferences",
    "open_questions": [
      "Can visitor preference models fitted to real attendance or survey data make tycoon crowds more segmentable without losing legibility?",
      "How should thousands of thoughts be summarized so the player sees causes rather than noise?"
    ],
    "player_experience": "The player reads the crowd as a distribution: thought feeds and aggregate complaints reveal what is missing, and the fix is a layout or pricing change rather than an order. Individual guests are funny and disposable; the crowd's mood is the scoreboard, and pricing becomes a dial between revenue and goodwill.",
    "player_interface": [
      "observation",
      "placement",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-openrct2-2026-guest-behaviour",
      "src-wikipedia-rollercoaster-tycoon"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "stochastic-events"
    ],
    "summary": "Large visitor populations with individual preferences, budgets, and tolerances choose attractions and react with visible thoughts.",
    "synergy": [
      {
        "id": "customer-value-choice",
        "note": "Individual tastes and budgets make pricing and attraction mix matter."
      },
      {
        "id": "service-queues",
        "note": "Visible queues and complaints let crowds express capacity problems."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "europa-universalis-4",
      "earliest_year": 2013,
      "incoming": {
        "used_by": [
          "crusader-kings-3",
          "europa-universalis-4",
          "stellaris",
          "victoria-3"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "conversion",
      "assimilation",
      "missionaries",
      "faith spread",
      "ethics attraction"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-paradoxwikis-2026-vic3-pops"
        ],
        "text": "Victoria 3 pops share profession, culture, religion, state, and workplace."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-paradoxwikis-2026-ck3-opinion"
        ],
        "text": "Crusader Kings III applies faith hostility opinion modifiers from 0 to -30 between characters."
      }
    ],
    "compute_cost": 2,
    "definition": "Owns categorical identity attributes (culture, faith, and in some games ideology or ethics) per province, county, or population group, plus conversion progress or a per-period conversion share. Each period progress accrues from sources such as assigned missionaries or court officials, state religion and laws, assimilation into the majority culture, buildings, and the ruler's or government's alignment, against resistance from population size, development, or fervor; when progress completes the attribute flips, or in population-group models a fraction of each group switches. Other systems read the identities: a mismatch with the ruler or state adds unrest and opinion penalties, a match or accepted status grants bonuses, and shared or hostile identities shape alliances and wars. Victoria 3 stores its population as pops that share profession, culture, religion, and state. Crusader Kings III applies opinion penalties between faiths by hostility and lets rulers convert counties' faith and culture. Europa Universalis IV converts province religion with missionaries. It differs from population-strata, which owns class tiers and promotion; identity is orthogonal to class.",
    "design_levers": [
      "conversion speed and the resistance factors (population size, development, fervor)",
      "which agents or policies can convert (missionaries, court officials, laws, buildings)",
      "binary flip per province versus a share of each population group per period",
      "penalties and bonuses attached to matching or mismatched identities",
      "tolerance and acceptance rules that let mixed identities coexist",
      "whether players can found, reform, or hybridize faiths and cultures"
    ],
    "dynamics": [
      "Majority identities grow by assimilation, a reinforcing loop toward homogeneous heartlands with contested borderlands.",
      "Identity mismatch feeds unrest and revolt, coupling conversion to stability and military occupation.",
      "Shared faiths and cultures become alliance lines, so identity maps shape diplomacy."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Cheap, certain conversion homogenizes every realm and erases the identity layer by mid-game.",
      "Severe unrest from mismatched identity turns conquering other cultures into a trap and narrows play to one strategy.",
      "Faiths and cultures that differ only in numeric modifiers feel interchangeable.",
      "Treating the conversion of real faiths and peoples as a pure optimization can read as endorsing forced conversion."
    ],
    "family": "population-lineage",
    "feedback": "reinforcing",
    "id": "culture-religion-conversion",
    "legibility": 3,
    "math_basis": [
      "social-network",
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Culture and religion conversion",
    "open_questions": [
      "Can language models generate new faiths and cultures whose doctrines produce consistent mechanical effects and believable schisms?",
      "Can conversion run as diffusion through social networks of individual agents rather than as a per-province progress bar?"
    ],
    "player_experience": "The map has a second layer of identity beneath its borders. The player conquers land that will not accept them, then spends missionaries, officials, or decades of policy converting it, choosing between tolerating diversity and its unrest or homogenizing at a cost. Faiths and cultures spreading, splitting, and reforming become the long arcs of a campaign.",
    "player_interface": [
      "orders",
      "choice-cards",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-paradoxwikis-2026-vic3-pops",
      "src-paradoxwikis-2026-ck3-opinion"
    ],
    "status": "asserted",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Provinces or population groups carry culture and faith identities that drift or are converted by missionaries, policies, and rulers, changing unrest, opinion, and bonuses.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 7,
      "earliest_game": "lemonade-stand",
      "earliest_year": 1973,
      "incoming": {
        "affected_by": [
          "human-behavior-simulation-models"
        ],
        "involved_in": [
          "human-calibrated-customers"
        ],
        "used_by": [
          "big-ambitions",
          "capitalism",
          "house-flipper",
          "lemonade-stand",
          "planet-coaster",
          "rollercoaster-tycoon",
          "schedule-i",
          "theme-park"
        ]
      },
      "prevalence": 8,
      "prevalence_rank": 77,
      "prevalence_share": 0.045,
      "subgenre_spread": 3,
      "technique_count": 1,
      "technique_exposure": 0.25
    },
    "ai_leverage": 3,
    "aliases": [
      "willingness to pay",
      "price sensitivity",
      "consumer choice"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns each customer's (or segment's) preference weights and budget, and each offering's price and value attributes. When a customer wants a good or service, the rule scores every reachable offering, typically utility = perceived value x preference match - price - distance or wait, then buys the best one, samples in proportion to scores, or buys nothing when every price exceeds willingness to pay. Lemonade Stand (1973) reduces it to three daily inputs (glasses made, advertising signs, price per glass) whose sales vary with the weather report. RollerCoaster Tycoon guests refuse rides and stalls they judge too expensive for what they offer and say so in their thoughts. Capitalism weighs price, quality, and brand by product category to split demand among competing stores.",
    "design_levers": [
      "shape of the utility function and which attributes (quality, brand, novelty, distance, wait) enter it",
      "price sensitivity per customer segment, income class, or trait",
      "heterogeneity: one representative customer versus sampled individual preferences",
      "deterministic best choice versus probabilistic (logit) choice",
      "whether customers explain rejections through thoughts, reviews, or complaints"
    ],
    "dynamics": [
      "Competing sellers undercut each other until quality or brand differentiation ends the price war.",
      "Choices propagate congestion: the best-value stall attracts queues that lower its effective value.",
      "Segmented preferences reward a portfolio of offerings over one best product."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A single representative customer yields one optimal price that players find once and never revisit.",
      "Hidden value thresholds read as random rejection unless thoughts or reviews explain them.",
      "Weak price sensitivity lets players charge extreme prices with little loss, so gouging dominates."
    ],
    "family": "economy-finance",
    "feedback": "balancing",
    "id": "customer-value-choice",
    "legibility": 3,
    "math_basis": [
      "utility-decision",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Customer value choice",
    "open_questions": [
      "Can LLM-driven customers with stated tastes and budgets haggle or complain in language while staying consistent with a calibrated demand curve?",
      "How much preference heterogeneity is needed before players stop finding a single dominant price?"
    ],
    "player_experience": "Finding the price people will bear. The player probes prices, watches thoughts or sales drop when they overreach, and invests in quality or marketing to justify charging more. Small numbers become visible crowds walking past or lining up.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-wikipedia-lemonade-stand"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "aggregate-stocks"
    ],
    "summary": "Customers choose among offerings by comparing price to perceived value and personal preference.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "princess-maker-2",
      "earliest_year": 1993,
      "incoming": {
        "used_by": [
          "hardspace-shipbreaker",
          "harvest-moon",
          "papers-please",
          "princess-maker-2",
          "stardew-valley"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 1,
    "aliases": [
      "stamina budget",
      "energy bar",
      "time slots"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns a budget that refills at the start of each in-game day (energy points, stamina, clock hours, or a fixed number of time slots) and a cost per action. Actions spend from the budget; at zero the player is penalized or the day ends, and sleep restores the budget, sometimes less after staying up late. Stardew Valley gives 270 base energy, raised by Stardrops, charges energy for tool use, exhausts the farmer at 0, and makes them pass out at -15 energy or at 2 a.m.; passing out away from home costs 10% of gold up to 1,000g, and going to bed after midnight restores less. Harvest Moon set the stamina-and-clock farm day that Stardew Valley follows; Persona allocates a fixed number of time slots per day to activities. Inputs are action costs and restoration items; outputs are the actions completed per day.",
    "design_levers": [
      "budget size and whether it grows with progression",
      "cost per action and which actions are free",
      "penalties at or past zero and for staying up late",
      "restoration sources within the day, such as food",
      "time slots versus a continuous pool"
    ],
    "dynamics": [
      "Players batch tasks spatially to save time, which shapes farm and base layout.",
      "Budget-expanding items become top priorities, forming an upgrade path.",
      "Automation such as sprinklers frees the budget from chores for new activities, marking progression."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "A budget that is too tight early makes the opening a grind; one that grows too fast stops mattering by midgame.",
      "When one activity has the best return per point, every day becomes the same routine.",
      "Harsh pass-out penalties push players to reload rather than accept a bad day."
    ],
    "family": "time-pacing",
    "feedback": "none",
    "id": "daily-action-budget",
    "legibility": 4,
    "math_basis": [
      "optimization",
      "scheduling"
    ],
    "maturity": "classic",
    "name": "Daily action budget",
    "open_questions": [
      "Can generated daily events or requests keep each day's allocation decision fresh without hand-authored content?"
    ],
    "player_experience": "Every morning is a planning puzzle. The player picks which crops to water, whom to visit, or which job to take, knowing the rest must wait. The end of each day gives a natural stopping point and a sense of steady progress, and upgrades that stretch the budget feel substantial.",
    "player_interface": [
      "direct-manipulation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-stardewvalleywiki-2026-energy"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "A per-day pool of energy, stamina, or time slots limits how many actions the player can take, and the day's end resets it and forces prioritization.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "little-computer-people",
      "earliest_year": 1985,
      "incoming": {
        "affected_by": [
          "generative-agents"
        ],
        "involved_in": [
          "intent-level-orders"
        ],
        "used_by": [
          "big-ambitions",
          "frostpunk",
          "generative-agents-smallville",
          "little-computer-people",
          "prison-architect",
          "simtower",
          "stardew-valley",
          "the-sims-3"
        ]
      },
      "prevalence": 8,
      "prevalence_rank": 77,
      "prevalence_share": 0.045,
      "subgenre_spread": 6,
      "technique_count": 1,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "routines",
      "regimes",
      "timetables"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a timetable per agent or group mapping time-of-day blocks to activity categories (sleep, work, eat, leisure), set by the player, authored, or generated. Each tick the current block filters or biases which actions an agent may choose and which areas it may enter; block boundaries trigger mass movement. Prison Architect regimes are hourly schedules per risk category (Lockup, Sleep, Eat, Yard, Shower, Free Time, Work variants) that confine prisoners to areas rather than forcing actions, and cooks start four hours before an Eat block. RimWorld's schedule assigns each colonist's hours to sleep, recreation, work, or anything. Generative Agents (2023) has a language model draft a day plan of five to eight broad chunks, then decompose it into hour-long and 5-15 minute actions and replan on events. Inputs: clock, block assignments, disruptions. Outputs: synchronized demand peaks and occupancy by room and hour.",
    "design_levers": [
      "block granularity (hourly, shift-based, or free-form plans)",
      "who sets the schedule: player, authored routine, or agent-generated plan",
      "strictness: hard confinement, soft bias, or ignorable when needs are urgent",
      "per-group or per-agent schedules and shift staggering",
      "response to disruption: skip the block, delay, or replan"
    ],
    "dynamics": [
      "Shared blocks produce peaks on food, transit, and services, generating queues and congestion at predictable hours.",
      "Staggered shifts emerge as a player strategy that trades coordination effort for throughput.",
      "Coupled with day-night cycles and crime, schedules create time-dependent risk such as unattended night hours."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Synchronized blocks create rush hours that overwhelm shared facilities such as canteens, showers, and transit.",
      "Agents follow the schedule into danger because blocks override situational awareness.",
      "Authored routines repeat visibly, so the world reads as clockwork after a few days.",
      "Schedules that conflict with needs create deadlocks in which agents go hungry or sleepless between blocks."
    ],
    "family": "agents-behavior",
    "feedback": "none",
    "id": "daily-schedules",
    "legibility": 4,
    "math_basis": [
      "scheduling",
      "queueing"
    ],
    "maturity": "classic",
    "name": "Daily schedules",
    "open_questions": [
      "Can language-model day plans stay coherent across weeks of game time while remaining cheap enough for hundreds of agents?",
      "How much schedule variation is needed before a town stops reading as clockwork?"
    ],
    "player_experience": "The player thinks in time: staggering shifts so the canteen is not mobbed, protecting sleep, and noticing when one block is starved. Schedules make agents look like they have lives and give the world a daily rhythm the player learns and exploits.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-paradoxwikis-2026-prison-architect-regime",
      "src-park-2023-generative-agents"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based"
    ],
    "summary": "Agents follow time-blocked routines for work, sleep, and leisure that create rhythms of demand across the day.",
    "synergy": [
      {
        "id": "traffic-congestion",
        "note": "Synchronized commutes produce rush-hour peaks that stress the network."
      },
      {
        "id": "needs-decay",
        "note": "Schedules decide when needs can be met, creating crowding at meals and bedtime."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "balance-of-power",
      "earliest_year": 1985,
      "incoming": {
        "involved_in": [
          "bottleneck-explainer",
          "branch-preview-forecasts",
          "participatory-planning-sandboxes",
          "symbolic-sim-neural-render"
        ],
        "used_by": [
          "balance-of-power",
          "oxygen-not-included",
          "simcity-1989",
          "simearth",
          "universe-sandbox"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "info views",
      "map modes",
      "data maps",
      "heatmaps"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "A map mode recolors the world by one per-cell, per-building, or per-segment field: land value, pollution concentration, crime, service coverage, traffic volume or speed, power and water connectivity, temperature, gas composition, germs, or political ownership. It owns no simulation state; it samples a field and maps it through a color ramp or categorical palette, sometimes adding glyphs such as flow arrows. Update rule: when active, sample the field each frame or on change and redraw; some games switch an overlay on automatically when the player places a related building. Canonical forms: the data maps of SimCity and SimCity 2000, Cities: Skylines info views, the oxygen, temperature, power, plumbing, decor, and germ overlays of Oxygen Not Included, Factorio's pollution cloud on the map view, and the map modes of Europa Universalis IV.",
    "design_levers": [
      "which fields get an overlay, since exposing a field makes it an optimization target",
      "continuous gradient versus thresholded bands",
      "fixed absolute scale versus auto-normalized to the current map range",
      "automatic display while placing a related building",
      "instantaneous value versus time-averaged value",
      "single overlay at a time versus composites, and colorblind-safe palettes"
    ],
    "dynamics": [
      "An exposed field becomes a painting target: players lay out coverage grids until no red remains.",
      "Visible spatial externalities push players toward land-use separation, such as industry far from housing.",
      "In games with diffusing fields (heat, gas), overlays are how players discover emergent flows they did not intend."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Auto-normalized color ramps make a minor problem look red and a severe one look identical.",
      "Overlays without legends or units show where something is high but not how high.",
      "Overlays of fields with hidden formulas, such as land value, show where but not why.",
      "Red-green ramps are unreadable for many colorblind players."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "data-overlays",
    "legibility": 4,
    "math_basis": [
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Data overlays",
    "open_questions": [
      "Can automated annotation of overlays (this plume originates from these three sources) close the gap between where and why?",
      "Which fields should stay without an overlay to preserve discovery and uncertainty?"
    ],
    "player_experience": "A hunch becomes a picture. The player sees the shape of a hidden field, such as a pollution plume or a coverage gap, and responds spatially by moving, adding, or separating buildings. Overlays are the main debugging tool for layout.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "ui-layer",
      "cellular-grid"
    ],
    "summary": "Map layers visualize hidden variables such as land value, pollution, coverage, or traffic.",
    "synergy": [
      {
        "id": "pollution-spread",
        "note": "Overlays make invisible diffusion fields legible."
      },
      {
        "id": "traffic-congestion",
        "note": "Traffic overlays turn congestion from a vague complaint into a located problem."
      },
      {
        "id": "service-coverage",
        "note": "Coverage overlays show gaps that would otherwise surface only as complaints."
      },
      {
        "id": "land-value",
        "note": "Land value maps are the canonical city-builder overlay."
      }
    ],
    "tension": [
      {
        "id": "fog-of-war",
        "note": "Full-information overlays undercut hidden-information play; games must choose what to reveal."
      }
    ],
    "tuning_difficulty": 1,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "railroad-tycoon",
      "earliest_year": 1990,
      "incoming": {
        "used_by": [
          "game-dev-story",
          "game-dev-tycoon",
          "railroad-tycoon",
          "simcity-2000",
          "transport-tycoon"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "era availability",
      "calendar unlocks",
      "model introduction dates",
      "historical timeline"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a catalog of models (vehicles, consoles, components, building types), each with an introduction date, a retirement or obsolescence date, and stats, plus the rule that checks the in-game calendar each period and adds models to or removes them from what the player can buy or target. Availability depends only on the date, not on player spending, so every company gains the same options at the same time. New models often arrive with lower launch reliability or a short exclusive preview, and retired models can no longer be bought while existing units keep aging. Transport Tycoon (1994) introduces road, rail, sea, and air models on a timeline across its calendar, so fleets are renewed as better vehicles arrive and old ones lose reliability; Railroad Tycoon releases locomotives by era; Game Dev Tycoon launches and retires fictional consoles on a fixed timeline that forces platform bets. It differs from tech-tree, where unlocks are bought with accumulated research in an order the player chooses; here time alone unlocks.",
    "design_levers": [
      "introduction and retirement dates per model, and whether they vary slightly between games",
      "start year and calendar speed, which choose the eras a game covers",
      "prototype or exclusive preview windows and launch reliability",
      "whether old models are withdrawn or stay buyable",
      "size of each generational jump"
    ],
    "dynamics": [
      "Fleet renewal waves follow major introductions and cause cash crunches and service gaps.",
      "Every company gains new models at once, so competition shifts to who adopts and finances renewal best.",
      "Launch and retirement dates decide which platform bets pay off, as with console choice in Game Dev Tycoon."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Games that run past the last introduction date stall with nothing new to buy.",
      "Retiring a model without a successor leaves a role with no buyable vehicle or platform.",
      "Fixed dates become memorized, so experienced players plan purchases around known release years.",
      "Generational jumps so large that switching is always immediate remove the renewal decision."
    ],
    "family": "progression-goals",
    "feedback": "none",
    "id": "dated-tech-timeline",
    "legibility": 4,
    "math_basis": [
      "scheduling",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Dated technology timeline",
    "open_questions": [
      "Could introduction dates respond to simulated demand and rival research, making the timeline emergent rather than fixed?",
      "Does a historical timeline reward knowledge of real history in ways that help or hurt replayability?"
    ],
    "player_experience": "History arrives on schedule. The player watches the calendar for the next locomotive or console, plans when to switch, and lives with a fleet or catalog that ages out from under them. A new era is a forced renewal decision rather than a reward the player earned.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "rule-system"
    ],
    "summary": "New vehicle models, platforms, or products enter and leave availability on a calendar tied to in-game dates rather than to research, forcing fleet or platform renewal.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "x-plane",
      "earliest_year": 1995,
      "incoming": {
        "affected_by": [
          "neural-rendering-shaders"
        ],
        "used_by": [
          "arma-3",
          "cities-skylines-2",
          "dont-starve",
          "dyson-sphere-program",
          "euro-truck-simulator-2",
          "harvest-moon",
          "microsoft-flight-simulator-2020",
          "microsoft-flight-simulator-2024",
          "minecraft",
          "planet-zoo",
          "project-zomboid",
          "schedule-i",
          "silent-hunter-3",
          "subnautica",
          "tamagotchi",
          "the-long-dark",
          "this-war-of-mine",
          "where-winds-meet",
          "x-plane",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 20,
      "prevalence_rank": 23,
      "prevalence_share": 0.113,
      "subgenre_spread": 12,
      "technique_count": 1,
      "technique_exposure": 0.75
    },
    "ai_leverage": 2,
    "aliases": [
      "diurnal cycle",
      "time of day"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a time-of-day value that advances each tick and wraps at a fixed day length, usually split into phases such as day, dusk, and night. Each phase sets ambient light, sometimes temperature, and flags read by other systems: agent schedules, spawn tables, growth, sanity or fear, and shop hours. Don't Starve uses an 8-minute real-time day of sixteen 30-second segments whose day, dusk, and night split shifts with the season; in total darkness the monster Charlie attacks and sanity drains at 50 per minute. Minecraft has a 20-minute day and spawns hostile mobs in low light, and The Long Dark makes nights colder. Inputs are elapsed time and season; outputs are phase flags and light levels.",
    "design_levers": [
      "day length in real time and the day, dusk, and night split, fixed or varying by season",
      "how dark night gets and whether light sources are required to act",
      "which systems read the phase: spawns, agent schedules, temperature, growth, prices",
      "penalty for being caught in darkness, from reduced visibility to direct damage",
      "whether the player can skip the night by sleeping"
    ],
    "dynamics": [
      "Bases cluster around light sources, and trips shrink to what can be done before dusk.",
      "Combined with daily schedules, synchronized agents create rush hours at dawn and dusk.",
      "Night becomes a high-risk, high-reward window when rare resources or creatures appear only in darkness."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Night that is only darker visuals with no mechanical difference becomes an annoyance players remove by raising brightness.",
      "Nights that are too punishing make every night identical: retreat and wait, wasting play time.",
      "Long real-time days make planning trivial; very short ones make players feel unable to finish trips."
    ],
    "family": "environment-ecology",
    "feedback": "none",
    "id": "day-night-cycle",
    "legibility": 5,
    "math_basis": [
      "scheduling",
      "information-theory"
    ],
    "maturity": "classic",
    "name": "Day-night cycle",
    "open_questions": [
      "Can learned relighting or neural rendering make time-of-day visual variety nearly free, moving authoring effort to behavioral differences?"
    ],
    "player_experience": "A rhythm of safety and threat. Day is for travel and work, dusk is a warning to head home, light fires, or finish tasks, and night is spent defending, sleeping, or risking the dark for better rewards. The player plans each day around the remaining light and learns to read the sky as a clock.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-dontstarvewiki-2026-day-night-cycle",
      "src-wikipedia-the-long-dark"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "A diurnal cycle changes light, visibility, temperature, and which agents are active, so activity follows the hour of the day.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "caesar-3",
      "earliest_year": 1998,
      "incoming": {
        "affected_by": [
          "gaussian-splatting",
          "neural-rendering-shaders",
          "text-to-3d-assets"
        ],
        "involved_in": [
          "generative-decoration-catalogs",
          "symbolic-sim-neural-render"
        ],
        "used_by": [
          "animal-crossing-new-horizons",
          "caesar-3",
          "farthest-frontier",
          "oxygen-not-included",
          "planet-coaster",
          "rimworld",
          "rollercoaster-tycoon",
          "the-sims",
          "two-point-hospital",
          "valheim",
          "zoo-tycoon"
        ]
      },
      "prevalence": 11,
      "prevalence_rank": 56,
      "prevalence_share": 0.062,
      "subgenre_spread": 5,
      "technique_count": 3,
      "technique_exposure": 1.375
    },
    "ai_leverage": 3,
    "aliases": [
      "beauty score",
      "scenery rating",
      "environment score"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Each decorative object, floor, or surface has a beauty value, and dirt, corpses, and filth are negative. The game aggregates values over a radius or a room and samples the result for agents or attractions. In RimWorld a room's beauty is total beauty divided by a weighted size (the size if above 40 tiles, otherwise 20 plus half the size), graded from hideous (below -3.5) to unbelievably beautiful (100 or more), and combined with wealth, space, and cleanliness into impressiveness that sets mood thoughts; colonists also get mood from the beauty around them. In RollerCoaster Tycoon 2, as documented by OpenRCT2, scenery within 5 tiles of a ride's station adds 0.05 excitement per item up to 47 items. The Sims 4 rates rooms by an environment score from decor. Inputs are placed objects; outputs are mood, ratings, or prices.",
    "design_levers": [
      "beauty value and cost of each object, and negative values for filth and industry",
      "aggregation rule: per tile, per radius, per room, with or without size normalization",
      "caps or diminishing returns on how much decoration counts",
      "which systems consume beauty: mood, ratings, prices, or visitor choice",
      "per-agent taste variation by trait or culture"
    ],
    "dynamics": [
      "Traffic creates filth that lowers beauty, which creates cleaning jobs that compete for labor.",
      "In RimWorld, decoration raises colony wealth, and wealth raises raid points, so beauty carries a security cost.",
      "Prosperity funds decoration, and decoration raises mood or ratings and so prosperity, a slow upgrade treadmill."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "One object with the best beauty per cost dominates, so players spam it regardless of how the space looks.",
      "Proximity rules that count only a hot spot, such as scenery near a ride station in RollerCoaster Tycoon 2, reward decorating one spot and ignoring the rest of the ride.",
      "Beauty values that disagree with the art (an ugly-looking object rated beautiful) break trust in the system.",
      "If the score is hidden, decoration reads as optional and the mechanic goes unused."
    ],
    "family": "space-construction",
    "feedback": "reinforcing",
    "id": "decoration-beauty",
    "legibility": 3,
    "math_basis": [
      "optimization",
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Decoration and beauty",
    "open_questions": [
      "Can a vision model score the composition of a space instead of summing per-object beauty values, and would players accept its judgment?",
      "Does generated decor reduce the asset cost enough to make beauty a deep system rather than a spam target?"
    ],
    "player_experience": "Cosmetic choices get a mechanical payoff, so players dress up rooms and paths and watch moods or ride ratings rise. The tension is between beautiful and efficient: every statue costs resources and floor space that production could use.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-rimworldwiki-2026-room",
      "src-openrct2-2026-ride-rating-calculation",
      "src-rimworldwiki-2026-raid-points"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "aggregate-stocks"
    ],
    "summary": "Decorative objects and scenery carry beauty values that are aggregated over tiles, rooms, or radii and feed agent mood or ratings.",
    "synergy": [
      {
        "id": "room-recognition",
        "note": "Room quality depends on furnishings and beauty, rewarding interior design."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "capitalism",
      "earliest_year": 1995,
      "incoming": {
        "affected_by": [
          "generalist-game-agents",
          "monte-carlo-tree-search",
          "voyager-skill-libraries"
        ],
        "involved_in": [
          "explained-delegation",
          "intent-level-orders",
          "teachable-sim-companion"
        ],
        "used_by": [
          "big-ambitions",
          "capitalism",
          "command-modern-operations",
          "farming-simulator-25",
          "hearts-of-iron-4",
          "silent-hunter-3",
          "stellaris"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 6,
      "technique_count": 3,
      "technique_exposure": 1.062
    },
    "ai_leverage": 4,
    "aliases": [
      "governors",
      "sector AI",
      "automation",
      "AI managers"
    ],
    "authoring_cost": 2,
    "claims": [
      {
        "confidence": "high",
        "sources": [
          "src-paradox-2016-stellaris-dev-diary-21-sectors"
        ],
        "text": "Stellaris launched with a limit on directly controlled core worlds, beyond which penalties applied, and sectors run by governors who develop planets under a player-set focus and taxation."
      }
    ],
    "compute_cost": 2,
    "definition": "The player assigns a subsystem (a city, sector, colony, fleet, department, or set of planets) to an AI controller and sets objectives and constraints: a focus, a budget, permissions, and policies. Each decision interval the controller runs the same decision logic the game's opponent AI uses, restricted to that subsystem, and issues actions on the player's behalf. State owned: assignment, goal settings, and permissions per delegated unit; the rest is read from the subsystem. Inputs: subsystem state and player settings. Outputs: build, research, production, or movement actions. Canonical forms: Stellaris sectors, which a 2016 dev diary justified with a core-world limit and in which sector governors develop planets and build mining stations under a player-set focus, Hearts of Iron IV battle plans executed by AI-controlled generals, automated workers in the Civilization series, Football Manager staff responsibilities, and automated traders and miners in X4: Foundations.",
    "design_levers": [
      "granularity of goals: single focus, weighted priorities, or explicit rules",
      "permissions such as may build, may demolish, may spend reserves",
      "transparency: whether the manager explains its choices",
      "manager competence relative to a good player",
      "incentives to delegate: hard limits on direct control versus voluntary convenience",
      "ease of reclaiming control and per-item overrides"
    ],
    "dynamics": [
      "Delegation allows simulations far larger than one player could micromanage, shifting play to allocation among managers.",
      "Partial delegation creates principal-agent tension: players watch managers and intervene at thresholds.",
      "Delegated units pursuing local goals can conflict with each other, such as two governors competing for one resource."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Managers that underperform a competent player turn delegation into a penalty that players avoid at all costs.",
      "Opaque managers make unexplained choices that players cannot correct without micromanaging.",
      "Managers that are too strong remove the game: the optimal play is to delegate everything.",
      "Forced delegation through control caps is widely resented; Stellaris sectors were reworked in later updates."
    ],
    "family": "control-automation",
    "feedback": "balancing",
    "id": "delegation-to-ai",
    "legibility": 3,
    "math_basis": [
      "utility-decision",
      "control-theory"
    ],
    "maturity": "established",
    "name": "Delegation to AI managers",
    "open_questions": [
      "Can language-model managers take natural-language mandates (keep morale high but never let the treasury go negative), explain their tradeoffs, and remain competent?",
      "Does delegation to a learned policy trained against the game's simulation make managers better than humans, and what is left for the player if so?"
    ],
    "player_experience": "The player moves up a level of abstraction and manages managers. Delegation trades control for attention and enables play at empire scale. When the AI does something dumb it feels like losing control; when it works it feels like governing.",
    "player_interface": [
      "parameter",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-paradox-2016-stellaris-dev-diary-21-sectors"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based"
    ],
    "summary": "Subsystems are handed to AI managers or governors that pursue player-set goals within bounds.",
    "tension": [
      {
        "id": "embodied-skill-control",
        "note": "Automating a subsystem removes the skill expression that made it the point."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "railroad-tycoon",
      "earliest_year": 1990,
      "incoming": {
        "used_by": [
          "railroad-tycoon",
          "transport-tycoon"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 1,
    "aliases": [
      "cargo payment rates",
      "time-decaying cargo value",
      "transit-time pricing"
    ],
    "authoring_cost": 2,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-transport-tycoon"
        ],
        "text": "Transport Tycoon pays for deliveries by delivery time as well as distance and cargo."
      },
      {
        "confidence": "high",
        "sources": [
          "src-openttd-2026-manual-orders"
        ],
        "text": "OpenTTD orders include transfer with partial payment for feeder services."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns a payment table per cargo type (a base rate, a distance weight, and a value curve over time in transit) and computes revenue at delivery from quantity, base rate, and distance, multiplied by a time factor that falls as transit time grows; in common implementations the factor holds flat for a cargo-specific grace period before it declines. Fast-decaying cargo such as mail and passengers rewards short or fast routes, while bulk cargo such as coal keeps its value over long, slow hauls. Cargo moved in stages can be paid in parts at transfer points. Transport Tycoon (1994) pays by cargo type, distance, quantity, and delivery time, and OpenTTD keeps the model and adds transfer orders with partial payment for feeder services. It differs from vehicle-route-scheduling, which owns the order lists that move cargo, and from contracts-orders, which owns discrete jobs with fixed payouts and deadlines; here every delivery is priced continuously by how long it took.",
    "design_levers": [
      "base rate per cargo type",
      "shape of each cargo's value curve (grace period, slope, floor)",
      "distance measure, straight-line between endpoints or route length",
      "partial payment rules for transfers and feeder legs",
      "inflation or era scaling of rates"
    ],
    "dynamics": [
      "Cargo sorts by mode, with mail and passengers on fast services and bulk goods on slow ones.",
      "Faster vehicles pay back through higher rates, coupling payment to fleet renewal.",
      "Congestion and signal delays cost money directly, so network design is priced."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Paying by route length rather than endpoint distance rewards deliberate detours.",
      "Near-identical curves make every cargo the same and remove route specialization.",
      "Transfer credits shown at feeder stations can make feeder vehicles look profitable while the final leg shows a loss, confusing players about which vehicles earn money.",
      "Decay so steep that slow modes earn nothing collapses mode choice to the fastest vehicle."
    ],
    "family": "economy-finance",
    "feedback": "none",
    "id": "delivery-time-payment",
    "legibility": 3,
    "math_basis": [
      "optimization",
      "scheduling"
    ],
    "maturity": "established",
    "name": "Delivery-time payment",
    "open_questions": [
      "Could time sensitivity come from simulated recipients' needs, such as a town short of food paying more for fast grain, rather than fixed per-cargo curves?"
    ],
    "player_experience": "Speed has a price per cargo. The player matches cargo to mode, putting mail on fast trains or aircraft and coal on slow freight, and reads every delay at a junction as lost money. Upgrading to faster vehicles becomes an investment with a visible return.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-transport-tycoon",
      "src-openttd-2026-manual-orders"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "Payment for a delivery depends on cargo type, quantity, distance, and transit time, with each cargo losing value at its own rate the longer it travels.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "transport-tycoon",
      "earliest_year": 1994,
      "incoming": {
        "used_by": [
          "aurora-4x",
          "factorio",
          "simcity-2013",
          "the-long-dark",
          "transport-tycoon"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 1,
    "aliases": [
      "finite resources",
      "resource exhaustion",
      "ore depletion"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Each deposit holds a remaining quantity that every extraction cycle decrements. At zero the node disappears or the extractor stops; some games instead decay the extraction rate toward a floor. Factorio ore patches store an amount per tile that mining drills consume, while crude oil fields report a yield percentage in which 1% equals 300 pumpjack cycles and depletion stops at a 20% floor. Warcraft and Age of Empires gold mines and The Settlers II mountain mines run dry. Satisfactory is the counterexample: its nodes are infinite and differ only in purity. Inputs: extraction cycles. Outputs: remaining amount, current rate, and an exhaustion event that idles the extractors and any chain they feed.",
    "design_levers": [
      "starting quantity per deposit and its distribution across the map",
      "whether depletion ends output or decays the rate toward a floor",
      "efficiency upgrades that change output per unit removed, such as Factorio mining productivity research",
      "visibility of remaining amounts and warnings before exhaustion",
      "whether deposits regenerate, can be rediscovered, or have substitutes"
    ],
    "dynamics": [
      "Pushes expansion outward, which raises defense, logistics, and threat costs at new outposts.",
      "Creates contested chokepoints in competitive maps as the last deposits run out.",
      "Drives substitution toward recycling, alternate recipes, or trade once local supply ends.",
      "Staggers rebuild cycles, giving long games a rhythm of boom at new sites and decline at old ones."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Depletion that is too fast makes relocation the whole game and punishes building anything permanent.",
      "Depletion that is too slow is never felt within a session.",
      "Hidden remaining amounts cause sudden collapses that read as bugs.",
      "Infinite nodes or high rate floors remove expansion pressure, so the map stops mattering after the first claims."
    ],
    "family": "resources-production",
    "feedback": "balancing",
    "id": "deposit-depletion",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Deposit depletion",
    "open_questions": [
      "Can procedural geology models generate deposits whose size players can estimate from surface signals, turning prospecting into inference?",
      "What depletion time relative to session length keeps relocation interesting rather than tedious?"
    ],
    "player_experience": "A visible timer the player cannot stop. Every mine is temporary, so the player keeps scouting, claiming, and rebuilding at new sites, and judges how much infrastructure a deposit deserves given how long it will last. Losing a key deposit mid-chain creates a scramble to relocate before stocks run out.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "requires": [
      "resource-extraction"
    ],
    "sources": [
      "src-factoriowiki-2026-crude-oil",
      "src-satisfactorywiki-2026-resource-node"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "cellular-grid"
    ],
    "summary": "Extractable deposits hold finite quantities and run out, forcing expansion, relocation, or substitution.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "rollercoaster-tycoon",
      "earliest_year": 1999,
      "incoming": {
        "affected_by": [
          "differentiable-simulation",
          "massively-parallel-simulation",
          "quality-diversity-search"
        ],
        "involved_in": [
          "mechanic-discovery-search",
          "specification-programming-games"
        ],
        "required_by": [
          "comparative-histograms"
        ],
        "used_by": [
          "motorsport-manager",
          "opus-magnum",
          "pc-building-simulator",
          "planet-coaster",
          "poly-bridge",
          "rollercoaster-tycoon",
          "spacechem",
          "the-farmer-was-replaced"
        ]
      },
      "prevalence": 8,
      "prevalence_rank": 77,
      "prevalence_share": 0.045,
      "subgenre_spread": 5,
      "technique_count": 3,
      "technique_exposure": 0.438
    },
    "ai_leverage": 3,
    "aliases": [
      "ride ratings",
      "solution metrics",
      "stress test"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "The player builds a design (a coaster track, a bridge, a machine program), the game runs or analyzes it, and a metric vector is computed from what happened. Metrics gate success, set income, or rank the design. In RollerCoaster Tycoon 2, as documented by OpenRCT2, a test run yields excitement, intensity, and nausea from peak positive, negative, and lateral g, number of drops, highest drop, inversions, and nearby scenery; excitement stops rising after 9 drops and 6 inversions, is cut 25% when intensity exceeds 10 with further cuts at 11, 12, 13.2, and 14.5, and is halved when lateral g exceeds 3.1. Poly Bridge drives vehicles over a bridge and shows member stress under a budget. SpaceChem scores solutions on cycles, reactors, and instructions, and Opus Magnum on cost, cycles, and area. State: the design and its last metric vector; update: re-evaluate on test or edit.",
    "design_levers": [
      "which metrics exist and how many are orthogonal",
      "formula shape, caps, and penalties, such as excitement penalties for excessive intensity",
      "hard pass or fail thresholds versus continuous scores",
      "when evaluation runs: an explicit test run, continuous re-evaluation, or end of level",
      "how much of each metric's derivation the game exposes",
      "comparison against other players' results"
    ],
    "dynamics": [
      "Designs converge on formula sweet spots, such as stopping at the drop and inversion caps that end excitement gains.",
      "Multiple competing metrics produce distinct design schools, such as cheap versus fast solutions in Zachtronics games.",
      "When ratings set prices or demand, design quality couples directly to the economy."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Players optimize the formula instead of the fantasy, producing designs that score well but look absurd.",
      "A single scalar score collapses the design space onto one optimum.",
      "Opaque formulas require community reverse engineering; RollerCoaster Tycoon 2's rating rules are documented in detail only through the OpenRCT2 project.",
      "Scores that contradict intuition (a ride that looks thrilling rates low) make the simulation feel arbitrary."
    ],
    "family": "space-construction",
    "feedback": "balancing",
    "id": "design-performance-rating",
    "legibility": 3,
    "math_basis": [
      "optimization",
      "classical-mechanics"
    ],
    "maturity": "established",
    "name": "Design performance rating",
    "open_questions": [
      "Can a learned critic rate open-ended designs on qualities like elegance or thrill that hand formulas miss, without becoming a new exploit target?",
      "Does showing per-term contributions to a score widen or narrow the range of designs players explore?"
    ],
    "player_experience": "Build, test, read the numbers, revise. Players learn the hidden physics through the scores, enjoy beating a threshold, and then chase better tradeoffs between metrics that pull against each other.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-openrct2-2026-ride-rating-calculation",
      "src-wikipedia-spacechem",
      "src-wikipedia-opus-magnum"
    ],
    "status": "sourced",
    "substrate": [
      "continuous-physics",
      "rule-system"
    ],
    "summary": "Player-built designs are run or analyzed and scored on simulated metrics such as ride excitement, bridge stress, or cost and cycles.",
    "synergy": [
      {
        "id": "modular-assembly",
        "note": "Rating the assembled design closes the build-test loop."
      },
      {
        "id": "structural-integrity",
        "note": "Stress and load ratings turn structural rules into a score (Poly Bridge)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "involved_in": [
          "intent-level-orders"
        ],
        "used_by": [
          "captain-of-industry",
          "dwarf-fortress",
          "going-medieval",
          "oxygen-not-included",
          "rimworld"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "designations",
      "job designations",
      "work orders",
      "zones of work"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "The player paints a designation onto tiles or objects (mine, chop, harvest, build, haul, deconstruct, hunt) instead of commanding a specific agent. Each designation creates a job entry with location, type, required skill or tool, and priority. Agents that are free and allowed to do that work query the job pool, score candidate jobs by priority, distance, and reachability, reserve one, path to it, and execute it; the designation clears on completion. State owned: the set of designations and their job entries and reservations. Inputs: player marks; outputs: jobs consumed by agent action selection. Canonical forms: Dwarf Fortress dig, chop, and gather designations, RimWorld mine, cut, haul, and deconstruct designations, Oxygen Not Included errands with 1 to 9 priorities, Dungeon Keeper digging, and Going Medieval.",
    "design_levers": [
      "per-designation priority levels",
      "job claiming: nearest agent, best-skilled agent, or first free",
      "reservation and timeout rules for unreachable or abandoned jobs",
      "area painting tools versus per-object marking",
      "whether designations wait on prerequisites (materials, tools) or fail immediately",
      "interaction with per-agent work priorities and restrictions"
    ],
    "dynamics": [
      "Throughput depends on agent count, travel, and hauling, so mass designation exposes logistics bottlenecks.",
      "Accidental designations produce stories, such as mining into an aquifer or magma.",
      "Order of designation becomes a planning skill, since agents take jobs in the order the claiming rule finds them."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Unreachable designations jam the queue and agents repeatedly attempt and abandon them.",
      "Agents cross the whole map for a single low-value job because claiming ignores travel cost.",
      "Large designations starve critical work such as feeding and hauling without clear priority overrides.",
      "Players cannot see why a designation is not being worked: no one allowed, no path, or no materials."
    ],
    "family": "control-automation",
    "feedback": "none",
    "id": "designation-orders",
    "legibility": 4,
    "math_basis": [
      "scheduling",
      "graph-search"
    ],
    "maturity": "classic",
    "name": "Designation orders",
    "open_questions": [
      "Can players state work goals in language (dig a three-room hall near the stockpile) and have a model translate them into designations reliably?",
      "Which claiming rule best balances efficiency with legible agent behavior?"
    ],
    "player_experience": "The player states what should happen and watches agents figure out who and how. Painting a mine and seeing dwarves converge on it feels like management rather than puppetry, and the gap between intent and execution, such as a dwarf walking across the map for one job, becomes a source of frustration and stories.",
    "player_interface": [
      "orders",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "rule-system",
      "agent-based",
      "cellular-grid"
    ],
    "summary": "The player marks tiles or objects for work such as dig, chop, or build, and autonomous agents claim and execute the jobs.",
    "synergy": [
      {
        "id": "hauling-jobs",
        "note": "Designated work creates items that must be hauled, chaining jobs."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "pc-building-simulator",
      "earliest_year": 2018,
      "incoming": {
        "involved_in": [
          "sim-instructor-coach"
        ],
        "used_by": [
          "car-mechanic-simulator-2021",
          "pc-building-simulator"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "mechanic job",
      "troubleshooting",
      "fault finding"
    ],
    "authoring_cost": 4,
    "compute_cost": 1,
    "definition": "A machine is a tree of parts with a removal-order dependency graph, each part carrying a condition or fault state. A job arrives with symptoms; the player uses tests and tools to reveal hidden part states, removes covering parts in valid order, replaces or repairs faulty ones, reassembles, and verifies with a final test. In Car Mechanic Simulator 2018 and its 2021 sequel the player examines engine, suspension, and chassis, removes parts in a realistic order to reach a damaged component, buys a replacement or repairs it at higher levels, and uses a test track to find brake and suspension problems. PC Building Simulator applies the same loop to computers. Unlike diagnosis-treatment, the target is a machine whose state is fully deterministic once revealed. Inputs: fault state, symptoms, tools. Outputs: repaired machine, payment, and experience.",
    "design_levers": [
      "how symptoms map to faults, and how many faults hide behind one symptom",
      "tool set and what each test reveals",
      "disassembly depth and how many parts block access",
      "repair versus replace economics",
      "job time limits and payment for partial fixes"
    ],
    "dynamics": [
      "Players build mental models of real machine structure and speed up dramatically with experience.",
      "Tool unlocks reshape the diagnosis strategy, since better tests skip disassembly.",
      "Coupled with economy and workshop progression, choosing which jobs to accept becomes a planning layer."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "When the game highlights faulty parts directly, diagnosis disappears and only the removal chore remains.",
      "Deep disassembly for a single part becomes tedious once the novelty fades.",
      "Faults that do not follow from symptoms make diagnosis guesswork."
    ],
    "family": "operation-procedure",
    "feedback": "none",
    "id": "diagnose-repair",
    "legibility": 4,
    "math_basis": [
      "information-theory",
      "graph-search"
    ],
    "maturity": "established",
    "name": "Diagnose and repair",
    "open_questions": [
      "Can fault states generated from a causal model of the machine, rather than authored per job, produce varied but solvable diagnoses?",
      "Could a language-model customer describing symptoms in their own words make diagnosis a real inference task?"
    ],
    "player_experience": "Methodical, calm problem-solving with a clear finish. Players narrow down causes from symptoms, enjoy the order of unbolting and rebolting parts, and see a fixed machine run again. Learning the real structure of an engine or PC is part of the appeal.",
    "player_interface": [
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-car-mechanic-simulator-2018"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "The player inspects a machine, finds faulty parts with tools and tests, disassembles in order to reach them, and repairs or replaces them.",
    "synergy": [
      {
        "id": "wear-breakdown",
        "note": "Breakdowns create the repair work; repair makes wear a skill problem rather than a tax."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "theme-hospital",
      "earliest_year": 1997,
      "incoming": {
        "used_by": [
          "project-hospital",
          "theme-hospital",
          "two-point-hospital"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "medical diagnosis",
      "differential diagnosis"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns, per patient, a hidden condition, a set of symptoms (some visible, some revealed only by examinations), a diagnosis certainty or candidate list, and a deterioration timer. Each examination reveals symptoms or raises certainty at a cost in time and capacity; once certainty passes a threshold or one candidate remains, the patient goes to the matching treatment, whose success depends on staff skill or equipment. Untreated or mistreated patients worsen or die. Theme Hospital sends patients from a GP's office to diagnosis rooms, lets policy raise the required diagnosis level, and can kill patients when a guessed cure is wrong; Project Hospital has examinations uncover symptoms drawn from real medicine, tunes symptom overlap so one examination rarely settles a case, and requires finding dangerous hidden symptoms in time. Inputs are arrivals and examination capacity; outputs are cures, deaths, and throughput.",
    "design_levers": [
      "number of conditions and the overlap of their symptom sets",
      "information gained per examination and its time, cost, and capacity",
      "certainty threshold for treatment and whether the player can override it",
      "deterioration rate of untreated patients and the cost of misdiagnosis",
      "staff skill and equipment effects on test accuracy and treatment success"
    ],
    "dynamics": [
      "Diagnosis capacity becomes a bottleneck that creates queues, so room layout and staffing drive outcomes.",
      "Guessing cures to clear queues trades throughput against deaths and reputation.",
      "Contagious conditions couple diagnosis speed to outbreaks inside the facility."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Distinctive symptom sets let one examination solve every case, removing the uncertainty that defines the mechanic.",
      "Opaque certainty math leaves players unable to tell whether a death was bad luck or bad policy.",
      "Conditions are expensive to author, so case variety runs out and players memorize answers."
    ],
    "family": "biology-health",
    "feedback": "balancing",
    "id": "diagnosis-treatment",
    "legibility": 3,
    "math_basis": [
      "probability-statistics",
      "information-theory"
    ],
    "maturity": "established",
    "name": "Diagnosis and treatment",
    "open_questions": [
      "Can language-model patients that describe symptoms in their own words make history-taking a real diagnostic channel?",
      "Can generated cases keep symptom overlap tuned so diagnosis stays uncertain but solvable?"
    ],
    "player_experience": "Detective work under time pressure. The player weighs another test against the risk of the patient worsening and decides when certainty is good enough to act. In management games the same choice becomes a policy over many patients: how much diagnosis to buy before treating.",
    "player_interface": [
      "choice-cards",
      "parameter",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-wikipedia-theme-hospital",
      "src-jgeekstudies-2020-project-hospital"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "stochastic-events"
    ],
    "summary": "Patients present symptoms, examinations reduce uncertainty about a hidden condition, and the correct treatment cures it while wrong or late treatment harms.",
    "synergy": [
      {
        "id": "service-queues",
        "note": "Patients queue at each diagnostic step, so hospital layout is queue design (Theme Hospital)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "football-manager",
      "earliest_year": 2004,
      "incoming": {
        "affected_by": [
          "constrained-decoding",
          "human-behavior-simulation-models"
        ],
        "involved_in": [
          "content-elastic-events",
          "generated-inspection-shifts"
        ],
        "used_by": [
          "democracy-4",
          "football-manager",
          "frostpunk",
          "papers-please",
          "reigns",
          "suzerain",
          "this-war-of-mine"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 5,
      "technique_count": 2,
      "technique_exposure": 0.225
    },
    "ai_leverage": 4,
    "aliases": [
      "choice events",
      "decision cards",
      "swipe choices"
    ],
    "authoring_cost": 5,
    "compute_cost": 1,
    "definition": "A card holds a prompt, two to four options, and per-option effects on meters, resources, relationships, or flags, sometimes with hidden or delayed outcomes. A deck sampler draws the next card by weights conditioned on state and history. In Reigns, advisors present cards that the player swipes left or right; each choice moves some of four meters (church, people, army, treasury), and the reign ends if any meter becomes completely full or empty, after which a successor continues with newly unlocked cards. FTL beacon events, This War of Mine encounters, and Paradox event pop-ups use the same option-and-effect format inside larger simulations. Inputs: current meters and flags. Outputs: meter deltas, flag changes, and the next card's eligibility.",
    "design_levers": [
      "number of options per card and whether one is a safe default",
      "how much of each option's effect is shown in advance (which meters, direction, magnitude)",
      "effect magnitudes and whether meters fail at one bound or both",
      "deck weighting, repetition limits, and state conditions for eligibility",
      "delayed consequences that resolve cards later"
    ],
    "dynamics": [
      "Two-sided meters push players to keep every value near the middle, which creates oscillation as they correct overshoots.",
      "When eligibility depends on earlier flags, players steer toward or away from card lines across runs.",
      "Inside a larger sim, choice effects feed other systems, so a cheap answer can surface as a crisis many turns later."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Repeated cards expose a small deck and turn dilemmas into memorized answers.",
      "A dominant option on common cards removes the tradeoff.",
      "Fully hidden effects make outcomes feel random; fully shown effects make them arithmetic.",
      "Without a simulation underneath, choices do not interact and the format becomes a sequence of isolated quizzes."
    ],
    "family": "narrative-generation",
    "feedback": "balancing",
    "id": "dilemma-cards",
    "legibility": 4,
    "math_basis": [
      "utility-decision",
      "markov-stochastic"
    ],
    "maturity": "established",
    "name": "Dilemma cards",
    "open_questions": [
      "Can a language model write cards conditioned on live simulation state while keeping effects inside a balanced, typed budget?",
      "How much effect preview maximizes deliberation time without reducing choices to arithmetic?"
    ],
    "player_experience": "Quick, weighty decisions where every answer costs something. Players weigh which meter can absorb the hit, try to predict hidden effects, and learn the deck over many runs. Two-sided limits, as in Reigns, make even popular choices dangerous.",
    "player_interface": [
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-reigns",
      "src-wikipedia-ftl"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "stochastic-events"
    ],
    "summary": "Discrete choice events present a situation with a few options that each shift meters, values, or flags in tradeoff.",
    "synergy": [
      {
        "id": "policy-toggles",
        "note": "Laws presented as dilemmas make policy a moral choice with permanent consequences (Frostpunk)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 8,
      "earliest_game": "mule",
      "earliest_year": 1983,
      "incoming": {
        "affected_by": [
          "diffusion-game-engines",
          "genie-world-models",
          "learned-motion-synthesis",
          "muse-wham",
          "open-interactive-video-models",
          "physics-based-character-control"
        ],
        "used_by": [
          "animal-crossing-new-horizons",
          "arma-3",
          "autonauts",
          "big-ambitions",
          "car-mechanic-simulator-2021",
          "contraband-police",
          "dont-starve",
          "dyson-sphere-program",
          "facade",
          "factorio",
          "garrys-mod",
          "house-flipper",
          "inzoi",
          "job-simulator",
          "jurassic-world-evolution",
          "microsoft-flight-simulator-2024",
          "mule",
          "noita",
          "powerwash-simulator",
          "satisfactory",
          "schedule-i",
          "second-life",
          "simant",
          "spore",
          "subnautica",
          "suck-up",
          "the-long-dark",
          "ultima-online",
          "valheim",
          "where-winds-meet",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 31,
      "prevalence_rank": 8,
      "prevalence_share": 0.175,
      "subgenre_spread": 17,
      "technique_count": 6,
      "technique_exposure": 2.75
    },
    "ai_leverage": 3,
    "aliases": [
      "avatar control",
      "third-person control",
      "first-person control"
    ],
    "authoring_cost": 4,
    "compute_cost": 2,
    "definition": "The player maps controller or keyboard input to one character's locomotion (walk, run, jump, swim, fly) and interactions (pick up, use, attack, build) in real time. State owned: the avatar's position, velocity, facing, stance, and interaction target. Update rule: each frame, read input, apply a movement controller (kinematic or physics-based) subject to collision and terrain, and resolve interaction requests against objects in range. The world simulation runs around the avatar, often with only the area near it simulated in detail. It contrasts with overseer control, where the player commands at a distance. Canonical forms: Minecraft, Stardew Valley, The Long Dark, Subnautica, Valheim, and the farmer in Harvest Moon; hybrid games such as Satisfactory and Factorio put a factory builder in an avatar.",
    "design_levers": [
      "movement speed, traversal options, and fast travel, which set how large the world feels",
      "interaction reach and whether actions take time or animate",
      "physics-based versus kinematic controller",
      "whether the avatar has needs or survival meters",
      "camera: first person, third person, or top-down",
      "how much of the world simulates outside the avatar's vicinity"
    ],
    "dynamics": [
      "The avatar's travel time becomes the hidden limiting resource, pushing players to build transport and automation.",
      "Embodied presence makes environmental systems such as weather, temperature, and day-night directly threatening.",
      "Avatar location sets what is simulated, so player movement shapes world state in games that simulate only loaded chunks."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Large worlds with slow movement turn logistics into walking chores until fast travel or automation unlocks.",
      "Simulation limited to the avatar's surroundings freezes distant systems, breaking the illusion that the world runs without the player.",
      "Avatar control competes with overseer tools in hybrid games, forcing awkward building from a character's viewpoint."
    ],
    "family": "control-automation",
    "feedback": "none",
    "id": "direct-avatar",
    "legibility": 5,
    "math_basis": [
      "classical-mechanics",
      "control-theory"
    ],
    "maturity": "classic",
    "name": "Direct avatar control",
    "open_questions": [
      "Can learned motion models (physics-based character controllers trained by RL) give avatars natural interaction with arbitrary simulated objects without per-object animation?",
      "In generative world models where the world is rendered from the avatar's action stream, what simulation persistence can survive outside the view?"
    ],
    "player_experience": "The player is in the world rather than above it. Scale, distance, and danger are felt in the body: a long walk to a resource, a fall, darkness. Systems are learned by touching them, and attachment shifts from managed agents to one's own character.",
    "player_interface": [
      "embodied-skill",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "continuous-physics",
      "agent-based"
    ],
    "summary": "The player directly controls one embodied character's movement and actions in the simulated world.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "europa-universalis-4",
      "earliest_year": 2013,
      "incoming": {
        "used_by": [
          "crusader-kings-3",
          "europa-universalis-4",
          "reigns"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "play as heir",
      "succession laws",
      "generational play"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a lineage graph over characters, a succession law, and the mapping from the player's identity to a living character. When the player character dies, the law ranks eligible heirs by kinship, age, gender rules, or election; titles and assets are assigned, possibly split among several heirs; and control passes to the designated player heir. If no valid heir exists, the run ends. Crusader Kings III offers primogeniture, ultimogeniture, house seniority, three partition variants, and elective laws for feudal titles; the player continues as the player heir, normally the primary heir, and partition splits realms among siblings; with no valid heir titles pass to the liege, and the run ends without a playable heir. Reigns (2016) continues with a successor monarch who keeps unlocked cards. Inputs: lineage, laws, deaths. Outputs: the new player character, title distribution, opinion resets, claimants.",
    "design_levers": [
      "succession law catalog and how players can change laws",
      "what carries over to the heir: wealth, titles, opinions, skills, unlocks",
      "partition versus single-heir distribution",
      "opinion penalties and claimant uprisings at succession",
      "game-over condition when no heir exists"
    ],
    "dynamics": [
      "Rulers invest in heirs' education and marriages, coupling succession to lifecycle and romance.",
      "Succession crises spawn claimant wars, connecting lineage to diplomacy and conflict.",
      "Long runs become multi-generation stories that players chronicle as family histories."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Partition fragments a large realm into small pieces, which players experience as punishment and work around with exploits.",
      "Successors who inherit everything make death meaningless.",
      "Heir-killing exploits (arranging deaths to reach a better heir) become optimal play.",
      "Sudden game over from a missing heir feels arbitrary if eligibility rules are opaque."
    ],
    "family": "population-lineage",
    "feedback": "balancing",
    "id": "dynasty-succession",
    "legibility": 3,
    "math_basis": [
      "graph-search",
      "game-theory"
    ],
    "maturity": "established",
    "name": "Dynasty succession",
    "open_questions": [
      "Can generated character arcs give each heir a distinct reign narrative while succession rules stay mechanical?",
      "How much should the heir inherit to keep death meaningful without punishing long-term investment?"
    ],
    "player_experience": "Death becomes a chapter break. The player plans for succession by raising, educating, and marrying heirs, fears the untested successor, and feels continuity through the dynasty rather than one person. Partition laws make every death a crisis of fragmentation.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-paradoxwikis-2026-ck3-succession",
      "src-wikipedia-crusader-kings-3",
      "src-wikipedia-reigns"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "network-graph"
    ],
    "summary": "When the player character dies, play continues as an heir chosen by inheritance rules.",
    "synergy": [
      {
        "id": "trait-inheritance",
        "note": "Inherited traits make succession a long-term breeding and planning problem (Crusader Kings)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "cities-skylines",
      "earliest_year": 2015,
      "incoming": {
        "involved_in": [
          "living-workforce-factories"
        ],
        "used_by": [
          "cities-skylines",
          "tropico-6",
          "workers-and-resources"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "education levels",
      "schooling",
      "skilled labor pool"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns an education level per citizen or the population's distribution over levels, and school capacity and coverage. Each period, school-age or eligible citizens with access and seats advance a level after a study period; capacity and budget limit throughput, and aging and migration change the mix. Jobs and buildings require minimum levels, so the distribution decides which industries can be staffed. Cities: Skylines uses uneducated, educated, well educated, and highly educated, with elementary schools of 300, high schools of 1,000, and universities of 4,500 seats; jobs carry education requirements, higher building levels need more educated workers, and citizens take lower jobs when nothing else is open. Victoria 3 moves literacy toward education access and grants pops qualifications for professions each month. Inputs: seats, budget, age structure. Outputs: the qualified worker distribution that labor matching reads.",
    "design_levers": [
      "number of levels and job requirements per level",
      "school capacity, upkeep, and study duration",
      "who studies: age gates, coverage radius, cost to citizens",
      "whether over-educated citizens accept lower jobs",
      "side effects of education on crime, garbage, or consumption"
    ],
    "dynamics": [
      "Education shifts the industry mix toward offices and high tech, changing pollution and land value.",
      "Generational lag: the education mix follows age structure, so baby booms create later waves of graduates.",
      "Mismatches between education and jobs produce unemployment and shortages simultaneously."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Over-education: when educated citizens fill matching jobs first, basic industry reports worker shortages while graduates compete for offices.",
      "Long study times hide the lag between investment and effect, so players misread cause and effect.",
      "Single-step jumps with large schools make education a one-time checkbox."
    ],
    "family": "population-lineage",
    "feedback": "balancing",
    "id": "education-workforce",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "population-dynamics"
    ],
    "maturity": "established",
    "name": "Education and workforce",
    "open_questions": [
      "Can agent-level career choice and schooling decisions by learned agents replace fixed education ladders without losing planning legibility?",
      "Which matching rule between education and jobs avoids both over-education collapse and meaningless education?"
    ],
    "player_experience": "The player invests now for a different city later: schools cost upkeep for years before industry can upgrade. Players watch over- and under-education and adjust capacity, policies, and job mix to avoid unemployable graduates or empty offices.",
    "player_interface": [
      "placement",
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-paradoxwikis-2026-skylines-education",
      "src-paradoxwikis-2026-vic3-pops"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "agent-based"
    ],
    "summary": "Education levels gate job types, and schooling converts the labor pool into higher levels over time.",
    "synergy": [
      {
        "id": "labor-market",
        "note": "Education reshapes which jobs can be filled."
      },
      {
        "id": "lifecycle-aging",
        "note": "Children age into a workforce whose skills depend on schooling."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "a-tale-in-the-desert",
      "earliest_year": 2003,
      "incoming": {
        "affected_by": [
          "human-behavior-simulation-models",
          "llm-agent-societies"
        ],
        "involved_in": [
          "natural-language-legislation"
        ],
        "used_by": [
          "a-tale-in-the-desert",
          "democracy-4",
          "eco",
          "eve-online",
          "frostpunk-2",
          "project-sid",
          "tropico-6"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 4,
      "technique_count": 2,
      "technique_exposure": 0.438
    },
    "ai_leverage": 4,
    "aliases": [
      "voting",
      "polls"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns an election calendar, an electorate (simulated voters, voting blocs, or real players), candidates or parties, and a counting rule. At each election every voter's choice is computed from satisfaction, group membership, and campaign effects, or cast by a real player; the counting rule (plurality, threshold, single transferable vote) picks the winner, which sets tenure, a ruler, or party strength. Losing can end the game or remove the player's powers. Democracy 4 (2020) gives each simulated citizen membership in several overlapping voter groups, so elections depend on keeping enough groups content; before each election the player makes two promises, and broken promises raise cynicism. Frostpunk 2 (2024) has a council of 100 faction delegates vote on each proposed law, needing 51 votes, or two thirds for laws that expand the Steward's power. Tropico lets El Presidente hold or rig elections. EVE Online has real players elect the Council of Stellar Management, using single transferable vote since the eighth council.",
    "design_levers": [
      "election frequency and whether the player can call, delay, or cancel elections",
      "voter model: aggregate approval, blocs, or individually simulated voters with overlapping groups",
      "franchise rules that decide who votes and with what weight",
      "counting rule and thresholds",
      "consequence of losing (game over, loss of office, reduced powers)",
      "manipulation options such as rigging, promises, or campaign spending, and their costs"
    ],
    "dynamics": [
      "Election cycles create policy rhythms: unpopular measures early in a term, giveaways before the vote.",
      "Overlapping voter groups make every policy please someone and anger someone, which pushes players toward coalition math.",
      "Promise systems couple short-term electoral gain to long-term credibility."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Elections that only test approval above 50% add a pass or fail check without strategy.",
      "Cheap rigging or postponement removes the threat, so elections become a formality.",
      "Real-player elections with low turnout let organized blocs capture outcomes, which can be accepted as play or felt as unfair."
    ],
    "family": "governance-policy",
    "feedback": "balancing",
    "id": "elections",
    "legibility": 3,
    "math_basis": [
      "mechanism-design",
      "probability-statistics",
      "social-network"
    ],
    "maturity": "established",
    "name": "Elections",
    "open_questions": [
      "Can LLM-driven voters and rival candidates respond to the player's actual speeches and platform, so campaigning is persuasion rather than slider tuning?",
      "How should simulated electorates balance realism (stable partisanship) against responsiveness to player choices?"
    ],
    "player_experience": "A deadline for popularity. The player tracks polls, times unpopular reforms for just after an election, courts swing groups, and feels the stakes rise as election day nears. In player-run elections the experience shifts to campaigning and alliance-building.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-wikipedia-democracy-4",
      "src-wikipedia-frostpunk-2",
      "src-wikipedia-eve-online"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "stochastic-events",
      "rule-system"
    ],
    "summary": "Periodic votes by simulated or real voters determine tenure or policy.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "elite",
      "earliest_year": 1984,
      "incoming": {
        "affected_by": [
          "deep-rl-npc-policies",
          "neural-rendering-shaders",
          "satellite-world-reconstruction",
          "subspace-neural-physics"
        ],
        "involved_in": [
          "sim-instructor-coach"
        ],
        "used_by": [
          "beamng-drive",
          "besiege",
          "dcs-world",
          "elite",
          "elite-dangerous",
          "gran-turismo",
          "gran-turismo-7",
          "iracing",
          "kerbal-space-program",
          "microsoft-flight-simulator-2020",
          "microsoft-flight-simulator-2024",
          "snowrunner",
          "surgeon-simulator",
          "x-plane"
        ]
      },
      "prevalence": 14,
      "prevalence_rank": 42,
      "prevalence_share": 0.079,
      "subgenre_spread": 5,
      "technique_count": 4,
      "technique_exposure": 1.9
    },
    "ai_leverage": 3,
    "aliases": [
      "hands-on control",
      "manual piloting",
      "sim control"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "The player's continuous inputs (stick, wheel, pedals, mouse, motion controllers) drive the control surfaces or actuators of a physically simulated mechanism, and the challenge is the skill of producing good inputs, not choosing goals. State owned: mapping from input devices to actuator commands, including curves, deadzones, and assists. Update rule: each physics step, read inputs, apply response curves and optional assists (stability control, auto-trim, autopilot), and send commands to the mechanism model, such as flight aerodynamics or vehicle dynamics. Skill emerges because the mechanism has inertia, delays, and nonlinearities the player must learn to anticipate. Canonical forms: hand-flying in Microsoft Flight Simulator, X-Plane, and DCS World; driving in iRacing, Gran Turismo, and BeamNG.drive; and deliberately clumsy hand control in Surgeon Simulator.",
    "design_levers": [
      "fidelity of the underlying mechanism model",
      "assist layers that can be turned on or off (traction control, stability assist, auto-rudder, autopilot)",
      "input device support and response curves",
      "feedback channels: force feedback, motion, sound, and visual cues",
      "deliberate awkwardness of control mapping for comedy, as in Surgeon Simulator",
      "consequences of error: reset, damage, or permanent loss"
    ],
    "dynamics": [
      "Skill becomes a personal progression system independent of unlocks, sustaining long-term play in racing and flight communities.",
      "Hardware investment (wheels, HOTAS, VR) forms around the mechanic and reinforces community identity.",
      "Combined with damage models, small control errors cascade into dramatic, unscripted failures."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Keyboard or gamepad play of a mechanism tuned for wheels or sticks is nearly impossible, splitting the audience by hardware.",
      "Missing tactile and vestibular cues make real-world techniques fail on screen.",
      "Assists that are all or nothing leave no learning ramp between novice and full simulation."
    ],
    "family": "control-automation",
    "feedback": "none",
    "id": "embodied-skill-control",
    "legibility": 3,
    "math_basis": [
      "control-theory",
      "classical-mechanics"
    ],
    "maturity": "classic",
    "name": "Embodied skill control",
    "open_questions": [
      "Can learned coaching models watch input traces and teach technique the way an instructor does?",
      "Can adaptive assists, trained to keep the player near the edge of competence, replace fixed difficulty toggles?"
    ],
    "player_experience": "Competence lives in the hands. The player practices, crashes, and gradually internalizes how the mechanism responds until difficult maneuvers feel fluid. Mastery is personal and hard-won, and assists let novices participate before they have the skill.",
    "player_interface": [
      "embodied-skill"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "continuous-physics"
    ],
    "summary": "Real-time motor skill operating a simulated mechanism, such as hand-flying, driving, or surgery, is the main challenge.",
    "synergy": [
      {
        "id": "vehicle-dynamics",
        "note": "Detailed handling models reward motor skill and hardware like wheels and pedals."
      }
    ],
    "tension": [
      {
        "id": "variable-speed",
        "note": "Real-time motor skill and time compression are hard to offer together."
      },
      {
        "id": "turn-structure",
        "note": "Turns remove the real-time pressure motor skill depends on."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "railroad-tycoon",
      "earliest_year": 1990,
      "incoming": {
        "used_by": [
          "capitalism",
          "offworld-trading-company",
          "railroad-tycoon",
          "transport-tycoon"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "stock market",
      "shares",
      "hostile takeover"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns each company's share count, share price, and ownership table. Share price is recomputed from company value (cash, assets, earnings, debt) and moved by trading pressure, so purchases raise it and sales lower it. Players buy and sell shares in their own and rival companies for dividends or gains. Crossing an ownership threshold, usually a majority, transfers control: the target is merged, its assets absorbed, or its owner eliminated. Railroad Tycoon (1990) starts each railroad with $1 million split between equity and a loan and lets players trade shares in themselves and rivals in a miniature stock market. Offworld Trading Company (2016) makes buyouts the win condition: a player who loses majority control of their own company is eliminated, and the game warns a player when a rival can afford to buy them out without telling the rival. Capitalism (1995) makes being bought out by a competitor a loss, and Transport Tycoon sells rival company shares in 25% blocks.",
    "design_levers": [
      "share price formula (book value, earnings multiple, dividend yield, recent trading pressure)",
      "price impact per share bought or sold",
      "control thresholds and their consequences (merger, elimination, board control)",
      "restrictions on buying, such as minimum company age or share blocks",
      "dividends and buybacks as defensive tools",
      "visibility of who owns what and warnings before a takeover"
    ],
    "dynamics": [
      "Owning shares of rivals turns their success into the player's dividends, softening competition into partial alliance.",
      "Late-game cash races emerge as players hoard money for buyouts instead of investing in production.",
      "Buying back one's own stock converts operating profit into takeover defense, starving expansion."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A leading player can buy out weaker rivals early, ending the game before economic play matters.",
      "AI companies that do not defend their float become free takeover targets.",
      "Share prices driven only by book value can be gamed by moving cash into assets before a buyout."
    ],
    "family": "economy-finance",
    "feedback": "reinforcing",
    "id": "equity-buyouts",
    "legibility": 3,
    "math_basis": [
      "game-theory",
      "mechanism-design"
    ],
    "maturity": "established",
    "name": "Equity and buyouts",
    "open_questions": [
      "Can learned or LLM-driven investor agents produce believable sentiment (bubbles, panics) without a hand-tuned price formula?",
      "What takeover thresholds keep buyouts a threat without ending multiplayer games early?"
    ],
    "player_experience": "Reading a rival's balance sheet as a target. The player buys a rival's stock while it is cheap, defends their own float by buying back shares, and feels dread when a competitor's cash nears the price of a takeover. Endgames become races to accumulate cash.",
    "player_interface": [
      "orders",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-wikipedia-railroad-tycoon",
      "src-wikipedia-offworld-trading-company",
      "src-wikipedia-capitalism-video-game"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Companies issue shares whose price tracks performance, and players buy them for profit or accumulate a majority to take control of rivals.",
    "synergy": [
      {
        "id": "rival-firms",
        "note": "Buyouts give competition a decisive end state (Offworld Trading Company, Capitalism)."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "screeps",
      "earliest_year": 2014,
      "incoming": {
        "used_by": [
          "autonauts",
          "bitburner",
          "screeps",
          "the-farmer-was-replaced"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "CPU limit",
      "instruction limit",
      "tick cost",
      "script RAM"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns a compute budget and the cost charged against it: a per-tick allowance with an optional carryover bucket, a time cost per operation, or a fixed capacity such as instruction slots or memory. Each run or tick the game charges each operation or program its cost; when the budget runs out the program is terminated, throttled, or simply takes longer in game time, and unused allowance may accumulate. Screeps gives each player a CPU limit per tick (20 without CPU Unlock), banks unused CPU in a bucket of up to 10,000, lets a tick draw up to 500 from it, and terminates scripts at the limit. The Farmer Was Replaced charges simulated ticks per operation: literals and assignment are free, arithmetic costs 1, and a successful move() costs 200. Autonauts caps each bot's program at 12 to 32 instructions by its head part. Bitburner charges each script a RAM cost that must fit on the server running it. Player-programming owns the language and interpreter; this mechanic owns only the metering, so one language can run under tight, loose, or no budgets.",
    "design_levers": [
      "budget type: real CPU time, simulated tick cost per operation, instruction count, or memory",
      "size of the per-tick allowance and of a carryover bucket that allows bursts",
      "per-operation cost table, especially the ratio between cheap computation and expensive actions such as moves",
      "overrun consequence: termination, throttling, or slower simulated time",
      "how the budget grows: progression, hardware parts, or payment"
    ],
    "dynamics": [
      "Players adopt caching, memoization, and scheduling patterns that resemble real systems engineering.",
      "Expensive actions relative to computation push players toward code that plans a lot and acts rarely.",
      "Communities share profilers and optimized libraries, spreading efficient patterns across players."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Budgets measured in real CPU time vary with server load, so the same code can pass or fail unpredictably.",
      "Budgets that are too tight make debugging feel like fighting the platform rather than solving the problem.",
      "When budget increases are bought, as with Screeps' CPU Unlock, competitive outcomes mix code quality with spending.",
      "Cost tables that charge almost nothing for computation let players brute-force problems the budget was meant to constrain."
    ],
    "family": "control-automation",
    "feedback": "balancing",
    "id": "execution-budget",
    "legibility": 3,
    "math_basis": [
      "computation-theory",
      "optimization"
    ],
    "maturity": "established",
    "name": "Execution budget",
    "open_questions": [
      "When AI assistants write working code from a description, does the budget become the main remaining challenge, and does that keep programming games interesting?",
      "Which budget types (time per tick, cost per operation, memory) teach the most transferable efficiency skills?"
    ],
    "player_experience": "Optimization becomes the game once the code works. Players profile, cache paths, batch work, and count moves, because the same behavior written more cheaply runs more units, farms faster, or fits on the bot. A routine that finally fits under the cap, or a tick that stops overrunning, feels like a real engineering win.",
    "player_interface": [
      "programming",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "requires": [
      "player-programming"
    ],
    "sources": [
      "src-screeps-2026-docs-cpu-limit",
      "src-tfwrwiki-2026-operation-costs",
      "src-autonautswiki-2026-bots"
    ],
    "status": "sourced",
    "substrate": [
      "player-authored-logic",
      "aggregate-stocks"
    ],
    "summary": "Player-written programs are metered against a simulated compute budget, such as CPU per tick, tick cost per operation, instruction slots, or RAM, which makes efficiency the scarce resource.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "balance-of-power",
      "earliest_year": 1985,
      "incoming": {
        "affected_by": [
          "cicero-strategic-dialogue",
          "monte-carlo-tree-search"
        ],
        "involved_in": [
          "agent-ambassadors-async",
          "llm-society-terrarium",
          "negotiating-faction-ai"
        ],
        "used_by": [
          "balance-of-power",
          "caves-of-qud",
          "civilization",
          "crusader-kings-3",
          "elite-dangerous",
          "europa-universalis-4",
          "hearts-of-iron-4",
          "kenshi",
          "kingdoms-and-castles",
          "songs-of-syx",
          "spore",
          "stellaris",
          "suzerain",
          "tropico-6",
          "victoria-3"
        ]
      },
      "prevalence": 15,
      "prevalence_rank": 39,
      "prevalence_share": 0.085,
      "subgenre_spread": 7,
      "technique_count": 2,
      "technique_exposure": 0.812
    },
    "ai_leverage": 4,
    "aliases": [
      "diplomatic relations",
      "AI diplomacy",
      "foreign relations"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns a relation value for each pair of factions, the modifiers feeding it, and agreement states such as war, peace, truce, alliance, and vassalage. Events (trade, gifts, border friction, attacks, broken treaties) change the value, and many games drift it toward a baseline. A proposal is accepted when an AI evaluation combining relation, interests, relative power, and reputation passes a threshold. RimWorld faction goodwill runs -100 to 100: hostile at -75 or below, allied at 75 or above until it falls to 0; civil outlanders drift back into -50..50; trade gives +1 per 500 silver and returning a prisoner +12, while pirates stay at -100. Europa Universalis IV caps opinion at +200 and -200 with itemized reasons, adds 5 to alliance acceptance per point of diplomatic reputation, and allows a base of 4 diplomatic relations. Inputs: events, interests, power. Outputs: war declarations, trade access, military aid, coalitions.",
    "design_levers": [
      "relation scale, thresholds for state changes, and baseline drift",
      "modifier catalog and decay per event type",
      "AI acceptance formula (relation, power, interests, reputation) and how much of it is shown",
      "agreement types and their obligations, such as alliance calls to arms and truce lengths",
      "limits such as relation slots or diplomat counts"
    ],
    "dynamics": [
      "Coalitions against an expanding player form from shared grievances, a balancing loop on growth.",
      "Alliance chains pull factions into wars they did not choose, producing cascading conflicts.",
      "Trade raises goodwill, which opens more trade, a reinforcing loop between economy and diplomacy."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Gift exploits: money converts linearly into friendship, so diplomacy becomes a purchase.",
      "AI that ignores its own interests or the balance of power feels suicidal, while AI that refuses for unshown reasons feels arbitrary.",
      "Factions locked at permanent hostility remove diplomacy from most of the threat model.",
      "Coalitions that form against the leader regardless of context read as rubber-banding."
    ],
    "family": "social-relations",
    "feedback": "both",
    "id": "faction-diplomacy",
    "legibility": 3,
    "math_basis": [
      "game-theory",
      "social-network"
    ],
    "maturity": "classic",
    "name": "Faction diplomacy",
    "open_questions": [
      "Can language-model negotiators bargain, bluff, and keep commitments with players in ways players accept as fair and legible?",
      "How should opinion and interest be separated so AI factions betray for reasons players can foresee?"
    ],
    "player_experience": "The player manages a web of relations as a resource: buying goodwill with gifts, timing betrayals, and reading acceptance breakdowns to see what a deal needs. Wars feel like consequences of accumulated grievances rather than random events.",
    "player_interface": [
      "choice-cards",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-rimworldwiki-2026-goodwill",
      "src-paradoxwikis-2026-eu4-diplomacy"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "rule-system",
      "aggregate-stocks"
    ],
    "summary": "Factions hold relations with each other, and treaties, alliances, and wars follow from interests and opinion.",
    "synergy": [
      {
        "id": "reputation",
        "note": "Standing with a faction gates treaties and trade."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "the-powder-toy",
      "earliest_year": 2008,
      "incoming": {
        "affected_by": [
          "neural-cellular-automata"
        ],
        "involved_in": [
          "learned-material-surrogates"
        ],
        "used_by": [
          "noita",
          "the-powder-toy"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 1,
      "technique_exposure": 0.25
    },
    "ai_leverage": 3,
    "aliases": [
      "falling sand",
      "pixel physics",
      "powder simulation"
    ],
    "authoring_cost": 2,
    "compute_cost": 4,
    "definition": "The world is a 2D grid where each cell stores a material id and sometimes temperature, velocity, or lifetime. Each update a cell applies its class rule: powders fall straight or diagonally, liquids fall then spread sideways and swap with lower-density neighbors, gases rise then spread, and solids stay. Reaction rules convert cells, such as fire igniting flammable neighbors and water turning to steam. In Noita (2019) liquids compare densities to swap, wood burns for a set time and is destroyed, and explosions turn pixels into collapsing sand. The world is split into 64x64 chunks with dirty rectangles, updated bottom-up across threads in four checkerboard passes, with each pixel able to move 32 pixels beyond its chunk. Rigid bodies made of pixels (Box2D) recompute their shape and split as pixels are destroyed. The Powder Toy (2008), with 258 elements as of 2025, is the long-running sandbox in this lineage.",
    "design_levers": [
      "material catalog and per-material density, flammability, and melting point",
      "update order and randomization, such as alternating left and right scans",
      "reaction table between materials",
      "simulation region: whole world or only near the player",
      "whether mass is conserved"
    ],
    "dynamics": [
      "Hazard chains such as oil fires spreading, steam forming, and floors collapsing.",
      "Players engineer traps and terrain with the same rules that threaten them.",
      "The level is permanently reshaped by play, so no two runs stay alike."
    ],
    "emergence_potential": 5,
    "failure_modes": [
      "A fixed scan order biases movement in one direction unless it alternates or randomizes.",
      "Compute limits restrict simulation to areas near the player, so distant regions freeze.",
      "Chain reactions kill the player suddenly, which can read as unfair.",
      "Rules that duplicate or delete material break conservation and enable exploits."
    ],
    "family": "physics-materials",
    "feedback": "both",
    "id": "falling-sand-materials",
    "legibility": 4,
    "math_basis": [
      "cellular-automata",
      "combinatorics"
    ],
    "maturity": "established",
    "name": "Falling-sand materials",
    "open_questions": [
      "Can neural cellular automata or learned rules produce new materials with plausible behavior at runtime?",
      "Can GPU compute extend per-pixel simulation to whole persistent worlds instead of the area near the player?"
    ],
    "player_experience": "Everything is simulated, so play becomes experiment. Players pour, burn, flood, and dig, and they die to chain reactions they set off themselves. Wonder and danger come from the same rules.",
    "player_interface": [
      "direct-manipulation",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-80lv-2019-noita-falling-sand",
      "src-wikipedia-noita",
      "src-wikipedia-the-powder-toy"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "rule-system"
    ],
    "summary": "Every pixel or cell holds a material whose class rule makes it fall, flow, or rise by swapping with neighbors, with reactions layered on top.",
    "synergy": [
      {
        "id": "material-interactions",
        "note": "Per-pixel materials with reaction rules produce chemistry players can exploit (Noita, Powder Toy)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "involved_in": [
          "learned-weather-layer"
        ],
        "used_by": [
          "banished",
          "caesar-3",
          "dont-starve",
          "dwarf-fortress",
          "from-dust",
          "ftl",
          "kingdoms-and-castles",
          "minecraft",
          "noita",
          "pharaoh",
          "prison-architect",
          "rimworld",
          "simcity-1989",
          "simcity-2000",
          "space-haven",
          "teardown",
          "the-powder-toy",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 18,
      "prevalence_rank": 29,
      "prevalence_share": 0.102,
      "subgenre_spread": 8,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "fire propagation",
      "wildfire"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns a burning state per cell, tile, or object (unburnt, burning, burnt), often with fuel and heat values. Each tick a burning unit consumes fuel and tries to ignite neighbors with a chance or rate scaled by their flammability, moisture, and wind direction; it goes out when fuel runs out or when water, rain, or firefighters remove it. Inputs are material flammability, weather, and suppression; outputs are destroyed structures and terrain, heat, and sometimes smoke or updrafts. SimCity spreads fire between flammable tiles and fire stations put it out; Breath of the Wild's chemistry engine lets fire change the state of materials such as grass, whose burning creates updrafts, and rain stops it; Far Cry 2 and Dwarf Fortress propagate fire through grass and trees.",
    "design_levers": [
      "ignition sources and their rates: lightning, overheating, arson, player tools",
      "flammability, fuel load, and burn duration per material",
      "spread probability per neighbor and the wind bias on it",
      "moisture and weather modifiers, such as rain suppressing ignition",
      "suppression tools: water, firefighters, fire station coverage, firebreak materials"
    ],
    "dynamics": [
      "Players build firebreaks and separate flammable storage, which changes settlement layout.",
      "Fire couples with weather and terrain: dry seasons and wind produce larger fires, and rain ends them.",
      "Players repurpose fire as a weapon or tool, such as burning grass under enemies or clearing forest."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Spread tuned slightly too high burns the whole map before the player can react; slightly too low makes fire a nonevent.",
      "Fire that ignores construction choices, such as stone burning like wood, removes the decision space.",
      "Large burning areas in cell-based implementations cost noticeable frame time during big fires."
    ],
    "family": "environment-ecology",
    "feedback": "reinforcing",
    "id": "fire-spread",
    "legibility": 4,
    "math_basis": [
      "cellular-automata",
      "markov-stochastic",
      "continuum-mechanics"
    ],
    "maturity": "classic",
    "name": "Fire spread",
    "open_questions": [
      "Can learned combustion and smoke surrogates make fire visually rich while its spread stays readable and controllable?"
    ],
    "player_experience": "A small spark becomes an emergency. The player races to contain fire before it reaches stockpiles or homes, or uses it as a tool: burning a field to clear it, lighting grass to drive enemies, or riding the updraft. Fire teaches the player to read the map as fuel and firebreaks.",
    "player_interface": [
      "observation",
      "direct-manipulation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-fujibayashi-2017-botw-change-and-constant",
      "src-thumbsticks-2017-botw-chemistry"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "stochastic-events"
    ],
    "summary": "Fire ignites and spreads across flammable cells or objects at rates set by fuel, wind, and moisture, consuming what it burns.",
    "synergy": [
      {
        "id": "weather",
        "note": "Wind and dryness govern fire spread."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "x-plane",
      "earliest_year": 1995,
      "incoming": {
        "affected_by": [
          "graph-network-simulators"
        ],
        "involved_in": [
          "sim-instructor-coach"
        ],
        "used_by": [
          "dcs-world",
          "kerbal-space-program",
          "microsoft-flight-simulator-2020",
          "microsoft-flight-simulator-2024",
          "x-plane"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "flight model",
      "flight dynamics"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "The aircraft state holds position, attitude, linear and angular velocity, control-surface deflections, and engine state. Each physics step computes aerodynamic forces from airspeed, angle of attack, sideslip, and air density, adds thrust and gravity, and integrates six-degree-of-freedom rigid-body motion. Two families exist. Coefficient-table models look up lift, drag, and moment coefficients per flight condition. Blade element models, as in X-Plane, divide wings, control surfaces, and propellers into small elements, compute forces on each from aircraft geometry rather than relying only on performance tables, and sum them, so stalls, spins, and ground effect arise from the geometry. Arcade games use simplified models that keep the aircraft stable. Outputs are aircraft motion and instrument readings.",
    "design_levers": [
      "model fidelity: arcade, coefficient tables, or blade elements",
      "assists such as auto-trim, stability augmentation, and stall protection",
      "stall and spin behavior near the edge of the envelope",
      "weather and turbulence coupling",
      "control response curves and input filtering"
    ],
    "dynamics": [
      "Weather and terrain create emergent challenges such as crosswind landings and mountain wave turbulence.",
      "System failures interact with aerodynamics to produce scenarios no one scripted.",
      "Energy management becomes the core tactical resource in air combat."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Over-stable models feel on rails and remove the skill.",
      "Without assists, high fidelity makes flight unflyable for new players.",
      "Table-driven models misbehave in regimes outside their data, such as spins or ground handling.",
      "Each new aircraft needs costly per-model tuning before it feels right."
    ],
    "family": "physics-materials",
    "feedback": "balancing",
    "id": "flight-aerodynamics",
    "legibility": 3,
    "math_basis": [
      "classical-mechanics",
      "continuum-mechanics",
      "control-theory"
    ],
    "maturity": "classic",
    "name": "Flight aerodynamics",
    "open_questions": [
      "Can learned surrogates trained on computational fluid dynamics give accurate flight models for aircraft without hand tuning?",
      "Can an AI instructor read the flight model state and coach novices through stalls and landings?"
    ],
    "player_experience": "Hands-on control with real consequences. Players learn energy management, trim, stall warnings, and landings, and skill grows visibly over hours. Arcade variants keep the feeling of speed without the workload.",
    "player_interface": [
      "embodied-skill",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-wikipedia-x-plane"
    ],
    "status": "sourced",
    "substrate": [
      "continuous-physics"
    ],
    "summary": "Lift, drag, thrust, and control-surface forces computed from airspeed and attitude govern aircraft motion.",
    "synergy": [
      {
        "id": "procedural-checklists",
        "note": "A faithful flight model makes real procedures necessary rather than ceremonial."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "affected_by": [
          "differentiable-simulation",
          "graph-network-simulators"
        ],
        "involved_in": [
          "learned-material-surrogates"
        ],
        "used_by": [
          "caves-of-qud",
          "dwarf-fortress",
          "ftl",
          "hardspace-shipbreaker",
          "minecraft",
          "noita",
          "oxygen-not-included",
          "space-engineers",
          "space-haven",
          "stationeers",
          "the-powder-toy"
        ]
      },
      "prevalence": 11,
      "prevalence_rank": 56,
      "prevalence_share": 0.062,
      "subgenre_spread": 7,
      "technique_count": 2,
      "technique_exposure": 0.2
    },
    "ai_leverage": 4,
    "aliases": [
      "fluid dynamics",
      "gas spread",
      "liquid simulation"
    ],
    "authoring_cost": 1,
    "compute_cost": 4,
    "definition": "Fluid state is stored per cell (mass, depth, pressure, element) or as velocity and density fields. Cellular games move mass between neighbor cells in proportion to height or pressure differences and sort elements by density, as in Oxygen Not Included, where each cell holds one gas or liquid element with a mass, and Dwarf Fortress, where water depth runs from 1 to 7 per tile. Continuous solvers follow Jos Stam's Stable Fluids for games (2003): add sources, diffuse implicitly with Gauss-Seidel relaxation, advect semi-Lagrangian by tracing cells back through the velocity field, and project velocity to be divergence-free by solving a Poisson equation, which stays stable at any time step. Outputs feed breathing, flooding, pressure damage, and heat transport.",
    "design_levers": [
      "representation: cellular mass transfer, particles, or velocity fields",
      "grid resolution and update rate",
      "one element per cell or mixtures",
      "compressibility and pressure limits",
      "viscosity and flow speed per fluid",
      "whether mass is strictly conserved"
    ],
    "dynamics": [
      "Leaks contaminate connected spaces and couple room layout to air quality.",
      "Floods spread through open layers and paths and reshape priorities across a colony.",
      "Coupled with heat, fluids carry temperature and drive phase changes."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Non-conserving rules let players delete or duplicate fluid, which becomes an exploit.",
      "Fluid simulation dominates compute and forces small maps or reduced update rates.",
      "Semi-Lagrangian solvers lose detail to numerical dissipation, so flow looks thick and smoothed.",
      "Gases are unreadable without overlays, so players misjudge spreading hazards."
    ],
    "family": "physics-materials",
    "feedback": "balancing",
    "id": "fluid-gas-simulation",
    "legibility": 3,
    "math_basis": [
      "continuum-mechanics",
      "cellular-automata"
    ],
    "maturity": "established",
    "name": "Fluid and gas simulation",
    "open_questions": [
      "Can learned fluid simulators run 3D liquids at game budgets while conserving mass well enough for gameplay?",
      "What overlays make invisible gas flow legible without constant mode switching?"
    ],
    "player_experience": "Managing something that spreads on its own. Players seal leaks, vent gases, pump floods, and plan around pressure they can only see through overlays. Small mistakes spread slowly, then all at once.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-stam-2003-real-time-fluid-dynamics"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "continuous-physics"
    ],
    "summary": "Liquids and gases stored per cell or as fields flow, mix, and pressurize across space according to pressure and density differences.",
    "synergy": [
      {
        "id": "heat-transfer",
        "note": "Gases and liquids carry heat, so thermal management becomes plumbing (Oxygen Not Included)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "simcity-2000",
      "earliest_year": 1993,
      "incoming": {
        "used_by": [
          "cities-skylines",
          "factorio",
          "mindustry",
          "oxygen-not-included",
          "prison-architect",
          "satisfactory",
          "shapez-2",
          "simcity-2000",
          "simcity-2013",
          "stationeers",
          "surviving-mars",
          "workers-and-resources"
        ]
      },
      "prevalence": 12,
      "prevalence_rank": 50,
      "prevalence_share": 0.068,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "pipes",
      "plumbing",
      "liquid networks"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "Pipes connect producers, consumers, tanks, and pumps into networks that carry one fluid type per segment. The update rule ranges from discrete packets to pooled segments to pressure solvers. Oxygen Not Included moves one packet of up to 10 kg per pipe segment per second, giving 10 kg/s per line, and exchanges heat between the liquid, the pipe, and its tile. Factorio 1.x simulated flow between adjacent pipes, so throughput fell with distance and depended on build order; Factorio 2.0 merges connected pipes into segments where producers push freely, consumers pull at a rate proportional to the fill ratio, and fluid does not propagate. SimCity games treat water and sewage as coverage networks; GlassBox modeled units of water as agents moving through pipes. Inputs: producer output, consumer demand, topology, pumps. Outputs: fluid delivered per consumer and stored per segment or tank.",
    "design_levers": [
      "flow model: packets, pooled segments, or pressure simulation",
      "throughput limits per pipe and whether distance matters",
      "fluid mixing rules and penalties",
      "pumps, valves, and priority controls",
      "thermal and phase-change behavior in pipes"
    ],
    "dynamics": [
      "Fluid networks couple to thermal systems, as when hot pipes in Oxygen Not Included cook a base or freeze lines.",
      "Shared networks create priority conflicts between consumers.",
      "Tanks act as buffers, changing timing behavior across networks."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Distance-dependent throughput with no in-game feedback, as in Factorio 1.x, made long pipelines fail mysteriously; the developers rewrote the system for predictability.",
      "Accidental fluid mixing can contaminate a network permanently if cleanup is costly.",
      "Pressure models that are realistic but invisible make players guess."
    ],
    "family": "logistics-networks",
    "feedback": "none",
    "id": "fluid-pipe-network",
    "legibility": 3,
    "math_basis": [
      "network-flow",
      "continuum-mechanics"
    ],
    "maturity": "established",
    "name": "Fluid pipe networks",
    "open_questions": [
      "Could learned fluid surrogates give pipe networks pressure realism at low compute while keeping behavior predictable?",
      "Which fluid behaviors (pressure, mixing, heat) add decisions rather than confusion?"
    ],
    "player_experience": "Plumbing problems. Players learn that fluids behave differently from items: they mix, back up, and run out at the far end. When the model is predictable, routing is satisfying; when it is not, pipes become a source of mysterious shortages.",
    "player_interface": [
      "placement",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-wube-2024-fff-416-fluids",
      "src-oniwiki-2026-liquid-pipe"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "continuous-physics",
      "aggregate-stocks"
    ],
    "summary": "Fluids such as water, oil, sewage, or gas flow through pipes with pressure or throughput limits between producers and consumers.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "civilization",
      "earliest_year": 1991,
      "incoming": {
        "affected_by": [
          "imperfect-information-solvers"
        ],
        "used_by": [
          "against-the-storm",
          "aurora-4x",
          "civilization",
          "command-modern-operations",
          "elite-dangerous",
          "europa-universalis-4",
          "frostpunk",
          "ftl",
          "hearts-of-iron-4",
          "project-zomboid",
          "silent-hunter-3",
          "snowrunner",
          "stellaris"
        ]
      },
      "prevalence": 13,
      "prevalence_rank": 45,
      "prevalence_share": 0.073,
      "subgenre_spread": 7,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "shroud",
      "line of sight",
      "map reveal"
    ],
    "authoring_cost": 1,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-fog-of-war"
        ],
        "text": "Walter Bright's 1977 game Empire is credited as the earliest video game use of fog of war, and Warcraft and StarCraft keep previously seen areas visible as terrain while hiding changes to enemy units."
      }
    ],
    "compute_cost": 2,
    "definition": "For each player the world holds a visibility state per cell or entity, usually three-valued: unexplored, explored but not currently visible, and visible. Each tick visibility is recomputed from the sight radius of the player's units, buildings, and sensors, optionally modified by line of sight, elevation, weather, and target stealth. Visible cells show live state; explored cells show the last observed snapshot, so changes there go unseen. Inputs are observer positions and sensor ranges; outputs are a per-player view and a hidden-information gap between true and known state. Walter Bright's Empire (1977) is credited as the earliest use; Warcraft and StarCraft used the explored-but-stale shroud. In simulation games: Factorio's radar charts distant chunks slowly and keeps nearby ones live, unexcavated tiles in Dwarf Fortress stay unknown, and Against the Storm keeps forest glades hidden until opened.",
    "design_levers": [
      "two-state (unexplored or visible) versus three-state with stale memory",
      "sight radius per unit or building and terrain, elevation, and weather modifiers",
      "radius check versus true line-of-sight raycasts",
      "whether remembered cells show last-seen enemies or only terrain",
      "reveal tools: scouts, radar, satellites, traded maps",
      "whether the AI obeys the same fog or has full knowledge"
    ],
    "dynamics": [
      "Hidden information enables ambushes, bluffs, and a scouting economy where information has a price.",
      "Stale memory produces errors such as attacking a base that has since been reinforced.",
      "Coupled with procedural terrain, fog turns every map into an exploration problem rather than a known layout."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "An AI given full map knowledge to compensate for weak reasoning feels like cheating once players notice.",
      "Fog that hides only static terrain becomes a one-time clearing chore with no lasting tension.",
      "Cheap, fast scouts make fog trivial and reward spamming them.",
      "In simulations whose threats are systemic rather than adversarial, fog adds travel tedium without decisions."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "fog-of-war",
    "legibility": 4,
    "math_basis": [
      "information-theory",
      "game-theory"
    ],
    "maturity": "classic",
    "name": "Fog of war",
    "open_questions": [
      "Can learned opponents that keep beliefs about unseen state replace AI map-hacking without losing challenge?",
      "If a generative world model creates unobserved regions only when observed, does fog become a generation trigger rather than concealment?"
    ],
    "player_experience": "The edge of the known map pulls the player outward. Scouting becomes a decision with costs, darkness reads as threat, and finding a resource deposit or an enemy base feels like discovery rather than lookup.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-wikipedia-fog-of-war"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "rule-system"
    ],
    "summary": "Parts of the world stay hidden or stale until observed by the player's units, structures, or sensors.",
    "synergy": [
      {
        "id": "military-operations",
        "note": "Sensor coverage and concealment are central to operational play."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "simlife",
      "earliest_year": 1992,
      "incoming": {
        "affected_by": [
          "simulation-based-inference"
        ],
        "involved_in": [
          "open-ended-evolution-sandbox"
        ],
        "used_by": [
          "eco",
          "equilinox",
          "simlife",
          "viva-pinata"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 1,
      "technique_exposure": 0.1
    },
    "ai_leverage": 3,
    "aliases": [
      "predator-prey",
      "trophic web",
      "ecosystem simulation"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Owns population counts per species (aggregate) or individual animals (agent-based) and a directed feeding graph of who eats whom. Each tick prey grow toward a carrying capacity set by plants or habitat, predators remove prey in proportion to encounters, and predators reproduce from food eaten and starve without it. The Lotka-Volterra form, published by Volterra in 1926, has prey growing at rate a and consumed at rate b times predators, and predators converting prey into growth while dying at a constant rate; the result cycles without damping. Games add carrying capacity, starvation, migration, and respawn so species do not drift to extinction. SimLife and Species: Artificial Life, Real Evolution let creatures eat each other on a shared map; Eco simulates plant and animal populations that players can overhunt; Viva Pinata attracts visitors and predators according to garden contents. Inputs are species, habitat, and harvesting; outputs are population trajectories.",
    "design_levers": [
      "feeding graph topology: number of species, diet breadth, and omnivores",
      "prey growth rate and carrying capacity from plants or habitat",
      "predation efficiency and conversion of food into offspring",
      "starvation and natural death rates, and the minimum population before extinction",
      "immigration or respawn rules that rescue extinct species",
      "aggregate populations versus individually simulated animals"
    ],
    "dynamics": [
      "Trophic cascades: removing a top predator lets herbivores strip vegetation, which lowers carrying capacity for everything.",
      "Player hunting or harvesting acts as an extra predator and can tip a stable cycle into collapse.",
      "Coupled with habitat or climate change, species ranges shift and new feeding links form."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Undamped predator-prey cycles drift until a population hits zero, so ecosystems collapse without any player error.",
      "Hidden population floors or respawns added to prevent extinction make overhunting consequence-free.",
      "Long delays between action and population response hide cause and effect, so players read crashes as random."
    ],
    "family": "environment-ecology",
    "feedback": "balancing",
    "id": "food-web",
    "legibility": 2,
    "math_basis": [
      "population-dynamics",
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Food web",
    "open_questions": [
      "Can learned behavior models give individually simulated animals plausible foraging and avoidance at ecosystem scale without hand-written AI?",
      "Which visualizations make delayed predator-prey feedback legible without population graphs?"
    ],
    "player_experience": "Tending a system the player cannot command. Adding a predator to fix overgrazing can crash the herbivores and then starve the predator a few generations later. The player learns to act through balance and delay, watches population graphs, and feels responsible when a species disappears.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-volterra-1926-fluctuations"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "agent-based",
      "network-graph"
    ],
    "summary": "Species eat and are eaten along a feeding graph, so populations rise, crash, and oscillate under predator-prey dynamics.",
    "synergy": [
      {
        "id": "natural-selection",
        "note": "Predation supplies selective pressure; selection reshapes the food web over generations."
      },
      {
        "id": "habitat-suitability",
        "note": "Habitat defines which species can co-occur, which sets the possible food webs."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "lemonade-stand",
      "earliest_year": 1973,
      "incoming": {
        "affected_by": [
          "ml-weather-models"
        ],
        "involved_in": [
          "branch-preview-forecasts",
          "calibrated-serious-sims",
          "dream-replay-layer",
          "event-sourced-sim-runtime",
          "participatory-planning-sandboxes"
        ],
        "used_by": [
          "lemonade-stand",
          "this-war-of-mine"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.25
    },
    "ai_leverage": 4,
    "aliases": [
      "projections",
      "runway estimate",
      "weather forecast"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "A forecaster computes and displays projected future values of selected variables: days of food left at current consumption, next period's budget balance, upcoming temperature or storms, population trend, or completion time for a project. It owns a forecast method, a horizon, and a refresh interval, but no simulation state. Common methods are runway (stock divided by net rate), linear extrapolation of recent trend, lookup of an authored or pre-rolled schedule of events, and rarely a short simulated lookahead. Outputs are numbers, countdowns, or projected curves. Canonical forms: Frostpunk's temperature forecast showing cold snaps days ahead, budget projections in SimCity and Cities: Skylines, turns-to-complete counters in Civilization, and Football Manager's projected finances.",
    "design_levers": [
      "forecast method: runway, extrapolation, authored schedule, or simulated lookahead",
      "horizon length",
      "accuracy and whether uncertainty is shown, such as ranges or confidence that improves with upgrades",
      "which variables get forecasts",
      "whether forecasts include the player's queued actions",
      "proactive display versus on demand"
    ],
    "dynamics": [
      "Players stock to the forecast horizon, so a forecast that underestimates causes synchronized shortfalls.",
      "Forecast crises create preparation sprints followed by slack, a characteristic rhythm in survival city builders.",
      "Shifting play from reactive to anticipatory raises the value of storage and buffers relative to throughput."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Linear extrapolation misleads when rates are seasonal or batched, producing false alarms or false security.",
      "Perfect forecasts of every threat turn disasters into checklists with no uncertainty.",
      "Noisy forecasts with no stated error teach players to ignore them."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "forecasting",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "probability-statistics"
    ],
    "maturity": "established",
    "name": "Forecasting",
    "open_questions": [
      "Can a learned surrogate of the full simulation give cheap probabilistic forecasts (a 70 percent chance of famine within two seasons) for coupled systems that games now only extrapolate?",
      "What forecast accuracy maximizes preparation decisions without removing surprise?"
    ],
    "player_experience": "Monitoring turns into planning. The player sees the cliff before reaching it and acts early, buffers to the forecast horizon, and feels dread when the projection is grim. Surprise drops; preparation becomes the challenge.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "ui-layer",
      "aggregate-stocks"
    ],
    "summary": "The interface projects future states such as resource runway, budget balance, or upcoming weather.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 18,
      "earliest_game": "game-of-life",
      "earliest_year": 1970,
      "incoming": {
        "involved_in": [
          "generative-decoration-catalogs",
          "learned-build-assist",
          "placement-that-tells-stories",
          "symbolic-sim-neural-render"
        ],
        "required_by": [
          "adjacency-scoring",
          "room-recognition"
        ],
        "used_by": [
          "against-the-storm",
          "animal-crossing-new-horizons",
          "anno-117",
          "anno-1800",
          "banished",
          "big-ambitions",
          "big-pharma",
          "black-and-white",
          "caesar-3",
          "capitalism",
          "captain-of-industry",
          "cities-skylines",
          "cities-skylines-2",
          "dwarf-fortress",
          "dyson-sphere-program",
          "equilinox",
          "factorio",
          "fallout-shelter",
          "farthest-frontier",
          "foundation",
          "frostpunk",
          "frostpunk-2",
          "game-of-life",
          "going-medieval",
          "house-flipper",
          "inzoi",
          "islanders",
          "jurassic-world-evolution",
          "kenshi",
          "kingdoms-and-castles",
          "manor-lords",
          "mindustry",
          "minecraft",
          "offworld-trading-company",
          "oxygen-not-included",
          "paralives",
          "pharaoh",
          "planet-coaster",
          "planet-zoo",
          "pocket-city",
          "prison-architect",
          "project-hospital",
          "project-zomboid",
          "railroad-tycoon",
          "rollercoaster-tycoon",
          "satisfactory",
          "schedule-i",
          "shapez-2",
          "simcity-1989",
          "simcity-2000",
          "simcity-2013",
          "simcity-4",
          "simtower",
          "songs-of-syx",
          "space-haven",
          "stardew-valley",
          "stationeers",
          "subnautica",
          "surviving-mars",
          "terra-nil",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "theme-hospital",
          "theme-park",
          "timberborn",
          "tiny-glade",
          "townscaper",
          "transport-tycoon",
          "tropico-6",
          "two-point-hospital",
          "ultima-online",
          "utopia",
          "viva-pinata",
          "workers-and-resources",
          "zoo-tycoon"
        ]
      },
      "prevalence": 77,
      "prevalence_rank": 2,
      "prevalence_share": 0.435,
      "subgenre_spread": 17,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "plopping",
      "construction placement",
      "grid placement"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "The player picks a structure type, position, and usually rotation. The game tests the footprint against occupancy, terrain slope, required neighbors (road access, a water tile, an ore patch), and cost. A valid placement writes the structure into the occupancy grid or spatial index and deducts cost; demolition reverses it, often with a partial refund. Tile grids (SimCity, Factorio, RimWorld) make footprints exact; gridless placement (Manor Lords, Foundation) allows arbitrary angles and curved streets. A ghost preview tinted valid or invalid is the standard interface. The occupancy map is the input to pathing, coverage, adjacency, and room detection.",
    "design_levers": [
      "grid, offset grid, or gridless placement, with or without snapping",
      "footprint sizes and shapes, and whether rotation changes them",
      "terrain rules: slope tolerance, water, and foundations",
      "requirement rules such as road adjacency or resource tiles",
      "demolition refund and rebuild cost, which set how much commitment a placement carries"
    ],
    "dynamics": [
      "Early placements constrain later ones, producing path-dependent layouts and eventual rebuilds.",
      "Space becomes a resource that players trade against throughput or beauty.",
      "Players converge on standard modules, which leads to blueprint copying and sharing."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Gridless placement leaves slivers and gaps that waste space and look untidy.",
      "Free demolition and full refunds remove commitment, so placement stops being a decision.",
      "A red ghost with no reason given makes hidden placement rules feel arbitrary.",
      "Permissive rules with abundant space make layout trivial."
    ],
    "family": "space-construction",
    "feedback": "none",
    "id": "free-placement",
    "legibility": 4,
    "math_basis": [
      "optimization",
      "combinatorics"
    ],
    "maturity": "classic",
    "name": "Building placement",
    "open_questions": [
      "Can natural-language or sketch placement (\"put a market near the docks\") keep the puzzle while removing the click cost?",
      "Which footprint rules make gridless placement as plannable as a grid?"
    ],
    "player_experience": "A spatial puzzle with immediate feedback. Players plan space, fit footprints together, and live with early decisions as the layout fills. Gridless placement adds expressive freedom but also the chore of aligning things by eye.",
    "player_interface": [
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "cellular-grid",
      "rule-system"
    ],
    "summary": "The player places discrete structures on a grid or freely, and placement constraints turn layout into a spatial puzzle.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "ai-dungeon",
      "earliest_year": 2019,
      "incoming": {
        "affected_by": [
          "automated-rule-generation",
          "constrained-decoding",
          "continuous-alife-and-asal",
          "diffusion-game-engines",
          "genie-world-models",
          "learned-level-generation",
          "learned-motion-synthesis",
          "llm-game-master",
          "llm-rule-adjudication",
          "muse-wham",
          "open-interactive-video-models",
          "real-time-video-restyling",
          "text-to-3d-assets"
        ],
        "involved_in": [
          "local-first-ai-sims"
        ],
        "used_by": [
          "ai-dungeon",
          "generative-agents-smallville",
          "infinite-craft",
          "inzoi",
          "project-sid",
          "suck-up",
          "whispers-from-the-star"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 2,
      "technique_count": 13,
      "technique_exposure": 5.812
    },
    "ai_leverage": 4,
    "aliases": [
      "runtime generation",
      "AI-generated content",
      "model-generated content"
    ],
    "authoring_cost": 2,
    "compute_cost": 5,
    "definition": "Player input (free text, a combination of objects, or a request) plus selected game context is sent to a generative model, usually a large language model, and the output is either shown as content or parsed into game state such as a new item, a combination result, or a rule change. AI Dungeon continues a story from Do, Say, Story, and See inputs, first on GPT-2 (1.5 billion parameters in AI Dungeon 2, 2019) and later GPT-3, with a player-editable memory field. Infinite Craft asks a model to name the result of combining two elements and records first discoveries. Suck Up! and Whispers from the Star use models to drive character responses. Key parts: a context builder, an output schema or parser, a cache that may make results deterministic, and moderation. Inputs: player request and context window. Outputs: text or structured content.",
    "design_levers": [
      "what the model may change: presentation only, or typed game state through a constrained schema",
      "caching and determinism: fresh generation per request versus a shared global cache",
      "context and memory construction, such as summaries, retrieved facts, and player-pinned memory",
      "moderation filters and their false-positive rate",
      "model size, latency budget, and per-request cost",
      "authored seeds, examples, and rules that anchor tone and balance"
    ],
    "dynamics": [
      "Players treat the model as a system to probe, sharing prompts that produce surprising or broken outputs.",
      "A shared global cache turns generation into a discovery race, with first discoveries as social status.",
      "When outputs are typed into game state, they combine with other systems and can unbalance economies or progression."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Models forget earlier content beyond their context, so stories contradict themselves (a criticism of AI Dungeon).",
      "Unprompted inappropriate output, and broad filters that flag harmless text, both damaged AI Dungeon's community in 2021.",
      "Output that does not alter simulation state feels weightless, because nothing it says has consequences.",
      "Per-request inference cost and latency limit how often generation can run and push it to servers."
    ],
    "family": "narrative-generation",
    "feedback": "none",
    "id": "generative-content",
    "legibility": 2,
    "math_basis": [
      "machine-learning",
      "probability-statistics"
    ],
    "maturity": "emerging",
    "name": "Generative content on demand",
    "open_questions": [
      "What output schemas let a model add items or rules to a running simulation without breaking its balance?",
      "Can on-device models make generation cheap enough to run per tick rather than per player request?",
      "How should generated content be persisted and versioned so that worlds stay consistent across sessions?"
    ],
    "player_experience": "Open-ended curiosity. Players try things no designer anticipated to see what the model will produce, and part of the fun is probing its boundaries. When the output changes game state, finds feel personal; when it is only text, players notice that nothing is remembered or consequential.",
    "player_interface": [
      "language",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-ai-dungeon"
    ],
    "status": "sourced",
    "substrate": [
      "learned-model"
    ],
    "summary": "A generative model creates new content such as text, items, recipes, or rules at runtime in response to player input.",
    "synergy": [
      {
        "id": "natural-language-interaction",
        "note": "Language input invites generated responses; generated content invites further language input."
      }
    ],
    "tension": [
      {
        "id": "triggered-event-chains",
        "note": "Generated content resists the authored preconditions event chains rely on."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "populous",
      "earliest_year": 1989,
      "incoming": {
        "affected_by": [
          "genie-world-models"
        ],
        "involved_in": [
          "llm-society-terrarium",
          "trainable-creatures-revival"
        ],
        "used_by": [
          "black-and-white",
          "from-dust",
          "populous",
          "simearth",
          "species-alre"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.5
    },
    "ai_leverage": 3,
    "aliases": [
      "miracles",
      "divine intervention",
      "spells"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-populous"
        ],
        "text": "In Populous, raising and lowering land is the most basic power, mana comes from followers building houses, and increasing mana unlocks earthquakes, floods, swamps, and volcanoes."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-black-and-white"
        ],
        "text": "In Black & White, villagers worshipping around the Temple generate power for miracles, which can be cast by gestures with the Hand."
      }
    ],
    "compute_cost": 2,
    "definition": "The player is an external force that cannot command agents directly but can cast powers on the world. State owned: a power pool (mana, belief, prayer power) and the set of unlocked powers with costs and cooldowns. The pool fills from a simulation quantity, typically the number or devotion of followers, and casting spends it to apply an effect at a target: raise or lower land, flood, earthquake, swamp, volcano, rain, lightning, heal, or summon. Effects then propagate through the other systems (terrain, hydrology, population). Canonical forms: Populous, where raising and lowering land is the basic power, mana comes from followers building houses, and more mana unlocks earthquakes, floods, swamps, and volcanoes; Black & White, where worshipping villagers generate power for miracles cast by gesture; From Dust; WorldBox.",
    "design_levers": [
      "power source: followers, belief, devotion, or time",
      "cost, area, and cooldown per power",
      "unlock order of powers",
      "whether powers are destructive, constructive, or both",
      "casting input: menu, gesture, or physical manipulation",
      "how much the world's systems amplify or resist each power"
    ],
    "dynamics": [
      "Follower-funded power creates a reinforcing loop: help followers grow to gain power to help them more.",
      "Terrain-altering powers chain into hydrology and settlement systems, such as floods that relocate a whole population.",
      "In competitive god games, power denial (reducing enemy followers) matters as much as casting."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "One dominant power used repeatedly trivializes opponents.",
      "Gesture recognition that misreads input makes casting frustrating and unreliable under pressure.",
      "Powers with fixed scripted effects feel like animations rather than interventions in a simulation."
    ],
    "family": "control-automation",
    "feedback": "reinforcing",
    "id": "god-powers",
    "legibility": 4,
    "math_basis": [
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "God powers",
    "open_questions": [
      "Can players describe a miracle in language and have a generative system produce effects grounded in the world's physics rather than from a fixed list?",
      "How do learned agents that react to miracles, such as fear or worship, change the follower loop?"
    ],
    "player_experience": "The player feels large and indirect. Problems are solved by reshaping the world rather than ordering people, and destruction is satisfying. The loop of growing followers to earn more power to help or punish them gives a sense of patronage.",
    "player_interface": [
      "direct-manipulation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-wikipedia-populous",
      "src-wikipedia-black-and-white"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "aggregate-stocks"
    ],
    "summary": "The player spends a power resource on miracles that alter terrain, weather, or creatures.",
    "synergy": [
      {
        "id": "terraforming",
        "note": "Miracles that raise land or move water are terraforming delivered as power."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 8,
      "earliest_game": "hamurabi",
      "earliest_year": 1968,
      "incoming": {
        "used_by": [
          "anno-117",
          "anno-1800",
          "autonauts",
          "banished",
          "caesar-3",
          "captain-of-industry",
          "fallout-shelter",
          "farthest-frontier",
          "foundation",
          "hamurabi",
          "manor-lords",
          "mule",
          "offworld-trading-company",
          "pharaoh",
          "stellaris",
          "victoria-3",
          "workers-and-resources"
        ]
      },
      "prevalence": 17,
      "prevalence_rank": 33,
      "prevalence_share": 0.096,
      "subgenre_spread": 7,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "population needs",
      "demand for goods",
      "consumption baskets"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each household, residence, or population tier consumes a basket of goods at fixed per-capita or per-residence rates. Consumption draws from a market, warehouse, or delivered stock; the satisfied fraction of each need feeds population size, satisfaction, tax income, or eligibility to upgrade. Anno 1800 splits needs into basic needs, which raise inhabitants per house, and luxury needs, which raise taxes and happiness, and requires full houses before residents advance a tier. Caesar III houses evolve only when supplied with several food types and goods such as pottery, furniture, oil, and wine, and devolve when supply lapses. Victoria 3 pops buy goods from a market to meet their needs. Inputs: population counts and supplied goods. Outputs: stock drawdown, fulfillment ratios, and growth or downgrade signals.",
    "design_levers": [
      "consumption rate per capita for each good and how it scales with tier",
      "which needs are mandatory for population or upgrades versus optional bonuses",
      "substitutability between goods (any of several food types) versus strict requirements",
      "penalty curve for unmet needs: lost population, lower taxes, unrest, or downgrade",
      "delivery path from stock to consumer: global pool, market radius, or walker delivery"
    ],
    "dynamics": [
      "Population growth raises consumption, which requires more production, which requires more workers: the expansion loop of Anno-style builders.",
      "Tier requirements create layered dependency trees that couple distant islands or regions through trade.",
      "Shortages propagate to labor because unhappy or downgraded populations work less or leave."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Fixed rates make ideal ratios solvable once, after which consumption becomes a spreadsheet exercise.",
      "Downgrade cascades, where one lapsed good devolves a district and collapses its labor supply, feel disproportionate.",
      "Too many required goods per tier create micromanagement that crowds out spatial decisions."
    ],
    "family": "resources-production",
    "feedback": "both",
    "id": "goods-consumption",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Goods consumption",
    "open_questions": [
      "Can learned demand models give populations preferences that shift with culture and events instead of fixed baskets?",
      "What is the smallest basket that still produces interesting supply-chain planning?"
    ],
    "player_experience": "The population is a mouth the player must keep feeding at scale. Players compute production ratios, such as producers per hundred residents, and expand supply ahead of demand. Each tier upgrade raises income but adds new goods to the basket, so success creates the next shortage.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-anno1800wiki-2026-needs"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "agent-based"
    ],
    "summary": "A population consumes goods at per-capita rates; unmet consumption lowers satisfaction or blocks advancement.",
    "synergy": [
      {
        "id": "population-strata",
        "note": "Each tier consumes new goods, so advancement drives production expansion (Anno)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "generative-agents-smallville",
      "earliest_year": 2023,
      "incoming": {
        "affected_by": [
          "generative-agents",
          "llm-agent-societies"
        ],
        "involved_in": [
          "dream-replay-layer",
          "llm-society-terrarium"
        ],
        "used_by": [
          "generative-agents-smallville",
          "inzoi",
          "project-sid"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 2,
      "technique_count": 2,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "rumor spread",
      "information diffusion",
      "knowledge propagation"
    ],
    "authoring_cost": 2,
    "compute_cost": 3,
    "definition": "Owns per-agent knowledge sets (facts, rumors, beliefs about events or other agents), optionally with source and confidence, and the social graph they travel over. When two agents interact, each fact the speaker holds passes with a probability set by salience, relationship, and personality, possibly distorted; receiving a fact can trigger opinion or memory updates. Most games skip this and treat events as known to all: Comme il Faut's social facts database in Prom Week records every event as known to every character. Generative Agents (2023) shows diffusion through language-model conversation: over two game days, awareness of a Valentine's Day party grew from 1 to 13 of 25 agents and of a mayoral candidacy from 1 to 8. Inputs: interactions, event salience, the social graph. Outputs: who knows what, reputation and opinion effects that lag the event, misinformation.",
    "design_levers": [
      "transmission probability per interaction and decay of salience over time",
      "graph structure: who talks to whom in households, workplaces, and gathering places",
      "distortion rate and whether sources are tracked",
      "which facts are worth gossip and how they change opinions",
      "player tools to plant, suppress, or trace rumors"
    ],
    "dynamics": [
      "Information cascades through social hubs such as innkeepers and leaders, so centrality determines influence.",
      "Lagged knowledge lets players act before consequences arrive, enabling crime, deception, and damage control.",
      "Distorted rumors create conflicts over events that did not happen as told."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Slow or patchy propagation makes consequences feel disconnected from actions.",
      "Untraceable chains make reputation changes look random.",
      "Tracking every fact for every agent costs memory and update time in large populations.",
      "Language-model gossip can invent facts that never happened and corrupt game state."
    ],
    "family": "social-relations",
    "feedback": "reinforcing",
    "id": "gossip-propagation",
    "legibility": 2,
    "math_basis": [
      "social-network",
      "epidemiology",
      "information-theory"
    ],
    "maturity": "emerging",
    "name": "Gossip propagation",
    "open_questions": [
      "Can language-model gossip be constrained to facts in the simulation log while keeping distortion as a designed, tunable variable?",
      "What propagation speed makes consequences feel both earned and suspenseful?"
    ],
    "player_experience": "Actions have a spreading radius: a crime matters once someone talks, so the player manages witnesses, timing, and who to tell. Watching news reach a rival late creates suspense and room for deception.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-mccoy-2014-social-story-worlds",
      "src-park-2023-generative-agents"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "agent-based",
      "stochastic-events"
    ],
    "summary": "Information about events spreads through social contacts, changing what agents know and believe.",
    "synergy": [
      {
        "id": "reputation",
        "note": "Reputation travels through gossip, so deeds have audiences."
      },
      {
        "id": "relationship-values",
        "note": "What agents hear about each other changes how they feel."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "populous",
      "earliest_year": 1989,
      "incoming": {
        "involved_in": [
          "open-ended-evolution-sandbox"
        ],
        "used_by": [
          "aurora-4x",
          "equilinox",
          "plague-inc",
          "planet-zoo",
          "populous",
          "seaman",
          "simearth",
          "simlife",
          "species-alre",
          "terra-nil",
          "viva-pinata",
          "zoo-tycoon"
        ]
      },
      "prevalence": 12,
      "prevalence_rank": 50,
      "prevalence_share": 0.068,
      "subgenre_spread": 7,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "biome requirements",
      "habitat requirements",
      "fertility"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a preference profile per species or crop (acceptable ranges or targets for terrain type, temperature, humidity, water, foliage, space, and company) and computes a suitability score for each tile, region, or enclosure by comparing local conditions to the profile, often as a weighted sum or as the worst single factor. The score gates where things can be placed or survive and scales growth, yield, welfare, or breeding. Zoo Tycoon and Planet Zoo grade each enclosure on terrain mix, foliage, area, and biome for each animal; Anno 1800 gives each island fertilities that decide which crops it can farm; Viva Pinata spawns a species only when the garden meets its requirements. Inputs are terrain and climate state; outputs are a scalar per location used by other systems.",
    "design_levers": [
      "number of factors in the profile and how narrow each acceptable range is",
      "combination rule: weighted average, product, or worst single factor",
      "hard gate on placement versus soft multiplier on growth or welfare",
      "how the score is shown: checklist, percentage, overlay, or only through outcomes",
      "whether conditions change at runtime through seasons, climate, or terraforming"
    ],
    "dynamics": [
      "Different profiles force specialization by location, which drives trade between regions or islands.",
      "Coupled with climate or seasons, suitable areas move and populations must migrate or be relocated.",
      "Players terraform to manufacture suitability, creating demand for terrain tools and materials."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Checklists with exact percentages become form-filling once the player knows the threshold values.",
      "Averaging factors lets a perfect score on one factor hide a fatal mismatch on another.",
      "Static suitability makes each location solved once, removing reasons to revisit it."
    ],
    "family": "environment-ecology",
    "feedback": "none",
    "id": "habitat-suitability",
    "legibility": 4,
    "math_basis": [
      "utility-decision",
      "population-dynamics"
    ],
    "maturity": "established",
    "name": "Habitat suitability",
    "open_questions": [
      "Can species distribution models learned from ecological data generate plausible, varied requirement profiles for procedurally generated species?"
    ],
    "player_experience": "Matching puzzles on the map. The player reads a species' or crop's profile, then sculpts terrain, plants foliage, or picks locations until the indicator turns green. Unmet requirements show up as unhappy animals or missing harvests, so the player iterates on the place rather than on the creature.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "cellular-grid",
      "rule-system"
    ],
    "summary": "Species or crops thrive only where conditions such as terrain, temperature, water, and cover match their needs, scored per location.",
    "synergy": [
      {
        "id": "terraforming",
        "note": "Terrain edits change biome conditions, letting the player engineer habitats (Terra Nil, Equilinox)."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "ultima-online",
      "earliest_year": 1997,
      "incoming": {
        "affected_by": [
          "llm-rule-adjudication"
        ],
        "involved_in": [
          "generated-recipe-graphs"
        ],
        "used_by": [
          "a-tale-in-the-desert",
          "animal-crossing-new-horizons",
          "autonauts",
          "dont-starve",
          "dyson-sphere-program",
          "factorio",
          "fallout-shelter",
          "minecraft",
          "project-sid",
          "project-zomboid",
          "satisfactory",
          "stardew-valley",
          "subnautica",
          "the-long-dark",
          "this-war-of-mine",
          "ultima-online",
          "valheim",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 18,
      "prevalence_rank": 29,
      "prevalence_share": 0.102,
      "subgenre_spread": 9,
      "technique_count": 1,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "crafting",
      "recipe crafting",
      "survival crafting"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "The player holds an inventory of components and a set of known recipes, each mapping an input multiset to an output item. A craft checks that inputs are present, any required station (workbench, forge, furnace) is nearby, and the recipe is unlocked, then consumes the inputs and produces the output instantly or after a short delay. Minecraft uses a 2x2 grid in the inventory and a 3x3 grid at a crafting table, with shaped recipes keyed to spatial arrangement; Don't Starve, Valheim, and Subnautica use menu lists gated by stations and blueprints; Ultima Online ties success to a crafting skill. Infinite Craft replaces the recipe table with a language model (Llama 2, later Llama 3.1) that generates the result of any new pair and stores it so every player gets the same answer. Inputs: carried items, station proximity, unlock state. Outputs: new items and consumed components.",
    "design_levers": [
      "recipe count and depth of intermediate components",
      "discovery model: all visible, unlocked by research or blueprints, or found by experimentation",
      "station gating and whether stations must be nearby",
      "craft time and whether crafts can be queued or batched",
      "spatial grid versus list interface",
      "inventory limits that bound how much can be carried to a station"
    ],
    "dynamics": [
      "Tool tiers gate access to materials, which gate the next tool tier, producing a progression ladder from rules alone.",
      "Inventory limits couple crafting to base building and storage chests.",
      "In multiplayer worlds players specialize in crafting lines and trade, as Ultima Online crafters did."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Hidden recipes without in-game discovery aids push players to wikis, as in early Minecraft before its recipe book.",
      "Long chains of trivial intermediates turn crafting into inventory sorting.",
      "Crafting that is strictly better than found loot, or strictly worse, makes one of the two systems irrelevant."
    ],
    "family": "resources-production",
    "feedback": "reinforcing",
    "id": "hand-crafting",
    "legibility": 4,
    "math_basis": [
      "combinatorics"
    ],
    "maturity": "classic",
    "name": "Hand crafting",
    "open_questions": [
      "Can generative models produce open recipe spaces like Infinite Craft whose outputs also have balanced, mechanically meaningful stats rather than only names?",
      "How should discovery be explained to players when a model rather than a table decides what a combination yields?"
    ],
    "player_experience": "Gathering with intent. The player looks at a desired item, works back to its components, and goes out to collect them, so the recipe list becomes a shopping list that structures exploration. The first craft of a new tool is a small power spike that opens the next zone or task.",
    "player_interface": [
      "direct-manipulation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-wikipedia-infinite-craft",
      "src-wikipedia-minecraft"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "The player or avatar combines carried components into items from a recipe list, gated by workstations and known recipes.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "affected_by": [
          "alphaevolve-algorithm-discovery"
        ],
        "involved_in": [
          "neural-npc-motion"
        ],
        "used_by": [
          "banished",
          "captain-of-industry",
          "dwarf-fortress",
          "surviving-mars",
          "timberborn"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 3,
      "technique_count": 1,
      "technique_exposure": 0.1
    },
    "ai_leverage": 2,
    "aliases": [
      "hauling",
      "carrying jobs",
      "item transport by agents"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "Items on the ground or in the wrong storage generate hauling jobs that name a source item and a destination with space. Idle agents with hauling enabled pick jobs by priority and distance, path to the item, carry up to their capacity, and deliver. Throughput is bounded by the number of haulers, walking distance, carry capacity, and competing work. RimWorld haulers move items to the highest-priority stockpile with space, even out of lower-priority stockpiles; Dwarf Fortress splits hauling into labors for stone, wood, food, refuse, and furniture; The Settlers passes every good from flag to flag along roads, with one carrier per road segment; Banished and Timberborn rely on laborers or haulers whose numbers set delivery speed. Inputs: item locations, destinations, agent availability. Outputs: item movement and a job backlog.",
    "design_levers": [
      "carry capacity per agent and the effect of tools such as wheelbarrows or carts",
      "job selection rules: priority, distance, or reservation",
      "how many agents haul and whether hauling is a separate role",
      "stockpile priorities and filters that generate jobs",
      "whether production buildings have local storage or need pickup"
    ],
    "dynamics": [
      "Distance between production and storage becomes a hidden cost, rewarding compact layouts.",
      "Hauling competes with every other job, so labor shortages appear as slowdowns everywhere at once.",
      "Coupled with needs, haulers take breaks, creating rhythmic dips in throughput."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Hauling backlogs are hard to diagnose because the bottleneck is spread across many agents.",
      "Item ping-pong between stockpiles with similar priorities wastes agent time.",
      "Agents abandoning urgent work to haul low-value items reads as AI stupidity."
    ],
    "family": "logistics-networks",
    "feedback": "balancing",
    "id": "hauling-jobs",
    "legibility": 3,
    "math_basis": [
      "scheduling",
      "queueing",
      "graph-search"
    ],
    "maturity": "classic",
    "name": "Hauling jobs",
    "open_questions": [
      "Could learned job dispatch reduce visible AI stupidity while keeping hauling a resource the player manages?",
      "How should backlogs be visualized so players can find the true constraint?"
    ],
    "player_experience": "Watching the colony carry its own weight. Players notice that new production does not help when no one is free to carry it, then shorten distances, build local stockpiles, or assign more haulers. The constraint is visible on screen as piles of goods and idle workbenches.",
    "player_interface": [
      "parameter",
      "orders",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "requires": [
      "agent-pathfinding"
    ],
    "sources": [
      "src-rimworldwiki-2026-stockpile"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "Agents pick up and carry items between locations via a job queue, making hauling capacity a hidden throughput constraint.",
    "synergy": [
      {
        "id": "storage-capacity",
        "note": "Where stockpiles sit determines how much hauling labor the colony spends."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "involved_in": [
          "learned-material-surrogates"
        ],
        "used_by": [
          "dwarf-fortress",
          "elite-dangerous",
          "kerbal-space-program",
          "oxygen-not-included",
          "space-haven",
          "stationeers",
          "the-powder-toy",
          "universe-sandbox",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 9,
      "prevalence_rank": 70,
      "prevalence_share": 0.051,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "temperature simulation",
      "thermal simulation",
      "thermodynamics"
    ],
    "authoring_cost": 2,
    "compute_cost": 3,
    "definition": "Each cell, room, or object holds a temperature and often mass, specific heat capacity, and thermal conductivity. Each tick heat flows between neighbors in proportion to the temperature difference and a conductance from both materials, and temperature changes by heat divided by mass times heat capacity. Thresholds trigger melting, boiling, freezing, damage, and effects on agents. In Oxygen Not Included a tick is 0.2 s; cell-to-cell transfer uses q = dT x dt x k x 1000, multiplied by 25 between solids and gases and 625 between liquids; transfer stops below a 1 C difference or 0.1 DTU, and one tick may close at most a quarter of the difference. Insulated tiles divide conductivity heavily. RimWorld holds one temperature per room that equalizes with outdoors through walls and doors and is driven by heaters and coolers.",
    "design_levers": [
      "per-material specific heat capacity and conductivity",
      "phase-change temperatures and their consequences",
      "transfer multipliers between solids, liquids, and gases",
      "tick length and per-tick caps for stability",
      "insulation strength and environmental heat sinks",
      "damage and agent thresholds"
    ],
    "dynamics": [
      "Machines emit heat as a byproduct, so a growing industrial base slowly overheats itself.",
      "Seasons, fire, and magma couple to temperature and drive phase changes and evacuations.",
      "Heat moved by fluids links plumbing layout to thermal management."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Rounding and phase-change edge cases let players create or delete heat, which becomes a standard exploit.",
      "Per-cell diffusion across a large map becomes a late-game performance cost.",
      "Without overlays, rising temperature is invisible until a threshold fails.",
      "If equilibrium takes far longer than a session, heat stops mattering; if it is fast, it becomes noise."
    ],
    "family": "physics-materials",
    "feedback": "balancing",
    "id": "heat-transfer",
    "legibility": 3,
    "math_basis": [
      "continuum-mechanics"
    ],
    "maturity": "established",
    "name": "Heat transfer",
    "open_questions": [
      "Can forecasting tools that project temperature trends turn slow thermal failure into a readable planning problem?"
    ],
    "player_experience": "Thermal engineering. Players insulate, vent, and cool, and they watch overlays for creeping heat. Late failures arrive slowly: a base heats a fraction of a degree per cycle until crops die or machines stop.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-oxygennotincludedwiki-2026-thermal-conductivity"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "aggregate-stocks"
    ],
    "summary": "Temperature diffuses between cells, materials, and objects by conductivity and heat capacity, and thresholds trigger phase changes and damage.",
    "synergy": [
      {
        "id": "material-interactions",
        "note": "Temperature thresholds trigger material state changes and reactions."
      },
      {
        "id": "spoilage",
        "note": "Temperature drives rot rates."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "out-of-the-park-baseball",
      "earliest_year": 1999,
      "incoming": {
        "affected_by": [
          "llm-explanation-of-state"
        ],
        "involved_in": [
          "causal-why-query",
          "drama-aware-storyteller",
          "dream-replay-layer",
          "event-sourced-sim-runtime",
          "illustrated-chronicles",
          "llm-society-terrarium",
          "placement-that-tells-stories"
        ],
        "used_by": [
          "dwarf-fortress",
          "out-of-the-park-baseball"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.375
    },
    "ai_leverage": 4,
    "aliases": [
      "legends",
      "event log",
      "tales"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "A recorder subscribes to simulation events, filters them by significance, and stores structured records (actor, action, target, place, time, cause) indexed by entity. Browsers present the records as biographies, site histories, and timelines; some games feed records back into play. Dwarf Fortress Legends mode lists historical figures, sites, artifacts, written works, regions, and civilizations, with Chronicles by Age, records the player's own fortress and adventurer achievements, and exports XML that can reach about a gigabyte for long histories. RimWorld records tales that its art system uses to describe what a sculpture depicts. Inputs: the event stream. Outputs: a queryable archive, generated descriptions, and knowledge that agents or items can carry.",
    "design_levers": [
      "significance filter: which event types and thresholds get recorded",
      "record granularity and causal links between records",
      "retention policy and summarization as the archive grows",
      "presentation: raw log, templated prose, timeline, or map",
      "feedback paths: art, books, rumors, or agent knowledge drawn from the archive",
      "export formats for external tools"
    ],
    "dynamics": [
      "Players reconstruct and embellish stories from sparse records, and communities share them as written retellings.",
      "Fed back into the world, records let artworks, books, and rumors reference real past events.",
      "Third-party legends viewers and map tools grow around exported data."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Recording everything floods the archive with trivial entries and very large files.",
      "Templated, tabular text is dry, so most players never open the browser.",
      "Records without causal links list events but do not explain why they happened."
    ],
    "family": "narrative-generation",
    "feedback": "none",
    "id": "history-chronicle",
    "legibility": 4,
    "math_basis": [
      "information-theory"
    ],
    "maturity": "established",
    "name": "History chronicle",
    "open_questions": [
      "Can language models turn structured event logs into faithful narrative summaries that do not invent causes?",
      "Which significance measures best predict the events players later retell?"
    ],
    "player_experience": "Looking back over a run turns scattered events into a story. Players browse to find out who caused what, discover that a minor figure had a long history, and retell their runs to others. When chronicles feed art or rumors, players see their own history reflected inside the world.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-dfwiki-2026-legends",
      "src-wikipedia-dwarf-fortress"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "ui-layer"
    ],
    "summary": "The game records significant simulation events into a structured history that players can browse and other systems can reference.",
    "synergy": [
      {
        "id": "storyteller-director",
        "note": "Directed incidents become chronicle entries, so pacing produces a retellable history."
      },
      {
        "id": "history-generation",
        "note": "Pre-play generated history populates the same archive that records play (Dwarf Fortress legends)."
      }
    ],
    "tuning_difficulty": 1,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "involved_in": [
          "dream-replay-layer",
          "illustrated-chronicles"
        ],
        "used_by": [
          "caves-of-qud",
          "dwarf-fortress"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "world history simulation",
      "worldgen history",
      "legends generation"
    ],
    "authoring_cost": 3,
    "compute_cost": 4,
    "definition": "After terrain and biomes exist, a coarse simulation runs the world forward for a chosen number of years: civilizations found sites, grow, migrate, trade, make war, and found religions, and a subset of individuals is tracked as historical figures with families, titles, kills, and relationships. The final state is the starting map for play, and the event log feeds a chronicle. In Dwarf Fortress the player sets history length (worlds of 1,000 or 10,000 years are possible), populations and deaths counters rise during generation, only part of each site's population becomes historical figures (nobles, megabeasts, villains, their families), and a cap with optional culling limits their total. Caves of Qud generates sultan histories and Crusader Kings seeds dynasties from authored history instead. Inputs: map, races, parameters. Outputs: sites, factions, figures, artifacts, and an event archive.",
    "design_levers": [
      "history length in years",
      "number and type of civilizations and their behavior rules",
      "which individuals are tracked as historical figures and the cap on their count",
      "abstraction level of populations, battles, and trade during generation",
      "event types simulated (wars, migrations, religions, artifacts, monsters)",
      "how much of the generated history is revealed versus discoverable in play"
    ],
    "dynamics": [
      "Generated grudges and alliances set the political situation the player starts in, so two seeds play differently.",
      "Historical figures and artifacts become quest targets, visitors, and threats during play.",
      "Players share notable generated histories as stories in their own right."
    ],
    "emergence_potential": 5,
    "failure_modes": [
      "Long histories take a long time to generate and produce very large saves.",
      "Coarse rules can produce degenerate worlds, such as one civilization conquering everything or all civilizations dying out.",
      "History that never surfaces in play is invisible effort."
    ],
    "family": "world-generation",
    "feedback": "both",
    "id": "history-generation",
    "legibility": 2,
    "math_basis": [
      "population-dynamics",
      "markov-stochastic",
      "social-network"
    ],
    "maturity": "established",
    "name": "Simulated history generation",
    "open_questions": [
      "Can language models turn coarse simulated histories into readable myths and chronicles without contradicting the record?",
      "What is the cheapest history abstraction that still yields grudges and relationships players recognize in play?"
    ],
    "player_experience": "The world feels older than the player. Ruins, feuds, and legendary artifacts have causes the player can look up, and players discover that the world they inherited contains specific grudges, heroes, and lost wars. Long generation times build anticipation.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-wikipedia-dwarf-fortress",
      "src-dfwiki-2026-historical-figure",
      "src-dfwiki-2026-legends"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system",
      "stochastic-events"
    ],
    "summary": "World generation simulates years to centuries of civilizations, figures, and events before play begins, producing the starting world.",
    "synergy": [
      {
        "id": "procedural-terrain",
        "note": "Generated terrain constrains where simulated civilizations settle, fight, and leave ruins."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "pharaoh",
      "earliest_year": 1999,
      "incoming": {
        "affected_by": [
          "graph-network-simulators"
        ],
        "involved_in": [
          "learned-weather-layer"
        ],
        "used_by": [
          "from-dust",
          "pharaoh",
          "terra-nil",
          "timberborn"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.1
    },
    "ai_leverage": 3,
    "aliases": [
      "water simulation",
      "rivers and floods",
      "irrigation"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "Owns water depth per cell on a terrain heightfield, often with source and sink rates, flow velocity, and soil moisture. Each tick water moves from higher to lower surface height between neighboring cells, evaporates, and is added by springs, rain, or rivers; moisture spreads from water to nearby land and gates crop growth. Timberborn links each tile to its four neighbors by virtual pipes, ticks every few hundred milliseconds, evaporates water, and runs recurring droughts that switch sources off and grow harsher; dams, levees, and floodgates regulate flow, and moisture falls off with distance and sharply uphill. From Dust and Cities: Skylines also simulate terrain water, while Pharaoh schedules a yearly Nile flood that waters floodplain farms. Inputs are terrain, sources, weather, and player structures; outputs are water levels, floods, and moisture.",
    "design_levers": [
      "grid resolution and tick rate of the flow solver",
      "source strength schedules, including drought and flood cycles and how fast they ramp",
      "evaporation rate, seepage, and moisture spread distance",
      "structures: dams, levees, floodgates, pumps, canals, and their flow controls",
      "whether water erodes or deposits terrain"
    ],
    "dynamics": [
      "Upstream structures change downstream conditions, creating spatial dependencies across the map.",
      "Reservoir capacity becomes a stock that buffers seasonal or drought variability.",
      "Flooding couples with building placement, farmland, and disasters such as dam failure."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Fixed flow values on structures cause oscillations and waves; Timberborn's developers avoided hard-coded dam values for this reason.",
      "Abrupt switching of water sources makes water slosh unrealistically; Timberborn ramps source strength down before a drought starts.",
      "Water that leaks through gaps or ignores terrain edits reads as a bug and breaks trust in the system.",
      "Large water grids can dominate simulation cost and cap map size."
    ],
    "family": "environment-ecology",
    "feedback": "balancing",
    "id": "hydrology",
    "legibility": 3,
    "math_basis": [
      "continuum-mechanics",
      "cellular-automata"
    ],
    "maturity": "established",
    "name": "Hydrology",
    "open_questions": [
      "Can learned shallow-water surrogates run large terrain water at interactive rates while staying predictable enough to engineer against?"
    ],
    "player_experience": "Engineering with a moving material. The player shapes terrain and builds dams to store water for dry spells, protects low ground from floods, and watches a mistake travel downstream. Droughts turn reservoir size into the main survival question, and a dam failure is a visible, traceable disaster.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-amielanczyk-2023-timberborn-water"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "continuous-physics"
    ],
    "summary": "Water flows across terrain and through rivers by height differences, producing floods, droughts, irrigation, and dam management.",
    "synergy": [
      {
        "id": "terraforming",
        "note": "Reshaping terrain redirects water, so terrain editing becomes water engineering (From Dust, Timberborn)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "used_by": [
          "banished",
          "dwarf-fortress",
          "kingdoms-and-castles",
          "victoria-3"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "migration",
      "attractiveness",
      "settler arrivals"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns an attractiveness score per settlement or region, computed from jobs, housing vacancy, wages or standard of living, services, happiness, and reputation, and a flow rule that turns the score difference against an outside reference or other regions into arrivals and departures per period. Arrivals usually need free housing, and departures follow sustained low scores. In Micropolis, the SimCity engine, residential migration rises and falls with employment, the ratio of jobs to residents. Victoria 3 moves pops within a market toward states with higher migration attraction, set mainly by standard of living, while migration laws filter who may move. RimWorld instead adds colonists through storyteller events such as wanderers joining. Inputs: jobs, housing, satisfaction, policy. Outputs: population inflow and outflow by type.",
    "design_levers": [
      "factors in the attractiveness score and their weights",
      "reference point: a fixed outside world, competing regions, or other players",
      "flow elasticity per unit of score difference",
      "housing requirement and arrival batch size",
      "selectivity: which classes, cultures, or skills migrate, and policy filters"
    ],
    "dynamics": [
      "Growth raises demand for services and jobs, which lowers attractiveness until supply catches up, a balancing loop.",
      "Booms and busts as migration lags job creation.",
      "Inter-regional competition: improving one region drains its neighbors."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Overshoot: migration responds fast to jobs, then unemployment spikes, then emigration, oscillating.",
      "Unconditional arrivals make population trivially easy and remove the planning puzzle.",
      "Opaque scores leave players unable to tell why people leave.",
      "Mass arrivals overwhelm services in one step and trigger cascades."
    ],
    "family": "population-lineage",
    "feedback": "balancing",
    "id": "immigration-attractiveness",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "population-dynamics"
    ],
    "maturity": "classic",
    "name": "Immigration by attractiveness",
    "open_questions": [
      "Can migration models calibrated to real census or survey data make city builders useful for planning education without hurting playability?",
      "How should attractiveness be explained so players can attribute departures to causes?"
    ],
    "player_experience": "The player grows population indirectly by making the place worth moving to, and loses it the same way. Growth feels earned and fragile: a housing shortage or unemployment spike shows up as people leaving.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-hopkins-2008-micropolis",
      "src-paradoxwikis-2026-vic3-pops"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "agent-based",
      "stochastic-events"
    ],
    "summary": "Population arrives or leaves based on attractiveness such as jobs, housing, and happiness relative to alternatives.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "affected_by": [
          "physics-based-character-control"
        ],
        "involved_in": [
          "neural-npc-motion"
        ],
        "used_by": [
          "arma-3",
          "caves-of-qud",
          "dwarf-fortress",
          "kenshi",
          "project-zomboid",
          "rimworld",
          "surgeon-simulator"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 5,
      "technique_count": 1,
      "technique_exposure": 0.25
    },
    "ai_leverage": 2,
    "aliases": [
      "body part damage",
      "wound model",
      "health hierarchy"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns, per creature, a tree of body parts with hit points, tissue layers, or functions, plus a list of conditions such as cuts, burns, fractures, bleeding, infection, scars, and missing or artificial parts. Damage lands on a sampled part; part health feeds capacities such as consciousness, moving, manipulation, sight, breathing, and blood pumping, which scale work speed, combat, and survival. Each tick bleeding drains blood, infections race against immunity, and tended wounds heal. RimWorld derives capacities from parts: consciousness below 30% keeps a pawn from waking, moving below 15% incapacitates, each arm supplies half of manipulation, blood pumping at 0% is fatal, poor tending raises infection and scarring risk, and each bionic leg adds 12.5% moving. Dwarf Fortress damages tissue layers per part; Project Zomboid tracks wounds per body region. Inputs are damage and treatment; outputs are capacity multipliers, pain, and death.",
    "design_levers": [
      "granularity of the body tree: regions, organs, tissue layers",
      "mapping from part damage to capacities and from capacities to actions",
      "bleeding rate, infection chance, and healing rate, and how treatment quality modifies them",
      "permanence: scars, lost parts, chronic pain",
      "replacement options such as prosthetics, bionics, and transplants, and their availability"
    ],
    "dynamics": [
      "Injured agents work slower, lowering output and raising pressure on healthy ones.",
      "Demand for medicine, doctors, and prosthetics creates a medical economy.",
      "Disabilities shape character identity and the stories players tell about them."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Too many parts and conditions make the health screen unreadable, so players cannot tell what is lethal.",
      "Fine-grained damage with high lethality makes outcomes feel like dice rolls, such as death from one hit to a vital organ.",
      "Permanent disabilities without replacement paths make injured characters dead weight the player discards."
    ],
    "family": "biology-health",
    "feedback": "both",
    "id": "injury-body-model",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "markov-stochastic"
    ],
    "maturity": "established",
    "name": "Injury body model",
    "open_questions": [
      "Can language models narrate injuries and recovery so deep body models stay legible without a dense health tab?"
    ],
    "player_experience": "Injuries become specific stories: a colonist missing a hand works slower, a hunter with a shattered leg cannot flee. The player triages by which wound threatens life first, stops bleeding before worrying about infection, and plans around lasting disabilities or replaces parts with prosthetics.",
    "player_interface": [
      "observation",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-rimworldwiki-2026-health"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "Bodies are hierarchies of parts with their own damage, and wounds, bleeding, infection, and prosthetics change capacities such as moving and manipulation.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "europa-universalis-4",
      "earliest_year": 2013,
      "incoming": {
        "affected_by": [
          "human-behavior-simulation-models"
        ],
        "involved_in": [
          "natural-language-legislation"
        ],
        "used_by": [
          "democracy-4",
          "europa-universalis-4",
          "frostpunk-2",
          "stellaris",
          "tropico-6",
          "victoria-3"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 4,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 4,
    "aliases": [
      "factions (domestic)",
      "political factions",
      "estates"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Owns a set of groups within the polity, each with members, clout (political power), ideology or preferences over laws and policies, and approval. Clout is recomputed from members' wealth, numbers, and enfranchisement; approval from how well current laws match the group's preferences, whether it is in government, and events. Approval and clout gate what the player can do and trigger effects: favorable traits, petitions, obstruction, radicalization, or revolt. Victoria 3 (2022) is the canonical form: each pop gives political strength to the group it supports based mainly on wealth and the voting law, clout is the group's share of the national total and classifies groups as powerful, influential, or marginalized, marginalized groups cannot activate traits, and law enactment chances depend on the endorsement or opposition of groups in government. Tropico 6, Stellaris factions, and Frostpunk 2's factions are other forms.",
    "design_levers": [
      "number of groups and how distinct their preferences are",
      "clout formula (wealth, population, votes, offices held)",
      "approval inputs (laws, government membership, events, promises)",
      "effects at each approval and clout band (traits, petitions, obstruction, revolt)",
      "how members move between groups as their economic conditions change"
    ],
    "dynamics": [
      "Laws that empower a group raise its clout, which helps it block reforms that would weaken it, so institutions entrench.",
      "Economic change moves people between groups, so industrialization shifts political power over decades.",
      "Angry groups with high clout radicalize into movements that can force concessions or civil war."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "When one group's clout dominates and nothing shifts it, politics freezes into one optimal coalition.",
      "Approval effects that are too weak make groups ignorable, and too strong make reforms impossible.",
      "Opaque clout and approval math makes political outcomes feel random without detailed tooltips."
    ],
    "family": "governance-policy",
    "feedback": "both",
    "id": "interest-groups",
    "legibility": 3,
    "math_basis": [
      "game-theory",
      "social-network",
      "utility-decision"
    ],
    "maturity": "established",
    "name": "Interest groups",
    "open_questions": [
      "Can LLM-driven group leaders negotiate, make demands, and remember broken deals in ways that stay consistent with the clout and approval model?",
      "Can interest groups form and dissolve from the population's actual interests rather than from a fixed authored list?"
    ],
    "player_experience": "Governing through coalitions. The player reads which groups are strong and what they want, brings friendly groups into government, placates or marginalizes opponents, and accepts that every reform makes someone angry. Power is never absolute.",
    "player_interface": [
      "choice-cards",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-paradox-2021-vic3-interest-groups",
      "src-paradox-2023-vic3-law-enactment"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "agent-based"
    ],
    "summary": "Factions within a polity have clout and preferences over policies, and their approval gates what the player can do.",
    "synergy": [
      {
        "id": "policy-toggles",
        "note": "Policies gain or lose group approval, so lawmaking becomes coalition management."
      },
      {
        "id": "stability-unrest",
        "note": "Alienated groups radicalize into unrest."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "caesar-3",
      "earliest_year": 1998,
      "incoming": {
        "affected_by": [
          "llm-agent-societies"
        ],
        "used_by": [
          "anno-1800",
          "caesar-3",
          "frostpunk",
          "pharaoh",
          "victoria-3"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.25
    },
    "ai_leverage": 2,
    "aliases": [
      "jobs and workers",
      "employment",
      "workforce"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Owns the worker supply by type (education, class, or profession) and the job slots by type that buildings offer, and matches them. Unmatched workers are unemployed; unfilled jobs leave buildings understaffed, and output scales with staffing. In Micropolis, the SimCity engine, Employment = jobs / (residents / 8) drives migration of (residents / 8) x (Employment - 1) per cycle, a labor ratio of residents to jobs clamped to 0-1.3 scales projected commercial and industrial growth, and unemployment is one of the problems citizens complain about. Cities: Skylines and Workers and Resources split workers by education, so a city without educated workers cannot staff offices or advanced plants. Victoria 3 hires pops into buildings by profession and wage, and Anno 1800 requires each residence tier to staff that tier's production buildings.",
    "design_levers": [
      "number of worker types and whether higher types can fill lower jobs",
      "staffing-to-output curve (linear, threshold, or minimum crew)",
      "commute or catchment limits on which workers can reach which jobs",
      "migration response to unemployment and vacancies",
      "wages as a lever that shifts who takes which job"
    ],
    "dynamics": [
      "Jobs attract migrants, migrants demand shops and services, and those create more jobs, producing boom cycles.",
      "A large employer far from housing generates commuter traffic and congestion.",
      "Education pays off with a long lag, so labor mismatches appear whenever the economy shifts."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Aggregate matching hides the cause of shortages, so players see idle buildings without knowing which worker type is missing.",
      "Education systems that push the whole population past the available jobs can stall industry with no clear fix.",
      "Instant matching removes the lag that makes workforce planning interesting."
    ],
    "family": "economy-finance",
    "feedback": "balancing",
    "id": "labor-market",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Labor market",
    "open_questions": [
      "Can agent-level career choice by learned or LLM agents produce realistic structural unemployment without hand-tuned migration formulas?",
      "How much labor detail (types, commutes, wages) can players manage before the mechanic becomes opaque?"
    ],
    "player_experience": "Balancing homes against jobs. The player reads unemployment and vacancy numbers, builds housing or schools when factories sit idle, and learns that a new industry is useless without workers to run it.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-hopkins-2008-micropolis"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "agent-based"
    ],
    "summary": "Workers fill jobs by type and education; mismatches create unemployment or labor shortages that throttle production.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "involved_in": [
          "learned-build-assist"
        ],
        "used_by": [
          "cities-skylines",
          "cities-skylines-2",
          "simcity-1989",
          "simcity-2000",
          "simcity-4"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "desirability",
      "property value"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Owns a value per tile or block, recomputed periodically from distance to centers, nearby amenities and nature, and nuisances. In Micropolis, the open-source SimCity engine, each developed 2x2 block gets value = 4 x (34 - distance to the population-weighted center) + a bonus for nearby trees and water - pollution, minus 20 where crime exceeds 190, clamped to 1-250. The value then drives residential growth (value minus pollution, scaled and capped), picks which of four building quality tiers develops, raises tax revenue through the city average, and lowers crime, which is computed as 128 - land value + density - police coverage. SimCity 4 computes desirability separately for each wealth level, and Cities: Skylines levels up buildings partly on land value raised by services and parks and lowered by pollution and noise.",
    "design_levers": [
      "components of the value formula (center distance, amenities, terrain, pollution, crime, noise) and their weights",
      "radius and falloff of each amenity or nuisance",
      "smoothing and update frequency of the value field",
      "thresholds that map value to building tiers, density, or wealth class",
      "whether value feeds taxes, rents, or residents' wealth directly"
    ],
    "dynamics": [
      "Low value raises crime and crime lowers value, so neglected districts slide toward slums unless policing or amenities break the loop.",
      "Rising value upgrades buildings and density, which adds traffic and noise that cap further gains.",
      "Value-based tax revenue rewards beautification, coupling aesthetics to the budget."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Stacking cheap amenities such as parks in one spot maxes value and becomes a dominant pattern.",
      "When the formula is visible only as an overlay color, players cannot tell which factor holds a block back.",
      "A strong distance-to-center term makes every city look the same: dense core, poor fringe."
    ],
    "family": "economy-finance",
    "feedback": "reinforcing",
    "id": "land-value",
    "legibility": 3,
    "math_basis": [
      "cellular-automata",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Land value",
    "open_questions": [
      "Could a learned hedonic model trained on real property data give land values that feel like real cities, and would players accept its opacity?",
      "Can land value include speculation and expectations, not only current neighbors, without destabilizing growth?"
    ],
    "player_experience": "Shaping neighborhoods. The player places parks, transit, and services to lift values, keeps factories away from homes, and watches shabby blocks turn into towers. Checking the land value overlay becomes a planning habit.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-hopkins-2008-micropolis"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "aggregate-stocks"
    ],
    "summary": "Each location's value is computed from nearby amenities, nuisances, and access, and it drives density and building upgrades.",
    "synergy": [
      {
        "id": "zoning",
        "note": "Zones develop according to land value, so placement decisions compound over time."
      },
      {
        "id": "service-coverage",
        "note": "Service coverage raises land value, rewarding complete coverage with density."
      },
      {
        "id": "pollution-spread",
        "note": "Pollution depresses land value, creating the industrial-residential separation puzzle."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "simant",
      "earliest_year": 1991,
      "incoming": {
        "involved_in": [
          "living-workforce-factories"
        ],
        "used_by": [
          "banished",
          "cities-skylines",
          "creatures",
          "crusader-kings-3",
          "equilinox",
          "fallout-shelter",
          "football-manager",
          "inzoi",
          "out-of-the-park-baseball",
          "paralives",
          "planet-zoo",
          "princess-maker-2",
          "screeps",
          "seaman",
          "simant",
          "simlife",
          "species-alre",
          "tamagotchi",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "timberborn",
          "zoo-tycoon"
        ]
      },
      "prevalence": 23,
      "prevalence_rank": 18,
      "prevalence_share": 0.13,
      "subgenre_spread": 10,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "life stages",
      "aging",
      "birth and death"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns each agent's age (or an age-structured population count) and a table of life stages with durations, capabilities, needs, and mortality. Each tick age advances; crossing a stage boundary changes what the agent can do (work, marry, study), what it needs, and how it looks; mortality rises with age until death. Births add agents through reproduction rules. The Sims 2 has seven stages (baby, toddler, child, teen, young adult with University, adult, elder): babies become toddlers after 3 Sim days, children become teens after 8, teens live 15 days, adults become elders after 29, and elder lifespan depends on the aspiration meter. Victoria 3 aggregates the same idea: natural growth is birth rate minus mortality, both falling as standard of living rises. Inputs: time, health, birth rules. Outputs: workforce and dependents, deaths, succession and inheritance triggers.",
    "design_levers": [
      "number and duration of life stages relative to the game calendar",
      "capabilities and needs per stage, such as child labor rules or elder frailty",
      "mortality curve and whether death is fixed-age or probabilistic",
      "birth rules and fertility windows",
      "player controls such as aging toggles and lifespan settings"
    ],
    "dynamics": [
      "Age structure sets dependency ratios that throttle labor and drive housing and school demand.",
      "Founding cohorts create waves of births, retirements, and deaths that repeat across generations.",
      "Deaths trigger inheritance, succession, and grief, coupling lifecycle to social and dynastic systems."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Lifespans short relative to play pace make characters die before players attach, so games add lifespan settings or aging toggles.",
      "Demographic echoes: one founding cohort ages together and causes a labor collapse or mass death decades later.",
      "Children are pure cost with nothing to do, so players avoid births."
    ],
    "family": "population-lineage",
    "feedback": "balancing",
    "id": "lifecycle-aging",
    "legibility": 4,
    "math_basis": [
      "population-dynamics",
      "markov-stochastic"
    ],
    "maturity": "classic",
    "name": "Lifecycle and aging",
    "open_questions": [
      "Can generative models keep a character recognizable across ages in appearance and personality while allowing growth?",
      "What ratio of lifespan to play pace maximizes attachment and generational play?"
    ],
    "player_experience": "Time becomes personal: the player watches characters grow up and grow old, plans careers and heirs, and grieves. Aging turns a static roster into a pipeline in which the player raises the next generation of workers.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-wikipedia-the-sims-2",
      "src-paradoxwikis-2026-vic3-pops"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "aggregate-stocks"
    ],
    "summary": "Agents are born, age through life stages with different capabilities, and die.",
    "synergy": [
      {
        "id": "trait-inheritance",
        "note": "Generations turn over, carrying inherited traits forward."
      },
      {
        "id": "romance-family",
        "note": "Families form and produce the next generation."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "railroad-tycoon",
      "earliest_year": 1990,
      "incoming": {
        "used_by": [
          "big-ambitions",
          "democracy-4",
          "euro-truck-simulator-2",
          "europa-universalis-4",
          "farming-simulator-25",
          "hardspace-shipbreaker",
          "offworld-trading-company",
          "pocket-city",
          "railroad-tycoon",
          "rollercoaster-tycoon",
          "simcity-2000",
          "theme-hospital",
          "theme-park",
          "transport-tycoon"
        ]
      },
      "prevalence": 14,
      "prevalence_rank": 42,
      "prevalence_share": 0.079,
      "subgenre_spread": 9,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "bonds",
      "credit",
      "leverage"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns outstanding principal, an interest rate, a repayment schedule, and a borrowing limit. Each period interest is charged to the treasury, and principal is repaid on schedule, at will, or at bond maturity. The limit and rate often depend on a credit rating, net worth, or the number of outstanding loans. Missed payments trigger penalties, forced liquidation, bankruptcy, or game over. Railroad Tycoon (1990) starts each railroad with $1 million split evenly between equity and a loan and lets players sell bonds for more capital. SimCity 2000 adds bonds to the city budget, Theme Hospital offers loans through a policy setting, and Transport Tycoon lets companies raise and repay a loan in increments up to a cap.",
    "design_levers": [
      "interest rate and whether it rises with debt load, credit rating, or economic conditions",
      "borrowing cap tied to net worth, rating, or a fixed limit",
      "repayment structure (amortized, interest-only, bond maturity, repay at will)",
      "default consequence (penalty, asset seizure, bankruptcy, game over)",
      "priority of debt service relative to wages and services when cash runs short"
    ],
    "dynamics": [
      "Leverage amplifies booms and busts: borrowed capital grows revenue faster but turns a demand dip into bankruptcy.",
      "Rates that rise with debt load create spirals in which new loans pay old interest.",
      "Interest acts as a money sink that drains surplus in the late game."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Cheap debt with high early returns makes borrowing the maximum at the start a dominant opening in many tycoon games.",
      "Default with no warning or recovery path ends runs abruptly and teaches players never to borrow.",
      "Fixed rates in a growing economy make debt irrelevant once revenue scales."
    ],
    "family": "economy-finance",
    "feedback": "reinforcing",
    "id": "loans-debt",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Loans and debt",
    "open_questions": [
      "Could AI lenders that assess a player's plans and history negotiate terms in language, making credit a relationship rather than a slider?",
      "What rate curves keep leverage a real choice across a whole game rather than an opening move?"
    ],
    "player_experience": "Betting on the future. The player borrows to build faster than income allows, watches interest eat margins, and times repayment. A downturn while leveraged turns a confident plan into a scramble to stay solvent.",
    "player_interface": [
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "requires": [
      "budget-treasury"
    ],
    "sources": [
      "src-wikipedia-railroad-tycoon",
      "src-wikipedia-simcity-2000",
      "src-wikipedia-theme-hospital"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "Capital can be borrowed at interest with repayment schedules, so leverage accelerates both growth and failure.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "ultima-online",
      "earliest_year": 1997,
      "incoming": {
        "used_by": [
          "eve-online",
          "minecraft",
          "ultima-online",
          "valheim"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "full loot",
      "item drop on death",
      "corpse run",
      "ship loss and insurance"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns the rules applied to an entity's assets at death: which items are destroyed, which drop into a container (corpse, tombstone, wreck) at the death location, who may loot it and for how long, and what compensation applies, such as insurance payouts or protected items. On death the inventory is partitioned by those rules, a container entity is spawned with a despawn timer or permanence, and the character respawns elsewhere or not at all. Ultima Online left corpses lootable by other players and added item insurance in 2003; EVE Online destroys ships for good and drops part of the cargo and fittings in a wreck. Valheim leaves the player's items in a tombstone at the death site; Minecraft drops the inventory where the player died. Unlike permadeath, which removes the character, this mechanic removes or relocates possessions while the character usually continues.",
    "design_levers": [
      "share of assets destroyed, dropped, or kept",
      "who can loot dropped assets and for how long before they despawn",
      "insurance or protected-slot systems and their cost",
      "respawn location relative to the death site",
      "additional death costs such as skill or experience loss"
    ],
    "dynamics": [
      "Asset destruction creates steady demand for replacements, sustaining player crafting and markets.",
      "Corpse runs become memorable expeditions, often with friends.",
      "Players match the value of a loadout to the risk of the area, producing cheap disposable kits for dangerous trips."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Full loot in open player-versus-player worlds lets strong players farm weak ones, a problem Ultima Online answered by splitting off the consensual-PvP Trammel facet in 2000.",
      "Short despawn timers turn a death far from home into an unrecoverable loss that ends play sessions.",
      "Players hoard their best gear and never use it, so the items the loss rule protects stop being played."
    ],
    "family": "risk-failure",
    "feedback": "reinforcing",
    "id": "loss-on-death",
    "legibility": 5,
    "math_basis": [
      "utility-decision",
      "game-theory"
    ],
    "maturity": "classic",
    "name": "Loss on death",
    "open_questions": [
      "Could AI-run recovery services or scavenger agents make dropped assets part of the world's economy rather than a pure loss?",
      "What mix of destroyed and recoverable assets keeps risk meaningful without driving players to hoard?"
    ],
    "player_experience": "Risk is measured in gear. The player decides what to carry into danger, keeps backups at home, and after a death makes a tense run back to recover a corpse or tombstone. In player-versus-player worlds the same rule makes every fight a gamble for the other side's equipment.",
    "player_interface": [
      "direct-manipulation",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-wikipedia-ultima-online",
      "src-wikipedia-eve-online"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "When a character or ship is destroyed, its carried or fitted assets are lost or dropped at the death site for the owner or others to recover, with insurance or retrieval rules as softeners.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "factorio",
      "earliest_year": 2013,
      "incoming": {
        "affected_by": [
          "quality-diversity-search"
        ],
        "used_by": [
          "captain-of-industry",
          "dyson-sphere-program",
          "factorio",
          "mindustry",
          "satisfactory"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 1,
      "technique_count": 1,
      "technique_exposure": 0.1
    },
    "ai_leverage": 2,
    "aliases": [
      "modules",
      "overclocking",
      "clock speed",
      "beacons",
      "proliferation"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns, for each producing machine, a set of modifier slots or settings and the effect vector they sum to: speed, productivity (extra output per cycle), energy use, and sometimes pollution or quality. Cycle time divides by one plus the speed bonus, productivity fills a bonus bar that yields free outputs, and power draw scales with the boost, often superlinearly. Satisfactory clock speed runs from 1% to 250%, each of up to three Power Shards raises the cap by 50 points, and power scales with exponent 1.321928, so 250% draws 335.77% of base power. Factorio fills module slots with speed, productivity, efficiency, or quality modules, beacons project module effects onto nearby machines, and productivity bonuses are capped at +300%. Dyson Sphere Program coats items with proliferator so machines consuming them gain extra products or speed. Captain of Industry spends Unity on building boosts. Unlike production-chain, which owns recipes and buffers, and quality-tiers, which owns item grades, this mechanic owns the cost-benefit curve of pushing a single machine harder.",
    "design_levers": [
      "shape of the power or cost curve per unit of boost, linear or convex such as Satisfactory's exponent of about 1.32",
      "separate effect axes (speed, productivity, efficiency, pollution) and the tradeoffs bundled into one slot",
      "slot counts per machine and whether boosts can be shared with neighbors, as with beacons",
      "cost of the boost itself: crafted modules, rare world pickups such as Power Shards, or a currency such as Unity",
      "caps on stacked bonuses, such as Factorio's +300% productivity limit",
      "which machine types accept boosts: assemblers, drills, labs, turrets"
    ],
    "dynamics": [
      "Players trade space for power: compact boosted builds compete with sprawling unboosted ones.",
      "Productivity bonuses on late stages save every upstream input, so players boost the end of a chain first.",
      "Boosting a bottleneck moves the bottleneck to power generation, coupling factory design to the grid."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Productivity bonuses that stack without a cap create net-positive loops; Factorio caps productivity at +300% to prevent this.",
      "One dominant configuration, such as productivity modules everywhere with beacons for speed, becomes a solved template.",
      "Convex power costs that are not shown make overclocking feel like a sudden grid failure.",
      "Boosts gated on rare pickups push players into exploration chores unrelated to factory design."
    ],
    "family": "resources-production",
    "feedback": "reinforcing",
    "id": "machine-boosting",
    "legibility": 3,
    "math_basis": [
      "optimization",
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Machine boosting",
    "open_questions": [
      "Can planners that solve module and clock settings for a target rate coexist with players who enjoy solving them by hand?",
      "Which cost curves keep boosted and unboosted builds both viable through the late game?"
    ],
    "player_experience": "An optimization layer on top of ratio planning. Players decide whether to build more machines or push the ones they have, weighing floor space and materials against a growing power bill. Slotting the last productivity module or overclocking a bottleneck machine is a satisfying fix, and the power spike that follows is the bill.",
    "player_interface": [
      "placement",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-satisfactorywiki-2026-clock-speed",
      "src-wube-2023-fff-375-quality",
      "src-coiwiki-2026-unity"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "aggregate-stocks"
    ],
    "summary": "Per-machine modifiers such as modules, beacons, clock speed, or coatings trade extra power, scarce items, or currency for faster or more productive machines.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "the-incredible-machine",
      "earliest_year": 1993,
      "incoming": {
        "affected_by": [
          "graph-network-simulators",
          "llm-rule-adjudication"
        ],
        "used_by": [
          "besiege",
          "caves-of-qud",
          "from-dust",
          "noita",
          "teardown",
          "the-incredible-machine",
          "the-powder-toy",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 8,
      "prevalence_rank": 77,
      "prevalence_share": 0.045,
      "subgenre_spread": 5,
      "technique_count": 2,
      "technique_exposure": 0.938
    },
    "ai_leverage": 4,
    "aliases": [
      "chemistry engine",
      "elemental interactions",
      "systemic elements"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Entities carry material tags (wood, metal, grass) and element states (burning, wet, frozen, electrified). A rule table maps element-material and element-element pairs to state changes applied on contact or within an area each tick. In The Legend of Zelda: Breath of the Wild, Takuhiro Dohta described a chemistry engine beside the physics engine: physics is a rule-based movement calculator and chemistry a rule-based state calculator. Elements (fire, water, ice, electricity, wind) change the states of materials and of each other, and materials do not change each other. Divinity: Original Sin uses surfaces where oil burns and water conducts lightning. Outputs are state changes that trigger damage, movement, and new elements.",
    "design_levers": [
      "number of elements and material tags",
      "density of the interaction table: which pairs react",
      "propagation: contact, area, or spread rate over time",
      "duration and decay of states",
      "how closely rules follow real-world intuition",
      "how strongly reactions are telegraphed visually"
    ],
    "dynamics": [
      "Chained reactions, such as fire on grass creating an updraft for gliding in Breath of the Wild.",
      "Environmental kills and accidents emerge from mixing combat with terrain and weather.",
      "Players find puzzle solutions designers did not plan."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "An interaction that works in one place but not another breaks trust in the whole system.",
      "Combinatorial growth of pairs produces untested reactions and bugs.",
      "One reaction combo dominates combat and flattens choice.",
      "Authored puzzles with single intended solutions conflict with systemic shortcuts."
    ],
    "family": "physics-materials",
    "feedback": "both",
    "id": "material-interactions",
    "legibility": 4,
    "math_basis": [
      "combinatorics",
      "cellular-automata"
    ],
    "maturity": "established",
    "name": "Material interactions",
    "open_questions": [
      "Can a language model judge interactions for arbitrary pairs of materials at runtime while staying consistent across a session?",
      "What is the smallest rule table that still produces chains players experience as emergent?"
    ],
    "player_experience": "Asking \"what if\" and having the world answer consistently. Players combine elements for creative solutions in puzzles and fights, and the satisfaction is in solutions that feel discovered rather than designed.",
    "player_interface": [
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-fujibayashi-2017-botw-change-and-constant",
      "src-thumbsticks-2017-botw-chemistry",
      "src-wikipedia-zelda-breath-of-the-wild"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "cellular-grid",
      "agent-based"
    ],
    "summary": "A rule table defines how elements such as fire, water, and electricity change materials and each other on contact.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "pharaoh",
      "earliest_year": 1999,
      "incoming": {
        "used_by": [
          "anno-1800",
          "dyson-sphere-program",
          "factorio",
          "pharaoh",
          "satisfactory",
          "shapez-2"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "endgame megastructure",
      "terminal project",
      "space elevator",
      "Dyson sphere"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-satisfactorywiki-2026-space-elevator"
        ],
        "text": "Satisfactory's Space Elevator has five Project Assembly phases that unlock tiers 3-4, 5-6, 7-8, 9, and the ending; phase 1 needs 50 Smart Plating, and phase 5 needs Nuclear Pasta, Biochemical Sculptors, AI Expansion Servers, and Ballistic Warp Drives."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-dspwiki-2026-dyson-sphere"
        ],
        "text": "Dyson Sphere Program solar sails are fired by EM-Rail Ejectors, last 5,400 seconds by default, and are absorbed permanently by completed shells, while Small Carrier Rockets build frames."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-shapez2wiki-2026-operator-level"
        ],
        "text": "shapez 2 operator goal lines grow exponentially in cost per level, for example 15,000 shapes at 18% growth."
      }
    ],
    "compute_cost": 2,
    "definition": "Owns one or more megaprojects, each a sequence of phases with large delivery requirements (item types and quantities, or energy), the deliveries accumulated so far, and the reward for each phase or the whole project (unlocks, power, a victory, or an ending). Delivered goods are consumed, so the project converts factory throughput into progress and gives an open-ended economy both a target and an outlet. Satisfactory's Space Elevator takes five Project Assembly phases, from 50 Smart Plating in phase 1 to Nuclear Pasta, Biochemical Sculptors, AI Expansion Servers, and Ballistic Warp Drives in phase 5, and its phases unlock tiers. Dyson Sphere Program builds its sphere from solar sails fired by EM-Rail Ejectors and frames carried by rockets, and sails expire after 5,400 seconds unless a completed shell absorbs them. shapez 2 operator goal lines grow exponentially in cost per level. Factorio's rocket silo is a similar sink for rocket parts. It differs from milestone-unlocks, which tests thresholds without consuming goods, and from goods-consumption, which feeds a population's recurring needs rather than a one-off structure.",
    "design_levers": [
      "number of phases and the quantity curve across them (linear, geometric, exponential)",
      "which goods are required and how deep in the production chain they sit",
      "reward per phase (unlocks, power, cosmetics, an ending)",
      "whether deliveries persist or expire, as Dyson sphere sails do",
      "whether play continues after completion",
      "shared versus individual progress in multiplayer"
    ],
    "dynamics": [
      "Players design factories backward from the project's bill of materials, so it organizes the layout.",
      "Exponential requirements push players to rebuild for throughput rather than add variety, as with shapez 2 operator levels.",
      "Completed phases unlock technology that raises throughput for the next phase, a reinforcing ramp."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "A finale that ends the game abruptly leaves large factories without purpose.",
      "Requirements that only scale quantity turn the endgame into waiting rather than designing.",
      "A phase gated on one bottleneck good stalls the whole project.",
      "A sink too small to matter fails to absorb late-game surplus, so production has no outlet."
    ],
    "family": "progression-goals",
    "feedback": "reinforcing",
    "id": "megaproject-sink",
    "legibility": 4,
    "math_basis": [
      "optimization",
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Megaproject sink",
    "open_questions": [
      "Can megaproject requirements adapt to the player's factory so the finale tests its weak points rather than a fixed list?",
      "Does an endless exponential sink keep factory games engaging longer than a fixed finale, or does it reduce play to scaling?"
    ],
    "player_experience": "A monument to throughput. The player reads the bill of materials, works backward through the factory to supply it, and watches a structure fill phase by phase. It turns an endless sandbox into a campaign with a finish line, or in endless versions a scoreboard of scale.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-satisfactorywiki-2026-space-elevator",
      "src-dspwiki-2026-dyson-sphere",
      "src-shapez2wiki-2026-operator-level"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "A terminal construction absorbs very large quantities of produced goods in staged phases and serves as the long-run goal and output sink of a production game.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "seaman",
      "earliest_year": 1999,
      "incoming": {
        "affected_by": [
          "generative-agents",
          "on-device-language-models"
        ],
        "involved_in": [
          "drama-aware-storyteller",
          "dream-replay-layer",
          "salience-gated-llm-agents"
        ],
        "used_by": [
          "dwarf-fortress",
          "generative-agents-smallville",
          "project-sid",
          "prom-week",
          "rimworld",
          "seaman",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "versu"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 5,
      "technique_count": 2,
      "technique_exposure": 1.312
    },
    "ai_leverage": 4,
    "aliases": [
      "moodlets",
      "thoughts",
      "memory stream"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Owns a per-agent list of memory entries, each with a type, a source (event, object, or other agent), an effect magnitude, a start time, and an expiry or decay. Events append entries; each tick expired entries drop and the active set is summed into mood or opinion, with stacking rules that cap and discount repeats. RimWorld memory thoughts list mood effect, duration, stack limit, and a stack multiplier (mostly 0.75): My son died is -20 for 30 days, Ate lavish meal +12, and some traits nullify specific thoughts. The Sims 3 and The Sims 4 show the same idea as timed moodlets. Generative Agents (2023) stores memory as a natural-language stream retrieved by the sum of normalized recency (decay 0.995 per game hour), language-model-rated importance (1-10), and embedding relevance, and writes reflections when summed importance exceeds 150. Inputs: events with sources. Outputs: mood and opinion contributions, and retrieved context for decisions and dialogue.",
    "design_levers": [
      "magnitude and duration per event type",
      "stack limit and multiplier for repeated events",
      "decay shape (fixed expiry, linear, exponential) and which memories become permanent",
      "trait filters that nullify or amplify memory types",
      "retrieval weights (recency, importance, relevance) when memories drive decisions or dialogue"
    ],
    "dynamics": [
      "One disaster writes negative memories into many agents at once, synchronizing their breakdown risk.",
      "Players schedule offsetting positive events, turning mood into a budget managed against expiry timers.",
      "Memories that name other agents seed opinions and grudges that outlive the event."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Long lists of small thoughts become noise that players stop reading.",
      "Cheap positive thoughts (fine meals, art) are easy to farm and swamp negative events, draining drama.",
      "Short durations make tragedies trivial; long ones create unavoidable spirals after a single disaster.",
      "Natural-language memory streams grow without bound, raising retrieval cost and surfacing irrelevant memories."
    ],
    "family": "agents-behavior",
    "feedback": "balancing",
    "id": "memories-thoughts",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "probability-statistics"
    ],
    "maturity": "established",
    "name": "Memories and thoughts",
    "open_questions": [
      "How should natural-language memory streams be compressed so retrieval stays relevant across years of game time?",
      "Which memories should be promoted from temporary modifiers to lasting personality change, and can that rule be learned?"
    ],
    "player_experience": "The player can read why an agent feels the way it does, line by line, and plans around expiry: a funeral penalty will pass in days, and a lavish meal can offset it now. Itemized memories turn hidden state into stories players retell.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-rimworldwiki-2026-thoughts",
      "src-park-2023-generative-agents",
      "src-simswiki-2026-motive"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "Events create itemized, time-limited mood modifiers or lasting memories that shape later behavior.",
    "synergy": [
      {
        "id": "mood-breakdown",
        "note": "Itemized, expiring thoughts give mood a history the player can read and story-tell around (RimWorld)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "elite",
      "earliest_year": 1984,
      "incoming": {
        "affected_by": [
          "automated-playtesting"
        ],
        "involved_in": [
          "generated-recipe-graphs",
          "qd-scenario-libraries"
        ],
        "used_by": [
          "animal-crossing-new-horizons",
          "anno-1800",
          "cities-skylines",
          "cities-skylines-2",
          "elite",
          "equilinox",
          "fallout-shelter",
          "foundation",
          "game-dev-story",
          "game-dev-tycoon",
          "islanders",
          "jurassic-world-evolution",
          "nintendogs",
          "pc-building-simulator",
          "pocket-city",
          "reigns",
          "schedule-i",
          "simtower",
          "snowrunner",
          "spore",
          "tomodachi-life",
          "two-point-hospital",
          "valheim",
          "viva-pinata"
        ]
      },
      "prevalence": 24,
      "prevalence_rank": 16,
      "prevalence_share": 0.136,
      "subgenre_spread": 12,
      "technique_count": 1,
      "technique_exposure": 0.3
    },
    "ai_leverage": 2,
    "aliases": [
      "milestones",
      "population tiers",
      "progression thresholds"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "A milestone is a predicate over aggregate state (population at least 1,000, output of an item, cumulative revenue, a tier of residents) paired with a set of unlocks. State owned: the ordered list of milestones and which are reached. Update rule: periodically test the next milestones; on success, permanently unlock their content and notify the player. Unlike research, the player spends nothing directly; progress is a side effect of growth. Canonical forms: Cities: Skylines population milestones that unlock services, zoning types, policies, and map tiles; Anno resident tiers whose population thresholds unlock new buildings. Satisfactory names its HUB unlocks milestones, but they are paid for with item deliveries, which places them closer to a tech tree.",
    "design_levers": [
      "threshold variable: population, output, money, or satisfaction",
      "spacing of thresholds, linear or geometric",
      "which content is gated and in what order",
      "whether milestones can be lost if the variable falls back",
      "option to disable gating for sandbox play"
    ],
    "dynamics": [
      "Players inflate the gated variable artificially, such as dense cheap housing to reach a population tier, then rebuild.",
      "Milestone order shapes city or factory layout, since early buildings lock in space before later ones arrive.",
      "As a tutorial pacing tool it teaches systems in sequence; experienced players disable it."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Gating essential services, such as sewage or healthcare, behind milestones forces players to build broken cities before they can fix them.",
      "Thresholds hit too quickly flood the player with unexplained tools.",
      "Thresholds placed far apart produce long stretches of growing without new decisions."
    ],
    "family": "progression-goals",
    "feedback": "reinforcing",
    "id": "milestone-unlocks",
    "legibility": 5,
    "math_basis": [
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Milestone unlocks",
    "open_questions": [
      "Can milestones be selected adaptively from what the player has not yet engaged with, rather than fixed by the designer?",
      "Does gating by behavior (built a working transit line) teach better than gating by aggregate size?"
    ],
    "player_experience": "Growth is rewarded with options. The player expands toward the next threshold, gets a burst of new tools, and learns systems in the order the designer chose rather than all at once.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "rule-system",
      "aggregate-stocks"
    ],
    "summary": "Reaching thresholds such as population, output, or score unlocks new buildings, areas, or features.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "silent-hunter-3",
      "earliest_year": 2005,
      "incoming": {
        "affected_by": [
          "imperfect-information-solvers",
          "model-based-planning-muzero",
          "monte-carlo-tree-search"
        ],
        "used_by": [
          "arma-3",
          "command-modern-operations",
          "dcs-world",
          "silent-hunter-3"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 3,
      "technique_exposure": 0.938
    },
    "ai_leverage": 3,
    "aliases": [
      "operational wargaming",
      "sensor and weapons simulation"
    ],
    "authoring_cost": 4,
    "compute_cost": 3,
    "definition": "Each unit is an agent with a platform record (speed, endurance, signatures), sensors with detection models against target signatures, weapons with ranges and hit or kill probabilities, and a doctrine or rules-of-engagement profile that governs when it fires and emits. The simulation advances in continuous or stepped time with acceleration; contacts are detected, classified, and engaged under that doctrine, often without per-shot player input. Command: Modern Operations, from Warfare Sims, gives operational control of units on a map of Earth through missions or direct orders, runs scenarios lasting hours to days with time acceleration, and draws platforms and weapons from databases such as DB3000; a Professional Edition adds database editing and Monte Carlo analysis for defense customers. Harpoon is the lineage ancestor. Inputs: orders, missions, doctrine settings. Outputs: detections, engagements, losses, and mission outcomes.",
    "design_levers": [
      "fidelity of sensor and signature models",
      "kill probabilities and countermeasure effects",
      "doctrine, rules-of-engagement, and emission-control settings available to the player",
      "database breadth and accuracy",
      "time acceleration and command granularity (mission versus direct orders)"
    ],
    "dynamics": [
      "Emission control creates cat-and-mouse play, because radiating sensors reveal the radiating unit.",
      "Munitions and fuel limits turn engagements into logistics problems over long scenarios.",
      "Monte Carlo repetition shows outcome distributions, so planning targets probabilities rather than certainties."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "High fidelity buries the player in parameters, and new players cannot tell why an engagement failed.",
      "Database errors or outdated data undermine credibility with expert players.",
      "Automated unit behavior that ignores doctrine settings reads as the simulation disobeying orders."
    ],
    "family": "conflict-defense",
    "feedback": "both",
    "id": "military-operations",
    "legibility": 2,
    "math_basis": [
      "probability-statistics",
      "classical-mechanics",
      "information-theory"
    ],
    "maturity": "established",
    "name": "Military operations",
    "open_questions": [
      "Can reinforcement-learning opponents trained in operational simulators provide credible adversaries without scripted behavior?",
      "Can language interfaces let players issue operational orders at the level of commander's intent?"
    ],
    "player_experience": "The player is a commander, not a pilot. They plan patrols, set emission and engagement rules, manage fuel and munitions, and watch detections develop, so most decisions concern information and timing. Success comes from planning; failure arrives as a missile on the screen that should have been detected earlier.",
    "player_interface": [
      "orders",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-command-modern-operations"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "continuous-physics",
      "stochastic-events"
    ],
    "summary": "Units with modeled sensors, weapons, platforms, and doctrine conduct operations at operational fidelity, mostly under player orders and automated behavior.",
    "synergy": [
      {
        "id": "supply-lines",
        "note": "Operations stall when supply is cut."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "x-plane",
      "earliest_year": 1995,
      "incoming": {
        "involved_in": [
          "event-sourced-sim-runtime",
          "language-modding",
          "mechanic-discovery-search"
        ],
        "used_by": [
          "arma-3",
          "autonauts",
          "beamng-drive",
          "besiege",
          "captain-of-industry",
          "caves-of-qud",
          "cities-skylines",
          "cities-skylines-2",
          "command-modern-operations",
          "creatures",
          "crusader-kings-3",
          "dcs-world",
          "dont-starve",
          "dwarf-fortress",
          "dyson-sphere-program",
          "eco",
          "euro-truck-simulator-2",
          "europa-universalis-4",
          "factorio",
          "farming-simulator-25",
          "game-dev-tycoon",
          "garrys-mod",
          "hearts-of-iron-4",
          "kerbal-space-program",
          "microsoft-flight-simulator-2020",
          "microsoft-flight-simulator-2024",
          "mindustry",
          "minecraft",
          "noita",
          "oxygen-not-included",
          "paralives",
          "plague-inc",
          "prison-architect",
          "project-zomboid",
          "rimworld",
          "satisfactory",
          "schedule-i",
          "screeps",
          "second-life",
          "shapez-2",
          "space-engineers",
          "stardew-valley",
          "stellaris",
          "subnautica",
          "surviving-mars",
          "teardown",
          "the-long-dark",
          "the-powder-toy",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "ultima-online",
          "valheim",
          "victoria-3",
          "x-plane"
        ]
      },
      "prevalence": 55,
      "prevalence_rank": 3,
      "prevalence_share": 0.311,
      "subgenre_spread": 22,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "mod support",
      "scripting API",
      "data-driven modding"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "The game exposes two surfaces: data definitions for entities, recipes, and parameters that the engine loads at startup, and a scripting runtime that registers handlers for game events and calls an API to read and change state. Factorio mods use modified Lua 5.2 and pass through settings, prototype (data), and runtime (control) stages in a fixed lifecycle, with the runtime stage event-driven. RimWorld loads XML definitions and C# assemblies; Crusader Kings III exposes event, trigger, and effect scripting; Minecraft's Java Edition relies largely on third-party loaders. A mod manager resolves load order and dependencies. Inputs: mod files. Outputs: changed content, rules, and UI.",
    "design_levers": [
      "surface breadth: data only, data plus scripting, or full code injection",
      "sandboxing and determinism requirements, such as lockstep multiplayer",
      "API stability and versioning policy",
      "load-order and dependency management",
      "distribution channel and discovery, such as an official mod portal or Steam Workshop"
    ],
    "dynamics": [
      "Popular mods become de facto features, and developers later absorb them into the base game.",
      "Moddable games keep long active communities and sales tails.",
      "Mods expose and fix balance problems faster than official patches."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Game updates break mods, and players delay updating or abandon saves.",
      "Large mod lists conflict and degrade performance in ways that are hard to diagnose.",
      "Unsandboxed code mods carry security risk to players' machines."
    ],
    "family": "multiplayer-persistence",
    "feedback": "reinforcing",
    "id": "modding-api",
    "legibility": 3,
    "math_basis": [
      "computation-theory"
    ],
    "maturity": "classic",
    "name": "Modding API",
    "open_questions": [
      "Can coding models let non-programmers write working mods from natural-language descriptions against a documented API?",
      "What API design keeps generated mods sandboxed, deterministic, and compatible across updates?"
    ],
    "player_experience": "Players reshape the game to their taste, from small fixes to total conversions, and the game keeps renewing years after release. Modders gain a creative outlet and an audience, and non-modders browse mod lists to assemble their own version of the game.",
    "player_interface": [
      "programming"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7",
      "reviewed": [
        "2026-10-25-contributor-readiness"
      ]
    },
    "sources": [
      "src-wube-2026-factorio-lua-api"
    ],
    "status": "sourced",
    "substrate": [
      "player-authored-logic",
      "rule-system"
    ],
    "summary": "Hooks for scripts and data definitions, official or through a de facto loader most modders use, let players change and extend the simulation's content and rules.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 17,
      "earliest_game": "the-incredible-machine",
      "earliest_year": 1993,
      "incoming": {
        "affected_by": [
          "differentiable-simulation",
          "massively-parallel-simulation",
          "quality-diversity-search",
          "text-to-3d-assets"
        ],
        "used_by": [
          "anno-117",
          "aurora-4x",
          "autonauts",
          "besiege",
          "dyson-sphere-program",
          "elite-dangerous",
          "eve-online",
          "foundation",
          "garrys-mod",
          "gran-turismo",
          "hearts-of-iron-4",
          "kerbal-space-program",
          "kingdoms-and-castles",
          "noita",
          "opus-magnum",
          "pc-building-simulator",
          "planet-coaster",
          "planet-zoo",
          "poly-bridge",
          "rollercoaster-tycoon",
          "screeps",
          "second-life",
          "space-engineers",
          "spore",
          "stellaris",
          "the-incredible-machine",
          "x-plane"
        ]
      },
      "prevalence": 27,
      "prevalence_rank": 12,
      "prevalence_share": 0.153,
      "subgenre_spread": 15,
      "technique_count": 4,
      "technique_exposure": 1.35
    },
    "ai_leverage": 4,
    "aliases": [
      "part-based construction",
      "vehicle builder",
      "creature editor"
    ],
    "authoring_cost": 3,
    "compute_cost": 3,
    "definition": "A design is a set of parts joined at attachment points. Each part carries stats (mass, thrust, fuel, capacity, power, abilities) and sometimes a collision body. Behavior is computed either by aggregating stats or by simulating the assembled structure. Kerbal Space Program stacks tanks, engines, and decouplers into stages whose delta-v follows from mass ratios and simulates the craft as jointed parts. Besiege simulates blocks, hinges, and powered wheels as rigid bodies. Spore's creature editor grants abilities from attached parts. Armored Core assembles mechs from frame parts under weight and energy limits. Space Engineers builds small and large grids from blocks such as thrusters, reactors, conveyors, and deformable armor. Constraints such as budget, mass, power, or part count bound the design space.",
    "design_levers": [
      "part catalog size and granularity",
      "stat aggregation versus full physical simulation of the assembly",
      "attachment rules: fixed nodes, free attachment, symmetry tools",
      "constraints: cost, mass, energy, part count",
      "test environment and how clearly failure causes are shown"
    ],
    "dynamics": [
      "Players invent contraptions designers did not anticipate, such as flying machines in Besiege, and share them.",
      "When parts are unlocked by progression, the assembly space widens over time and old designs get rebuilt.",
      "Coupled with physics, small design changes produce large behavioral differences, which drives iteration."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Joint strength limits and physics instability in large assemblies make craft wobble or break apart; Kerbal Space Program players call unexplained destruction the Kraken.",
      "Part count drives simulation cost, so ambitious builds slow the game down.",
      "A dominant part combination becomes the only competitive build.",
      "Catalog bloat buries useful parts and overwhelms new players."
    ],
    "family": "space-construction",
    "feedback": "balancing",
    "id": "modular-assembly",
    "legibility": 3,
    "math_basis": [
      "combinatorics",
      "classical-mechanics",
      "optimization"
    ],
    "maturity": "established",
    "name": "Modular assembly",
    "open_questions": [
      "Can reinforcement-learned controllers make arbitrary player-built bodies walk, swim, or fly convincingly at runtime?",
      "Can generated parts with stats derived from their geometry replace hand-authored part catalogs?"
    ],
    "player_experience": "Tinkering and test-to-failure. Players build, watch the contraption flip, explode, or fail to lift off, diagnose why, and rebuild. A working design earns engineering pride, and many get shared.",
    "player_interface": [
      "placement",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-wikipedia-kerbal-space-program",
      "src-wikipedia-besiege",
      "src-wikipedia-space-engineers"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "continuous-physics",
      "player-authored-logic"
    ],
    "summary": "The player builds machines, vehicles, or creatures from parts whose stats and physical arrangement determine how the result behaves.",
    "synergy": [
      {
        "id": "rigid-body-physics",
        "note": "Physics decides whether an assembled machine works, so building becomes experimentation (Besiege)."
      },
      {
        "id": "orbital-mechanics",
        "note": "Rocket design is meaningful because orbits demand specific delta-v budgets (Kerbal Space Program)."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "used_by": [
          "dwarf-fortress",
          "going-medieval",
          "oxygen-not-included",
          "rimworld",
          "space-haven",
          "surviving-mars",
          "the-sims-4",
          "this-war-of-mine"
        ]
      },
      "prevalence": 8,
      "prevalence_rank": 77,
      "prevalence_share": 0.045,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "mental breaks",
      "stress breaks",
      "inspirations"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns a per-agent mood value equal to a baseline plus the sum of active modifiers (needs, memories, environment, traits), usually smoothed toward that target, and a set of thresholds. While mood sits below a threshold a hazard rate rolls for a break whose severity rises with depth; during a break the agent leaves player control. High mood can roll for positive states. RimWorld: base mood 22 to 42 by difficulty; the bar moves toward its target at up to +12 per hour rising and -8 falling; break thresholds are 35%, 20%, and 5% (traits shift the minor one, capped 1-50%), with mean times between breaks of about 4, 0.8, and 0.5 days; above 49% mood, inspirations arrive with a mean interval of 410 - 400 x mood days and grant effects such as x1.8 work speed for 8 days. Dwarf Fortress keeps a hidden stress value, scaled by personality facets, that can end in tantrums or depression. Inputs: needs, memories, traits. Outputs: lost labor, destructive acts, temporary buffs.",
    "design_levers": [
      "baseline per difficulty and weights of each mood input",
      "threshold levels and trait offsets",
      "hazard rate per band and severity table",
      "break catalog (sad wander, binge, tantrum, violence) and whether breaks harm others",
      "chance and size of positive states at high mood"
    ],
    "dynamics": [
      "Breakdown contagion: breaks generate negative memories in witnesses that lower their mood, a reinforcing loop.",
      "Players build mood infrastructure (recreation, beauty, fine meals) as defense, coupling mood to the economy.",
      "Inspirations reward stable groups with bursts of output, so content colonies pull further ahead."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Cascades: one break creates negative memories in witnesses, and the group spirals beyond recovery after a random event, which feels unfair.",
      "Mood that is easy to max removes the system from mid and late game.",
      "Breaks that destroy hours of work feel punitive rather than dramatic.",
      "Opaque mood sources make breaks feel random."
    ],
    "family": "agents-behavior",
    "feedback": "both",
    "id": "mood-breakdown",
    "legibility": 3,
    "math_basis": [
      "markov-stochastic",
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Mood and breakdowns",
    "open_questions": [
      "Can breaks be generated as character-specific behavior by language-model agents instead of drawn from a fixed catalog, and still be legible?",
      "What hazard shape keeps breaks dramatic without producing unrecoverable cascades?"
    ],
    "player_experience": "The player manages risk rather than events: watching mood bars near thresholds, removing stressors, and bracing when a disaster pushes several agents under at once. Breaks are memorable because they are partly random and partly the player's fault.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-rimworldwiki-2026-mental-break",
      "src-rimworldwiki-2026-mood",
      "src-rimworldwiki-2026-inspiration",
      "src-dfwiki-2026-stress"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "stochastic-events",
      "agent-based"
    ],
    "summary": "Mood aggregates needs, memories, and environment, and crossing thresholds triggers mental breaks or inspired performance.",
    "synergy": [
      {
        "id": "needs-decay",
        "note": "Unmet needs feed mood; breakdowns make neglect dramatic instead of a silent efficiency loss."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "little-computer-people",
      "earliest_year": 1985,
      "incoming": {
        "affected_by": [
          "cicero-strategic-dialogue",
          "constrained-decoding",
          "generalist-game-agents",
          "llm-game-master",
          "on-device-language-models",
          "realtime-voice-models"
        ],
        "involved_in": [
          "agent-ambassadors-async",
          "intent-level-orders",
          "local-first-ai-sims",
          "natural-language-legislation",
          "teachable-sim-companion",
          "trainable-creatures-revival"
        ],
        "used_by": [
          "ai-dungeon",
          "creatures",
          "facade",
          "generative-agents-smallville",
          "inzoi",
          "little-computer-people",
          "nintendogs",
          "seaman",
          "suck-up",
          "where-winds-meet",
          "whispers-from-the-star"
        ]
      },
      "prevalence": 11,
      "prevalence_rank": 56,
      "prevalence_share": 0.062,
      "subgenre_spread": 6,
      "technique_count": 6,
      "technique_exposure": 2.175
    },
    "ai_leverage": 5,
    "aliases": [
      "free-text dialogue",
      "conversational characters",
      "voice input"
    ],
    "authoring_cost": 3,
    "compute_cost": 4,
    "definition": "Owns the mapping from a player utterance to a game-meaningful interpretation and the character's reply. A parser or model classifies free text or speech into intents, or produces an open reply, and the result updates character state, relationships, or plot. Facade (2005) maps typed text through about 800 hand-authored template rules (compiled to about 6,800 Jess rules) into 24 discourse act types such as agree, criticize, and flirt, plus a catch-all for non-understanding; the rules are permissive, accepting false positives to avoid non-understanding, and a drama manager sequences story beats from the result. AI Dungeon (2019) passes player text to GPT-2 and from 2020 GPT-3 to continue the story. Seaman (1999) took microphone input, and Suck Up! (2023) has players talk their way into homes of language-model characters. Inputs: text or speech, game state. Outputs: intent or discourse act, state updates, generated dialogue.",
    "design_levers": [
      "interpretation target: a fixed intent set, discourse acts, or open generation",
      "fallback behavior when input is not understood",
      "grounding constraints that tie replies to game state and authored canon",
      "input modality (typed or voice) and response latency",
      "how strongly language outcomes change simulation state versus adding flavor only"
    ],
    "dynamics": [
      "Players develop phrasing strategies (flattery, logic traps, role-play) that work as skill expression.",
      "Language outcomes feed relationship and opinion systems, making conversation a primary social lever.",
      "Players share transcripts, so interactions become community content."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Non-understanding loops: the system misreads input and the player rephrases repeatedly.",
      "Open models drift from canon or game state and promise things the simulation cannot deliver; AI Dungeon was criticized for forgetting earlier content.",
      "Players manipulate characters with meta-instructions, trivializing persuasion goals.",
      "Moderation filters misfire; AI Dungeon's 2021 filter flagged harmless content."
    ],
    "family": "social-relations",
    "feedback": "none",
    "id": "natural-language-interaction",
    "legibility": 2,
    "math_basis": [
      "machine-learning",
      "information-theory"
    ],
    "maturity": "established",
    "name": "Natural-language interaction",
    "open_questions": [
      "How can free-form dialogue be grounded so that what characters say always matches simulation state and what they can do?",
      "What evaluation shows that language input adds agency rather than guesswork compared with dialogue menus?"
    ],
    "player_experience": "The player says what they mean instead of picking from a menu, which raises both agency and anxiety: phrasing becomes a skill and characters can surprise. Misunderstandings and off-topic replies break immersion quickly, so players probe the system's limits.",
    "player_interface": [
      "language"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-mateas-2004-facade-nlu",
      "src-wikipedia-facade",
      "src-wikipedia-ai-dungeon"
    ],
    "status": "sourced",
    "substrate": [
      "learned-model",
      "rule-system"
    ],
    "summary": "The player communicates with characters by free text or voice, and the system interprets intent and responds.",
    "synergy": [
      {
        "id": "relationship-values",
        "note": "Free-text conversation can move relationship state in ways menu choices cannot enumerate."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "simearth",
      "earliest_year": 1990,
      "incoming": {
        "affected_by": [
          "continuous-alife-and-asal",
          "massively-parallel-simulation"
        ],
        "involved_in": [
          "open-ended-evolution-sandbox"
        ],
        "used_by": [
          "simearth",
          "simlife",
          "species-alre"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 2,
      "technique_count": 2,
      "technique_exposure": 0.438
    },
    "ai_leverage": 3,
    "aliases": [
      "evolution",
      "survival of the fittest"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "Owns no trait values itself; it is the rule that ties reproduction and death to how well an individual's traits fit the environment, so populations change without a designer choosing outcomes. Each generation, individuals that find food, avoid predators, and tolerate climate leave more offspring; with heritable variation the trait distribution moves toward fitter values, and when populations split by geography or genetic distance new species can form. Species: ALRE (Early Access 2018) charges energy for movement from skeleton forces and torques, lets creatures eat only within head reach, and defines species by interbreeding within a genetic distance. SimLife (1992) lets players edit genetics and environments and watch evolution. Spore (2008), by contrast, has players design creatures directly and is not natural selection. Inputs: heritable traits, environment, mortality and reproduction. Outputs: changing trait distributions, speciation, extinction.",
    "design_levers": [
      "fitness sources (energy budgets, predation, climate tolerance, mate choice)",
      "generation time relative to play pace",
      "population size, which sets drift versus selection strength",
      "speciation rule (genetic distance, geography)",
      "player interventions such as culling, feeding, catastrophes, and nurseries"
    ],
    "dynamics": [
      "Arms races between predator and prey traits.",
      "Environmental shocks cause extinction and radiation into emptied niches.",
      "Coupled with food webs, species composition and trait distributions shift together."
    ],
    "emergence_potential": 5,
    "failure_modes": [
      "Evolution is too slow to see within a session, so players perceive nothing happening.",
      "Degenerate optima: populations converge on one exploit body plan and diversity collapses.",
      "Fitness hidden behind physics is opaque, so players cannot tell why traits win.",
      "Games that call designed progression evolution set expectations they do not meet; biologists criticized Spore's model."
    ],
    "family": "population-lineage",
    "feedback": "both",
    "id": "natural-selection",
    "legibility": 2,
    "math_basis": [
      "genetics-evolution",
      "population-dynamics"
    ],
    "maturity": "established",
    "name": "Natural selection",
    "open_questions": [
      "Can learned simulators or GPU-accelerated physics make open-ended evolution fast enough to watch in a session?",
      "What visualizations let players see selection pressure acting, not just its outcome?"
    ],
    "player_experience": "The player shifts from designer to gardener: setting conditions and watching which bodies and behaviors win. Results surprise and teach, as in finding why the long-necked line died out after an ice age.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "requires": [
      "trait-inheritance"
    ],
    "sources": [
      "src-revolutionarygames-2016-thrive-vs-species",
      "src-quasar-2014-species-0-7-0",
      "src-steam-2026-species-alre",
      "src-wikipedia-simlife",
      "src-wikipedia-spore"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "stochastic-events"
    ],
    "summary": "Differential survival and reproduction by fitness shifts trait distributions across generations.",
    "synergy": [
      {
        "id": "trait-inheritance",
        "note": "Selection needs heritable variation; inheritance needs selection to produce adaptation."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 17,
      "earliest_game": "little-computer-people",
      "earliest_year": 1985,
      "incoming": {
        "generalizes": [
          "creature-care",
          "survival-meters"
        ],
        "involved_in": [
          "living-workforce-factories",
          "salience-gated-llm-agents"
        ],
        "used_by": [
          "black-and-white",
          "creatures",
          "dwarf-fortress",
          "going-medieval",
          "inzoi",
          "jurassic-world-evolution",
          "little-computer-people",
          "nintendogs",
          "papers-please",
          "paralives",
          "planet-coaster",
          "planet-zoo",
          "princess-maker-2",
          "prison-architect",
          "rimworld",
          "rollercoaster-tycoon",
          "songs-of-syx",
          "space-haven",
          "surviving-mars",
          "tamagotchi",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "theme-hospital",
          "theme-park",
          "this-war-of-mine",
          "timberborn",
          "two-point-hospital",
          "zoo-tycoon"
        ]
      },
      "prevalence": 30,
      "prevalence_rank": 9,
      "prevalence_share": 0.169,
      "subgenre_spread": 9,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "motives",
      "need meters"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each agent holds a vector of bounded need stocks (typically 0-100). Every tick each stock decays at a per-need rate, optionally modified by traits, activity, and environment. Actions or objects restore specific needs by fixed or quality-scaled amounts. Low values feed downstream systems: mood, action selection priority, health, or death.",
    "design_levers": [
      "number of needs and which are lethal versus mood-only",
      "decay rate per need and modifiers by trait, age, or activity",
      "restoration amount and duration per action or object quality",
      "threshold values that trigger warnings, priority overrides, or breakdowns",
      "whether needs are shown as raw meters, icons, or only through behavior"
    ],
    "dynamics": [
      "Synchronized decay creates rush hours at kitchens, beds, and bathrooms.",
      "Needs compete for agent time, so throughput falls as needs rise, coupling productivity to comfort.",
      "Better objects restore more per use, creating an upgrade treadmill."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Too many needs turn play into chore management with no strategic choice.",
      "Uniform decay rates make every agent identical and remove personality.",
      "Fast decay with slow restoration produces unavoidable death spirals early in a run.",
      "Hidden needs read as random misbehavior when agents act on them."
    ],
    "family": "agents-behavior",
    "feedback": "balancing",
    "id": "needs-decay",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "queueing",
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Needs decay",
    "open_questions": [
      "Can needs be inferred from behavior by learned agents rather than declared as fixed meters?",
      "What is the minimal need set that still yields distinct personalities?"
    ],
    "player_experience": "Constant low-grade triage. The player reads meters, anticipates which need will bottom out first, and arranges the environment or schedule so agents can meet needs without supervision. Neglect is visible and personal.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-23-bootstrap",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "agent-based",
      "aggregate-stocks"
    ],
    "summary": "Each agent has needs such as hunger, energy, social, and fun that decay over time and are restored by actions.",
    "synergy": [
      {
        "id": "smart-objects",
        "note": "Objects advertising need restoration turn decaying needs into autonomous, legible daily behavior (The Sims)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "theme-park",
      "earliest_year": 1994,
      "incoming": {
        "affected_by": [
          "cicero-strategic-dialogue",
          "human-behavior-simulation-models",
          "imperfect-information-solvers"
        ],
        "used_by": [
          "football-manager",
          "motorsport-manager",
          "out-of-the-park-baseball",
          "theme-park"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 2,
      "technique_count": 3,
      "technique_exposure": 0.625
    },
    "ai_leverage": 4,
    "aliases": [
      "haggling",
      "contract talks",
      "bargaining",
      "wage negotiation"
    ],
    "authoring_cost": 2,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-theme-park"
        ],
        "text": "Theme Park includes wage and supply negotiations."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns a negotiation session: the terms on the table (wage, fee, price, length, bonuses, clauses), the counterpart's reservation value and preferred terms, a patience or round budget, and the outcome. Each round the player proposes terms; the counterpart accepts if the offer clears its reservation value and otherwise counters toward its preference, and patience falls with each round or with offers far from acceptable. When patience runs out talks end, sometimes with a consequence such as a strike, a lost transfer, or damaged goodwill. Reservation values come from simulation state such as the counterpart's ability, reputation, market rates, alternatives, and relationship with the player. Theme Park (1994) has wage negotiations with staff and supply negotiations, where failure brings strikes or lost shipments; sports management games run contract and transfer talks with players, agents, and clubs. It differs from staff-hiring, which owns the roster and wages once agreed, and from faction-diplomacy, which owns standing relations and treaty acceptance rather than a bounded bargaining session over terms.",
    "design_levers": [
      "spread between the counterpart's reservation value and its opening demand",
      "number of rounds or patience, and what drains it",
      "how much of the counterpart's position is revealed (hints, agent comments, mood)",
      "which terms can be traded against each other (wage, length, bonuses, clauses)",
      "consequence of failure (walkout, strike, lost deal, damaged relationship)",
      "whether rival bidders negotiate at the same time"
    ],
    "dynamics": [
      "Reservation values tied to reputation and form make success raise future wage demands, a balancing loop on dominant teams.",
      "Competing bidders turn talks into auctions that push prices up for scarce talent.",
      "Failed wage talks cascade into service failures when staff strike, as in Theme Park."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Fixed, discoverable acceptance rules let players always find the minimum, turning talks into a ritual.",
      "Refusals with no visible reason feel random and push players to accept the first offer.",
      "Long multi-clause talks repeated for every signing become busywork.",
      "AI counterparts that accept deals clearly bad for themselves break the economy."
    ],
    "family": "economy-finance",
    "feedback": "balancing",
    "id": "negotiation",
    "legibility": 3,
    "math_basis": [
      "game-theory",
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Negotiation",
    "open_questions": [
      "Can language-model counterparts bargain in natural language while their concessions stay consistent with a calibrated reservation value?",
      "How much of the counterpart's position should be revealed so talks reward reading people rather than brute-force probing?"
    ],
    "player_experience": "A small poker game inside the management sim. The player probes how low a star will go, risks a walkout or a strike by pushing too hard, and weighs a deal now against losing the target. Talks put a face on the economy's prices.",
    "player_interface": [
      "choice-cards",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-theme-park"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based"
    ],
    "summary": "The player and an AI party exchange offers and counteroffers over wages, prices, or contract terms against the AI's hidden reservation value until a deal is struck or talks fail.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "the-sims-3",
      "earliest_year": 2009,
      "incoming": {
        "affected_by": [
          "generative-agents",
          "llm-agent-societies"
        ],
        "used_by": [
          "inzoi",
          "the-sims-3",
          "the-sims-4"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 1,
      "technique_count": 2,
      "technique_exposure": 0.812
    },
    "ai_leverage": 4,
    "aliases": [
      "story progression",
      "neighborhood stories",
      "background life simulation",
      "off-screen simulation level of detail"
    ],
    "authoring_cost": 2,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-the-sims-3"
        ],
        "text": "The Sims 3 places households in a seamless open neighborhood, and its Story Progression keeps households the player is not controlling aging, working, and forming relationships."
      }
    ],
    "compute_cost": 2,
    "definition": "Owns a per-period update for agents or households outside the player's active simulation: unplayed households, agents beyond a radius, or regions not loaded. Instead of running needs, action selection, and pathing, each period it rolls life events for every off-screen unit from a table (age up, take or lose a job, move in or out, start or end a relationship, marry, have a child, die) with probabilities set by coarse state such as age, relationships, money, and household size, and writes the results straight into the shared state that the full simulation reads when the unit comes back into view. Many versions also manage population, moving households in when a town is sparse and out when it is crowded. The Sims 3's Story Progression keeps unplayed households aging, working, and forming relationships across its open neighborhood. It differs from lifecycle-aging, which owns life stages and mortality for every agent, and from autonomy-levels, which filters the choices of agents that are fully simulated; here simulation is replaced by event rolls.",
    "design_levers": [
      "which event types may fire off-screen (aging, jobs, moves, romance, births, deaths)",
      "event rates relative to the pace of played households",
      "per-household or per-world opt-outs that protect characters the player cares about",
      "population targets that move households in or out",
      "fidelity of the off-screen model, from pure event tables to simplified versions of the on-screen systems",
      "how off-screen events are reported (notifications, a newspaper, or nothing)"
    ],
    "dynamics": [
      "Neighborhoods drift into new social graphs over generations, giving long saves a history no one played.",
      "Players protect some households and leave others to the dice, producing a two-tier world of directed and generated lives.",
      "Players install community mods that replace The Sims 3's Story Progression with per-household controls, which shows they want the surprises on their own terms."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Off-screen events split families or move away characters the player was invested in, which reads as the game vandalizing the save.",
      "The off-screen and on-screen models disagree, so an agent returns in a state the full simulation would never produce, such as a job its skills cannot support.",
      "Unreported events leave players unsure why the town changed and push them to wikis or mods.",
      "Unbounded population management fills a town with generated strangers and dilutes authored characters."
    ],
    "family": "population-lineage",
    "feedback": "balancing",
    "id": "offscreen-life-progression",
    "legibility": 2,
    "math_basis": [
      "markov-stochastic",
      "population-dynamics"
    ],
    "maturity": "established",
    "name": "Off-screen life progression",
    "open_questions": [
      "Can a language model write coherent off-screen life summaries for unplayed agents that the full simulation can resume without contradictions?",
      "How large a fidelity gap between on-screen and off-screen agents do players notice, and where does it stop mattering?"
    ],
    "player_experience": "The world feels lived in: visiting a neighbor reveals a new spouse, a baby, or a funeral the player never saw. The same rule also takes control away, since favorite characters can marry, move away, or die off-screen, so players either embrace the surprises or switch the feature off for the households they care about.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-the-sims-3"
    ],
    "status": "sourced",
    "substrate": [
      "stochastic-events",
      "agent-based"
    ],
    "summary": "Households or agents outside the player's active simulation advance through life events on a cheap stochastic model, so the world changes between visits.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "europa-universalis-4",
      "earliest_year": 2013,
      "incoming": {
        "involved_in": [
          "negotiating-faction-ai"
        ],
        "used_by": [
          "crusader-kings-3",
          "europa-universalis-4"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "opinion breakdown",
      "modifier stacks"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns, for each observer-target pair, a list of named modifiers, each with a value, a source, and an expiry or decay rate. Opinion is the clamped sum of static modifiers (shared traits, faith, dynasty, attraction) and event modifiers (gifts, insults, broken promises), and the list is shown as a tooltip. Event modifiers decay toward zero or expire; some are permanent. Crusader Kings III: most opinion decays to 0, tyranny decays 0.25 per month, Friend gives +60 and Nemesis -120, Broke Truce -50 for 3 years, faith hostility 0 to -30, Beautiful +30 attraction, and predecessor opinion is the only inheritable kind. RimWorld pawn opinions are built the same way from social thoughts such as insulted (-15 for 20 days) and deep talk (+15). Europa Universalis IV caps nation opinion at +200 and -200 with itemized reasons. Inputs: events, traits, relations. Outputs: one opinion number for AI decisions plus its legible breakdown.",
    "design_levers": [
      "modifier catalog and magnitudes",
      "decay or expiry per modifier and whether repeats diminish",
      "clamp range and thresholds that change AI behavior",
      "balance between static and event modifiers",
      "which modifiers are hidden from the player"
    ],
    "dynamics": [
      "Players time requests around expiry, waiting for a negative modifier to lapse before asking a favor.",
      "Shared static modifiers such as faith and culture create blocs whose opinions move together.",
      "Modifier accounting turns relationships into economic decisions priced in gold or prestige."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Additive stacking lets players farm cheap positives, such as repeated gifts or feasts, to override severe grievances.",
      "Long tooltip lists overwhelm, so players read only the total.",
      "Linear sums ignore context, so a murderer can be liked if enough small bonuses stack.",
      "Hidden modifiers that contradict the visible list break trust in the itemization."
    ],
    "family": "social-relations",
    "feedback": "balancing",
    "id": "opinion-modifiers",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "social-network"
    ],
    "maturity": "established",
    "name": "Opinion modifiers",
    "open_questions": [
      "Can modifiers be generated from free-form events described by a language model while keeping magnitudes balanced and itemized?",
      "Which nonlinear combination rules (per-category caps, context checks) keep opinions plausible without losing legibility?"
    ],
    "player_experience": "The player reads exactly why someone likes or hates them and treats opinion as an account: stacking small positives, waiting out a scandal, or choosing which grudge to pay off. Itemized lists make social systems feel fair and gameable.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-paradoxwikis-2026-ck3-opinion",
      "src-rimworldwiki-2026-social",
      "src-paradoxwikis-2026-eu4-diplomacy"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "aggregate-stocks"
    ],
    "summary": "Opinions are sums of named, decaying modifiers from events and traits, itemized for the player.",
    "synergy": [
      {
        "id": "triggered-event-chains",
        "note": "Events add named modifiers, and modifiers gate later events, chaining stories."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "universe-sandbox",
      "earliest_year": 2008,
      "incoming": {
        "used_by": [
          "kerbal-space-program",
          "universe-sandbox"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "orbital dynamics",
      "astrodynamics",
      "patched conics"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Each body holds a position and velocity under gravity. Under the patched conic approximation, used by Kerbal Space Program, each celestial body has a sphere of influence; inside it only that body's gravity is modeled, so the trajectory is an analytic conic propagated on rails, and segments are joined at sphere boundaries by matching position and velocity. This turns the n-body problem into a chain of two-body problems and cannot represent Lagrange points. Full n-body integration, as in Universe Sandbox or the Principia mod for Kerbal Space Program, integrates every body's gravity numerically. Engine burns change velocity, the rocket equation sets the delta-v budget, and maneuver planners preview the orbit that a planned burn will produce.",
    "design_levers": [
      "patched conics or n-body integration",
      "scale of the system; Kerbal Space Program uses a planet with a 600 km radius",
      "time warp limits and whether thrust is allowed during warp",
      "maneuver planning tools and how much they automate",
      "atmospheric drag and its coupling to orbits"
    ],
    "dynamics": [
      "Transfer windows create timing pressure and missions that run in parallel.",
      "Delta-v couples orbital planning to vehicle design, so mission ambition shapes the rocket.",
      "Gravity assists and aerobraking reward players who learn the system deeply."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Many players never get past the learning cliff without external tutorials.",
      "Patched conics cannot model Lagrange points or halo orbits, which surprises experienced players.",
      "Floating-point precision at solar-system distances causes jitter unless the engine re-centers the origin."
    ],
    "family": "physics-materials",
    "feedback": "none",
    "id": "orbital-mechanics",
    "legibility": 3,
    "math_basis": [
      "classical-mechanics",
      "optimization"
    ],
    "maturity": "established",
    "name": "Orbital mechanics",
    "open_questions": [
      "Can an AI mission planner that explains its burns flatten the learning cliff without removing the planning itself?"
    ],
    "player_experience": "A counterintuitive system that becomes mastery. Players learn that speeding up raises the far side of the orbit, plan burns on maneuver nodes, and earn rendezvous and landings through precise planning.",
    "player_interface": [
      "parameter",
      "embodied-skill"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-wikipedia-patched-conic-approximation",
      "src-wikipedia-kerbal-space-program",
      "src-wikipedia-universe-sandbox"
    ],
    "status": "sourced",
    "substrate": [
      "continuous-physics"
    ],
    "summary": "Bodies move under gravity, and maneuvers spend delta-v to change orbits, intercepts, and transfers.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "utopia",
      "earliest_year": 1982,
      "incoming": {
        "used_by": [
          "captain-of-industry",
          "mini-metro",
          "railroad-tycoon",
          "utopia"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 1,
    "aliases": [
      "monthly tick",
      "accounting period",
      "yearly resolution"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Owns a period length and a set of update functions that run only when the period elapses. Between ticks the simulation runs continuously or not at all; at the tick, accumulated quantities settle: tax income and upkeep are booked, population grows, crops are harvested, research advances, or reports are produced. Hamurabi resolves a whole year per round: harvest, rats, immigration, plague, and starvation; SimCity books taxes and service funding at each year's budget; Paradox grand strategy games apply income and many modifiers on a monthly tick inside a daily simulation. Different systems can run on different periods in the same game. Inputs are activity accumulated during the period; outputs are discrete jumps in stocks and a report.",
    "design_levers": [
      "period length, and whether different systems use different periods",
      "which quantities settle at the tick and which change continuously",
      "what the player sees at the tick: reports, prompts, or a forced pause",
      "whether actions just before the tick can game the settlement"
    ],
    "dynamics": [
      "Batched income creates sawtooth cash curves, so players keep buffers to survive between ticks.",
      "Synchronized ticks across many agents produce simultaneous demand spikes.",
      "Reports at each tick become the main legibility tool for slow variables."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Players time actions around a tick to exploit settlement rules, such as building just after upkeep is charged.",
      "Large batched computations at the tick cause visible stutter in late game.",
      "Long periods delay feedback until players cannot connect a decision to its result."
    ],
    "family": "time-pacing",
    "feedback": "none",
    "id": "periodic-ticks",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "scheduling"
    ],
    "maturity": "classic",
    "name": "Periodic ticks",
    "open_questions": [
      "Can learned surrogates settle long periods in one step so players can skip ahead without simulating every day?"
    ],
    "player_experience": "Bookkeeping beats. The player watches the date approach the next settlement, makes changes just before it, and reads the report afterward to judge the period. Ticks create small moments of anticipation and give a long continuous game recurring checkpoints.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-wikipedia-hamurabi"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Some state changes, such as budgets, harvests, or growth, resolve in batches at fixed intervals like a month or a year rather than continuously.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "oregon-trail",
      "earliest_year": 1971,
      "incoming": {
        "used_by": [
          "caves-of-qud",
          "creatures",
          "dont-starve",
          "fallout-shelter",
          "ftl",
          "going-medieval",
          "kenshi",
          "kerbal-space-program",
          "noita",
          "oregon-trail",
          "project-zomboid",
          "reigns",
          "rimworld",
          "seaman",
          "subnautica",
          "tamagotchi",
          "the-long-dark",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "this-war-of-mine"
        ]
      },
      "prevalence": 21,
      "prevalence_rank": 21,
      "prevalence_share": 0.119,
      "subgenre_spread": 9,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "permanent death",
      "ironman",
      "hardcore mode"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Death is an absorbing state: when an entity's health or survival condition fails, the entity and its accumulated state (skills, gear, relationships) are removed with no reload. Enforcement lives in the save system: Rogue deleted the save file when it was loaded, and modern ironman modes keep a single autosave. Two scopes exist. Avatar permadeath ends the run, as in FTL, which deletes the save when the ship is destroyed or all crew die, and Project Zomboid. Agent permadeath removes a member from a continuing game, as with RimWorld colonists, Dwarf Fortress dwarves, and Fire Emblem units. Softeners include FTL's clone bay, which revives crew with a skill penalty, downed states before death, and meta-progression that survives the run. Inputs: lethal events from combat, injury, or survival systems. Outputs: entity removal, run termination, or succession.",
    "design_levers": [
      "scope: avatar death ends the run versus agent death inside a continuing game",
      "save policy: single autosave, optional ironman toggle, or tolerated save scumming",
      "what persists past death: unlocks, world state, heirs, or nothing",
      "recovery tools such as revival with penalties, downed states, or medical rescue windows",
      "replacement cost and time for lost agents"
    ],
    "dynamics": [
      "Losing a key specialist cascades: a colony without its only doctor loses more colonists to untreated wounds.",
      "Attachment plus loss produces the personal stories players share from colony sims and roguelikes.",
      "Combined with procedural generation, it makes each run a fresh attempt rather than a retry of the same state."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A single high-variance event ends a long run, which reads as unfair rather than consequential.",
      "Players back up and restore save files (save scumming), bypassing the design.",
      "Fear of loss pushes players into slow, repetitive grinding instead of bold play; Richard Bartle's analysis of virtual worlds notes most MMORPGs avoid permadeath for this and retention reasons.",
      "Bugs or connection drops that kill characters become catastrophic."
    ],
    "family": "risk-failure",
    "feedback": "reinforcing",
    "id": "permadeath",
    "legibility": 5,
    "math_basis": [
      "markov-stochastic",
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Permadeath",
    "open_questions": [
      "Does making lost agents persist as memories, ghosts, or chronicle entries change how much risk players accept?",
      "What variance profile of lethal events keeps permadeath consequential without making long runs feel like lotteries?"
    ],
    "player_experience": "Every risky decision carries weight because losses cannot be reversed. Players grow attached to named survivors, play more cautiously, and remember specific deaths as the turning points of a run. A loss late in a long run is the most memorable and the most frustrating moment the mechanic produces.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-permadeath",
      "src-wikipedia-ftl"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "Death of agents or the avatar is permanent, and the save system prevents undoing it.",
    "synergy": [
      {
        "id": "procedural-characters",
        "note": "Unique generated characters make permanent loss felt."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "ultima-online",
      "earliest_year": 1997,
      "incoming": {
        "affected_by": [
          "llm-agent-societies"
        ],
        "involved_in": [
          "ai-liquidity-in-player-markets",
          "event-sourced-sim-runtime",
          "llm-society-terrarium"
        ],
        "required_by": [
          "seasonal-world-reset"
        ],
        "used_by": [
          "a-tale-in-the-desert",
          "elite-dangerous",
          "eve-online",
          "minecraft",
          "screeps",
          "second-life",
          "ultima-online"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 4,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "MMO world",
      "single-shard world",
      "living world"
    ],
    "authoring_cost": 3,
    "compute_cost": 4,
    "definition": "Authoritative world state lives on servers that advance it continuously in real time; clients submit actions and receive updates, and changes such as built structures, market orders, territory, and destroyed assets persist for everyone. Design choices are shard topology and what the world does while a player is away. Eve Online runs one universe on the Tranquility server rather than parallel copies, takes it offline daily for maintenance, trains character skills in real time while players are logged out, and slows the server clock in crowded systems (time dilation) so large fights stay simulated; the Bloodbath of B-R5RB ran 21 hours. Ultima Online (1997), A Tale in the Desert, Second Life, and Eco are other persistent worlds. Inputs: concurrent player actions and world rules. Outputs: shared, durable state and history.",
    "design_levers": [
      "shard topology: one universe, many parallel shards, or instanced zones",
      "offline progression: what continues for absent players (skills, production, decay)",
      "persistence scope: which changes are permanent versus reset",
      "server tick rate and overload handling such as time dilation or queues",
      "world resets, seasons, or wipes",
      "rules for asset loss and protection of offline players"
    ],
    "dynamics": [
      "Player-driven economies, wars, and politics emerge because consequences persist and accumulate.",
      "Time-zone coverage becomes a strategic resource for groups that hold territory.",
      "Persistent history makes notable events into community lore and news."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Early arrivals accumulate wealth and territory, and new players find no room to matter.",
      "Load spikes in popular locations degrade simulation for everyone present.",
      "Abandoned structures and items clutter the world without decay rules.",
      "The world dies when concurrency falls below what its systems assume."
    ],
    "family": "multiplayer-persistence",
    "feedback": "reinforcing",
    "id": "persistent-world",
    "legibility": 3,
    "math_basis": [
      "game-theory",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Persistent shared world",
    "open_questions": [
      "Can AI agents that stand in for absent players keep a persistent world active at low concurrency without dominating it?",
      "What offline progression rules keep a persistent world fair to players with little play time?"
    ],
    "player_experience": "Actions matter to strangers, and the world changes while the player sleeps. Players log in to see what happened, plan around other time zones, and take part in events, such as wars or market crashes, that no single player or designer controlled.",
    "player_interface": [
      "direct-manipulation",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-eve-online"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "A server-side world keeps running and keeps its state for many players, whether or not any one player is logged in.",
    "synergy": [
      {
        "id": "player-driven-market",
        "note": "A persistent world lets player markets accumulate history, monopolies, and scams (EVE Online)."
      },
      {
        "id": "player-legislation",
        "note": "Laws only matter where the world persists long enough to need governance (Eco, A Tale in the Desert)."
      }
    ],
    "tension": [
      {
        "id": "variable-speed",
        "note": "A shared persistent world cannot be paused or sped up by one player."
      }
    ],
    "tuning_difficulty": 5,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "little-computer-people",
      "earliest_year": 1985,
      "incoming": {
        "affected_by": [
          "human-behavior-simulation-models"
        ],
        "involved_in": [
          "salience-gated-llm-agents",
          "scientists-not-tech-trees"
        ],
        "used_by": [
          "crusader-kings-3",
          "dwarf-fortress",
          "football-manager",
          "ftl",
          "going-medieval",
          "inzoi",
          "little-computer-people",
          "motorsport-manager",
          "oxygen-not-included",
          "paralives",
          "project-zomboid",
          "prom-week",
          "rimworld",
          "space-haven",
          "stellaris",
          "suck-up",
          "surviving-mars",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "this-war-of-mine",
          "tomodachi-life",
          "two-point-hospital",
          "versu"
        ]
      },
      "prevalence": 25,
      "prevalence_rank": 14,
      "prevalence_share": 0.141,
      "subgenre_spread": 11,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "traits",
      "personality points"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns a small per-agent set of discrete traits or continuous personality dimensions, assigned at generation or during development. Traits hold no dynamics of their own; other systems read them as modifiers: they scale need decay, shift utility scores and break thresholds, nullify or add memories, change opinions of others, and unlock or forbid actions. The Sims (2000) uses points in opposing pairs such as nice/grouchy and active/lazy that scale object advertisements (Feed Fish gives 1-11 Fun by Playful); The Sims 3 lets adults hold up to five traits; RimWorld traits such as Steadfast and Nervous shift the mental break threshold, and Psychopath nullifies several death thoughts. Crusader Kings III characters tend to hold three personality traits gained through childhood events at ages 9, 11, and 13, opposites are excluded, and stress breaks can change them. Inputs: generation or life events. Outputs: differentiated behavior from shared rules.",
    "design_levers": [
      "trait count per agent and exclusivity rules",
      "magnitude of each trait's modifiers and which systems it touches",
      "discrete traits versus continuous dimensions",
      "acquisition: fixed at birth, childhood events, life events, or stress",
      "visibility of traits to the player"
    ],
    "dynamics": [
      "Traits that affect opinion create recurring frictions and friendships between particular pairs.",
      "Players build around trait combinations, so traits become strategy as well as flavor.",
      "Inherited or culturally transmitted traits drift across generations, coupling personality to lineage."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Strictly positive traits make recruitment a search for the same few, flattening variety.",
      "Flavor traits with no mechanical effect feel fake; traits with huge effects dwarf player choices.",
      "Too many traits per agent average out into bland behavior."
    ],
    "family": "agents-behavior",
    "feedback": "none",
    "id": "personality-traits",
    "legibility": 4,
    "math_basis": [
      "utility-decision",
      "combinatorics"
    ],
    "maturity": "classic",
    "name": "Personality traits",
    "open_questions": [
      "Can a natural-language persona replace a trait list while keeping behavior predictable enough for players to plan around?",
      "What is the smallest trait set that still produces distinct, recognizable characters?"
    ],
    "player_experience": "Traits are the shorthand by which players recognize and cast characters. The player reads a trait list, predicts behavior, and assigns roles; contradictory combinations become memorable, and players chase or avoid specific traits when recruiting.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-forbus-2001-programming-objects-sims",
      "src-wikipedia-the-sims-3",
      "src-rimworldwiki-2026-mental-break",
      "src-rimworldwiki-2026-thoughts",
      "src-paradoxwikis-2026-ck3-traits"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "Fixed or slow-changing traits change each agent's needs, preferences, and available actions.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "simearth",
      "earliest_year": 1990,
      "incoming": {
        "affected_by": [
          "ml-weather-models"
        ],
        "involved_in": [
          "learned-weather-layer"
        ],
        "used_by": [
          "aurora-4x",
          "eco",
          "simearth",
          "surviving-mars",
          "universe-sandbox"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 5,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "global climate",
      "gaia model",
      "global warming"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns a small set of planet-scale stocks such as atmospheric gas fractions, greenhouse level, mean temperature, ice cover, sea level, and biomass, sometimes resolved on a coarse map grid. Each tick emissions, volcanism, and life change the gases, temperature follows radiative balance and albedo, and temperature moves ice, sea level, and where life can grow. SimEarth, advised by James Lovelock, shows gas levels as percentages, melts ice caps and raises seas under warming, cools the planet with volcanic dust, and offers a Daisyworld mode based on Watson and Lovelock's model, in which daisies of different albedo regulate temperature. Civilization added global warming from unchecked pollution; Surviving Mars: Green Planet terraforms by raising planetary parameters toward habitable targets; Eco lets player emissions raise sea level. Inputs are emissions and player projects; outputs are habitability and disasters.",
    "design_levers": [
      "which planetary stocks exist and how many feedbacks link them (albedo, greenhouse, biosphere)",
      "time constants between emissions and temperature or sea-level response",
      "presence of tipping points or runaway regimes versus smooth response",
      "player levers: emissions policy, terraforming buildings, direct parameter sliders",
      "spatial resolution: single global numbers or a gridded map"
    ],
    "dynamics": [
      "Biosphere-climate feedback can stabilize temperature, as in Daisyworld, or amplify change when it breaks down.",
      "Climate shifts move habitat suitability, crop yields, and coastlines, forcing migration or rebuilding.",
      "Shared emissions in multiplayer worlds such as Eco create commons problems between players."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Many coupled variables with long delays make cause and effect opaque, so players change sliders without learning what moved the planet.",
      "Linear, delay-free responses reduce climate to a single meter to keep below a line.",
      "Runaway feedback with no recovery path ends runs because of early mistakes the player could not see."
    ],
    "family": "environment-ecology",
    "feedback": "both",
    "id": "planetary-climate",
    "legibility": 2,
    "math_basis": [
      "system-dynamics",
      "control-theory"
    ],
    "maturity": "established",
    "name": "Planetary climate",
    "open_questions": [
      "Can learned climate emulators give fast, plausible regional responses to player emissions without hand-tuned equations?",
      "How short can feedback delays be made before climate stops reading as climate?"
    ],
    "player_experience": "Slow consequence at the largest scale. The player makes small persistent changes, such as emissions or terraforming projects, and watches planet-wide numbers creep toward thresholds where oceans boil, ice advances, or the planet becomes habitable. Success feels like stewardship; failure arrives long after its cause.",
    "player_interface": [
      "parameter",
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-wikipedia-simearth",
      "src-watson-1983-daisyworld"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "cellular-grid"
    ],
    "summary": "Planet-scale variables such as atmospheric composition, temperature, sea level, and biosphere evolve under coupled feedbacks and can be deliberately altered.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "eve-online",
      "earliest_year": 2003,
      "incoming": {
        "involved_in": [
          "ai-liquidity-in-player-markets"
        ],
        "used_by": [
          "eco",
          "eve-online",
          "planet-zoo",
          "screeps",
          "second-life"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "order book",
      "regional market",
      "player economy"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Owns per-market order books. Each order has an item, a price, a quantity, a location or range, and an expiry. A new buy order fills against the cheapest compatible sell order and vice versa; any remainder rests in the book. Transaction fees and sales taxes remove currency while NPC bounties and sales add it, so the operator manages faucets and sinks rather than prices. Players make nearly all goods, so prices emerge from their mining, manufacturing, hauling, and speculation. EVE Online (2003) is the canonical form: regional markets where players gather most raw materials and build nearly all ships, price history charts, and large-scale manipulation such as ramping and bear raids; its developer hired an economist in 2007 to monitor the economy. Ultima Online's player vendors and Albion Online's player-crafted gear economy are other forms.",
    "design_levers": [
      "market topology: one global book, regional books, or local station markets with hauling between them",
      "fees, sales tax, and order modification costs as sinks and anti-spam measures",
      "how much NPC supply or demand exists to anchor prices",
      "order range, duration, and how much order-book depth is visible",
      "currency faucets (bounties, NPC sales) relative to sinks"
    ],
    "dynamics": [
      "Trade hubs form where liquidity concentrates, as at EVE's Jita, which concentrates trade further.",
      "Wars destroy goods and raise demand, coupling combat to manufacturing prices.",
      "Speculators anticipate patches and events, so prices move before a change ships."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Faucets that outpace sinks inflate prices and devalue new players' earnings.",
      "Low population leaves thin books where one player sets prices or nothing sells.",
      "Bots and automated relisting dominate when order updates are free and fast.",
      "Manipulation and scams drive away players who did not opt into that kind of play."
    ],
    "family": "economy-finance",
    "feedback": "both",
    "id": "player-driven-market",
    "legibility": 3,
    "math_basis": [
      "mechanism-design",
      "game-theory"
    ],
    "maturity": "established",
    "name": "Player-driven markets",
    "open_questions": [
      "Can LLM or RL trader agents supply liquidity for small servers or single-player worlds without becoming exploitable market makers?",
      "Which sink and faucet controls keep a long-running player market stable without visible developer intervention?"
    ],
    "player_experience": "Being one trader among thousands. The player hunts arbitrage between regions, undercuts by a fraction of a unit, posts low buy orders and waits, and reads price charts like a real trader. Wealth comes from information and patience as much as production.",
    "player_interface": [
      "orders",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-wikipedia-eve-online"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "Players post buy and sell orders in shared order books, and prices emerge from player behavior.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "a-tale-in-the-desert",
      "earliest_year": 2003,
      "incoming": {
        "affected_by": [
          "automated-rule-generation",
          "constrained-decoding",
          "llm-agent-societies"
        ],
        "involved_in": [
          "natural-language-legislation"
        ],
        "used_by": [
          "a-tale-in-the-desert",
          "eco"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 3,
      "technique_exposure": 1.0
    },
    "ai_leverage": 4,
    "aliases": [
      "player government",
      "player-made laws"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns a set of player-authored laws, each a condition and an effect expressed in a structured rule language (for example: when a player fells a tree in district X, charge a tax or block the action), a proposal and voting procedure, and an enforcement hook that checks every relevant action against the active laws. A law passes when its vote meets the threshold set by the world's constitution or government type, after which the simulation enforces it automatically. Eco (early access 2018) lets players form governments and propose and vote on laws that restrict what other players can do or apply taxes and grants to specific actions, to manage an ecosystem that overharvest and pollution can damage. A Tale in the Desert (2003) let players petition and vote on laws that the developers then implemented.",
    "design_levers": [
      "expressiveness of the rule language (which triggers, conditions, and effects are available)",
      "voting thresholds, quorum, and who can propose",
      "constitutional limits on what laws may do",
      "enforcement mode: hard blocks, automatic fines, or reports for players to act on",
      "how government offices are filled and how long laws persist"
    ],
    "dynamics": [
      "Ecological or economic crises create pressure for regulation, and regulation shifts which professions are profitable.",
      "Laws generate evasion strategies and loophole-seeking, which prompts amendments.",
      "Factions form around legislative interests, producing persistent political rivalries."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "A small active group can pass laws that grief or exclude other players.",
      "A rule language too limited to express what players want pushes politics into informal agreements the game cannot enforce.",
      "Low participation makes votes meaningless, and governance becomes the hobby of a few players."
    ],
    "family": "governance-policy",
    "feedback": "both",
    "id": "player-legislation",
    "legibility": 3,
    "math_basis": [
      "mechanism-design",
      "computation-theory",
      "game-theory"
    ],
    "maturity": "established",
    "name": "Player legislation",
    "open_questions": [
      "Can LLMs compile natural-language laws into enforceable rules faithfully enough that players trust the translation?",
      "What constitutional constraints prevent minority capture without making legislation toothless?"
    ],
    "player_experience": "Politics with real teeth. Players argue about what should be allowed, draft rules, lobby for votes, and then live under the result. A logging ban or a carbon tax becomes a social contract that some players obey, some evade, and some campaign to repeal.",
    "player_interface": [
      "programming",
      "choice-cards",
      "language"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-wikipedia-eco-2018"
    ],
    "status": "sourced",
    "substrate": [
      "player-authored-logic",
      "rule-system"
    ],
    "summary": "Players author, propose, and vote on rules that the game then enforces inside a shared world, such as taxes, bans, and permits.",
    "synergy": [
      {
        "id": "player-organizations",
        "note": "Organized player groups are the constituencies that write and enforce laws."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "ultima-online",
      "earliest_year": 1997,
      "incoming": {
        "involved_in": [
          "llm-society-terrarium"
        ],
        "used_by": [
          "a-tale-in-the-desert",
          "elite-dangerous",
          "eve-online",
          "second-life",
          "ultima-online"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "guilds",
      "corporations",
      "clans",
      "alliances"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "An organization entity holds a membership list, a role table that maps roles to permissions (hire, spend, access storage, declare war), shared assets such as a treasury, hangars, or land, and optional revenue rules such as a tax on members' income. Organizations can nest into federations and act as parties to diplomacy and war. In Eve Online, a CEO runs each corporation and assigns roles such as director and accountant, corporations can tax members' earnings, declare war on other corporations for a weekly fee, and join alliances that claim sovereignty over null-sec star systems. Ultima Online guilds, Eco governments, and A Tale in the Desert's guilds are other forms. Inputs: membership and role changes, member income. Outputs: shared pools, permissions, and collective standing.",
    "design_levers": [
      "role and permission granularity",
      "shared asset types and access controls",
      "organization taxes and costs of founding or upkeep",
      "size caps and federation rules",
      "war and diplomacy rules between organizations",
      "protection against theft by members with access"
    ],
    "dynamics": [
      "Specialization inside organizations, with miners, haulers, fighters, and diplomats, creates internal economies.",
      "Coalitions form and split, producing large-scale political history.",
      "Organizations act as onboarding for new players and as a reason veterans stay."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Coarse permissions let a single member empty shared storage; Eve Online has a history of such corporate thefts.",
      "Large blocs coordinate so well that they lock smaller groups out of contested territory.",
      "Leaders who quit leave organizations, and their assets, stranded."
    ],
    "family": "multiplayer-persistence",
    "feedback": "reinforcing",
    "id": "player-organizations",
    "legibility": 4,
    "math_basis": [
      "game-theory",
      "social-network",
      "mechanism-design"
    ],
    "maturity": "classic",
    "name": "Player organizations",
    "open_questions": [
      "Can AI officers or members fill organizational roles in small groups without crowding out human players?",
      "Which permission and asset rules best reduce insider theft while preserving trust-based play?"
    ],
    "player_experience": "Players belong to something larger than their own account. They take on roles such as leader, logistician, or recruiter, coordinate on projects too big for one person, and argue about governance. Betrayal and politics become play.",
    "player_interface": [
      "parameter",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-eve-online"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "rule-system"
    ],
    "summary": "Players form corporations, guilds, or governments with membership, roles, permissions, and shared assets.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 7,
      "earliest_game": "second-life",
      "earliest_year": 2003,
      "incoming": {
        "affected_by": [
          "alphaevolve-algorithm-discovery",
          "voyager-skill-libraries"
        ],
        "involved_in": [
          "language-modding",
          "specification-programming-games",
          "teachable-sim-companion"
        ],
        "required_by": [
          "execution-budget"
        ],
        "used_by": [
          "autonauts",
          "bitburner",
          "mindustry",
          "opus-magnum",
          "screeps",
          "second-life",
          "space-engineers",
          "spacechem",
          "stationeers",
          "the-farmer-was-replaced"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 5,
      "technique_count": 2,
      "technique_exposure": 0.5
    },
    "ai_leverage": 4,
    "aliases": [
      "scripting",
      "coding gameplay",
      "programming puzzles"
    ],
    "authoring_cost": 2,
    "claims": [
      {
        "confidence": "high",
        "sources": [
          "src-screeps-2026-docs-game-loop"
        ],
        "text": "In Screeps each player's main module runs once per tick against a fixed game state, and queued commands are applied together at the end of the tick."
      },
      {
        "confidence": "high",
        "sources": [
          "src-screeps-2026-docs-cpu-limit"
        ],
        "text": "Screeps limits CPU per tick (20 without CPU Unlock), with unused CPU accumulating into a bucket of up to 10,000 that allows bursts up to 500 per tick."
      }
    ],
    "compute_cost": 3,
    "definition": "The player authors programs in a textual or visual language that the game interprets each tick to drive entities. State owned: program source, interpreter state (instruction pointer, registers, memory), and an execution budget. Update rule: each tick, run each program for up to a budget of instructions or CPU time, read sensors through an API, and issue commands that the simulation resolves. Languages range from real ones (JavaScript in Screeps and Bitburner, Python-like code in The Farmer Was Replaced) to assembly-like puzzle languages (TIS-100, Shenzhen I/O, Exapunks) and visual instruction tracks (SpaceChem waldos, Opus Magnum arms). Screeps is canonical for a persistent world: each player's main module runs once per tick against a fixed state, commands are applied together at tick end, and a CPU limit with a carryover bucket constrains computation.",
    "design_levers": [
      "language: real general-purpose, constrained assembly, or visual",
      "execution budget per tick (instructions or CPU milliseconds)",
      "sensor and actuator API surface",
      "debugging tools: stepping, logs, breakpoints, visualization",
      "persistence: programs keep running while the player is offline",
      "scoring of programs by size, speed, or cost"
    ],
    "dynamics": [
      "Automation through code lets players operate at scales no one could control by hand.",
      "In shared worlds, players' programs compete directly, producing an arms race of strategies and exploits.",
      "Code sharing builds communities around libraries and frameworks."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A steep entry cost excludes players who cannot already program.",
      "A real language with a rich API lets players import libraries and copied code, so the community's code replaces the puzzle.",
      "Execution budgets set too tight make debugging feel like fighting the platform.",
      "Weak debugging tools turn failures into opaque guessing."
    ],
    "family": "control-automation",
    "feedback": "reinforcing",
    "id": "player-programming",
    "legibility": 3,
    "math_basis": [
      "computation-theory"
    ],
    "maturity": "established",
    "name": "Player programming",
    "open_questions": [
      "When code assistants can write competent bots from a description, what remains of the programming puzzle, and does play shift to specification and review?",
      "Can games teach programming effectively by letting AI assistants scaffold and then withdraw?"
    ],
    "player_experience": "The player designs behavior rather than performing it. Writing, running, and debugging a program that then works unattended is satisfying in a way direct control is not, and failures are logic errors the player can find and fix.",
    "player_interface": [
      "programming"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-screeps-2026-docs-game-loop",
      "src-screeps-2026-docs-cpu-limit"
    ],
    "status": "sourced",
    "substrate": [
      "player-authored-logic"
    ],
    "summary": "The player writes code in a language the game executes to control units, machines, or the world.",
    "synergy": [
      {
        "id": "signal-circuits",
        "note": "Both express automation as logic; games that offer both span visual and textual programming."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "democracy-4",
      "earliest_year": 2020,
      "incoming": {
        "affected_by": [
          "llm-agent-societies"
        ],
        "used_by": [
          "democracy-4"
        ]
      },
      "prevalence": 1,
      "prevalence_rank": 198,
      "prevalence_share": 0.006,
      "subgenre_spread": 1,
      "technique_count": 1,
      "technique_exposure": 0.25
    },
    "ai_leverage": 4,
    "aliases": [
      "Democracy-style simulation",
      "policy web",
      "effects graph"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns a directed graph whose nodes are policies (with slider levels), simulation values (crime, GDP, pollution), situations, and voter groups, and whose edges are weighted effect equations. Each turn every node's value is recomputed as a function of its weighted inputs, bounded to a fixed range, and effects can be lagged or averaged over several turns; situations switch on and off when their input values cross thresholds. Voter-group happiness at the end of the chain sets approval and election results. Positech's Democracy series (2005-2022) is the canonical form: its designer describes it as a homebrew neural network in which voters, voter groups, policies, ministers, and events are neurons capped to 0..1 or -1..+1, with most logic in editable CSV files. Democracy 4 added fixed-income neurons that can exceed 1 because percentage effects on a 0-1 income scale gave wealthy voters more than poor ones.",
    "design_levers": [
      "graph density: how many effects each policy and value has",
      "effect equation forms (linear, power, threshold) and weights",
      "delays and averaging per edge",
      "value bounds and normalization",
      "situation trigger and clear thresholds with hysteresis",
      "how much of the graph is shown to the player"
    ],
    "dynamics": [
      "Feedback loops between values (unemployment, crime, GDP) produce virtuous or vicious cycles across several turns.",
      "Situations appear and vanish as values cross thresholds, creating emergent crises from slow drifts.",
      "Overlapping voter-group memberships turn every policy into a tradeoff among coalitions."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Percentage effects on bounded values distort distribution, the problem that led Democracy 4 to add fixed-income values.",
      "Dense graphs with small weights make most policies feel inert while a few dominate.",
      "Long delays without visible pending effects make players misattribute causes."
    ],
    "family": "governance-policy",
    "feedback": "both",
    "id": "policy-influence-network",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "machine-learning",
      "social-network"
    ],
    "maturity": "emerging",
    "name": "Policy influence network",
    "open_questions": [
      "Could learned causal models fit to real policy data replace hand-authored effect equations, and would players accept the loss of authored intent?",
      "Can an LLM generate new policies and situations with consistent graph effects from a text description?"
    ],
    "player_experience": "Pulling one thread and watching the web move. The player hovers a policy to see lines to everything it touches, raises a tax and sees the deficit shrink while a voter group sours, and plans reforms in sequence because effects arrive with delays.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "requires": [
      "policy-toggles"
    ],
    "sources": [
      "src-harris-2020-democracy4-fixed-income",
      "src-wikipedia-democracy-4"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "aggregate-stocks"
    ],
    "summary": "Policies, indicators, and voter groups connect through a weighted causal graph with delays.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "civilization",
      "earliest_year": 1991,
      "incoming": {
        "affected_by": [
          "automated-rule-generation",
          "model-based-planning-muzero"
        ],
        "involved_in": [
          "branch-preview-forecasts",
          "explained-delegation",
          "natural-language-legislation"
        ],
        "required_by": [
          "policy-influence-network"
        ],
        "used_by": [
          "captain-of-industry",
          "cities-skylines",
          "civilization",
          "democracy-4",
          "europa-universalis-4",
          "frostpunk",
          "frostpunk-2",
          "hearts-of-iron-4",
          "rebel-inc",
          "simcity-2000",
          "simcity-4",
          "stellaris",
          "suzerain",
          "tropico-6",
          "victoria-3"
        ]
      },
      "prevalence": 15,
      "prevalence_rank": 39,
      "prevalence_share": 0.085,
      "subgenre_spread": 5,
      "technique_count": 2,
      "technique_exposure": 0.6
    },
    "ai_leverage": 3,
    "aliases": [
      "laws",
      "edicts",
      "civics",
      "ordinances"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns a catalog of policies, each with an active flag or a choice among mutually exclusive options in a group, prerequisites, an enactment cost (money, political capital, influence, or time), upkeep, and a cooldown. Enacting a policy applies modifiers or changes rules: it unlocks an action, alters a rate, or changes how agents behave, with a stated benefit and a stated cost. Frostpunk (2018) has a Book of Laws in which similar laws are sequenced so later ones are harsher, and accepting early compromises makes later ones likelier. Victoria 3 groups laws into mutually exclusive sets and, since update 1.3, requires each law to pass three enactment phases whose success chances depend on interest-group support, with up to three setbacks before failure. SimCity 2000 introduced city ordinances, and Civilization civics and Cities: Skylines district policies are other forms.",
    "design_levers": [
      "number of policies and how many can be active at once (slots, groups, budget)",
      "enactment cost, delay, and cooldown",
      "size and visibility of side effects",
      "reversibility: free to revoke, costly, or permanent",
      "prerequisites and sequencing (escalating law chains)"
    ],
    "dynamics": [
      "Escalating law chains pull players toward harsher policies one reasonable step at a time.",
      "Policies that change agent behavior ripple into economic and social systems in ways their tooltips do not state.",
      "Mutually exclusive groups create identity: a society defined by its chosen laws."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Policies with no real downside become always-on, leaving a menu of mandatory picks.",
      "Too many small modifiers make each choice unnoticeable.",
      "Free revocation lets players toggle policies around events, undermining the tradeoff."
    ],
    "family": "governance-policy",
    "feedback": "none",
    "id": "policy-toggles",
    "legibility": 4,
    "math_basis": [
      "optimization",
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Policy toggles",
    "open_questions": [
      "Could players draft bespoke policies in language and have an LLM translate them into balanced, consistent rule changes?",
      "Which explanations of second-order policy effects keep surprises interesting rather than unfair?"
    ],
    "player_experience": "Choosing which tradeoff to live with. The player browses a menu of laws, weighs their benefits against costs and side effects, and commits. In Frostpunk each signature feels like a moral line crossed; in grand strategy, passing a law is a political campaign.",
    "player_interface": [
      "choice-cards",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-wikipedia-frostpunk",
      "src-paradox-2023-vic3-law-enactment",
      "src-wikipedia-simcity-2000"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "Enactable laws or policies change simulation rules with explicit tradeoffs.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "europa-universalis-4",
      "earliest_year": 2013,
      "incoming": {
        "used_by": [
          "captain-of-industry",
          "crusader-kings-3",
          "democracy-4",
          "europa-universalis-4",
          "hearts-of-iron-4",
          "stellaris",
          "victoria-3"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "action currency",
      "monarch points",
      "political power",
      "welfare currency",
      "unity"
    ],
    "authoring_cost": 1,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-democracy-4"
        ],
        "text": "Democracy 4 constrains the player with political capital."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-europa-universalis-4",
          "src-wikipedia-hearts-of-iron-4"
        ],
        "text": "Europa Universalis IV uses administrative, diplomatic, and military monarch power to buy technology, and Hearts of Iron IV uses political power for laws and ministers."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-coiwiki-2026-unity"
        ],
        "text": "In Captain of Industry each fully satisfied settlement need yields about 1-2 Unity per month, spent on edicts, outposts, quick trades, contracts, quick-build, vehicle recovery, emergency repairs, and building boosts."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns one or more non-monetary stocks or capacities, each with a per-period income, an optional cap, and a price list of state actions. Income comes from the skill or loyalty of rulers and ministers, faction support, prestige, or satisfied population needs; spending buys discrete actions such as enacting or repealing a policy, issuing an edict, researching, raising stability, claiming territory, or rushing construction. Unlike a treasury, the stock usually cannot be borrowed or traded and its income comes from political or welfare state rather than economic activity, so it rations institutional change per period. Democracy 4 charges political capital, earned through loyal ministers, to introduce or cancel policies. Europa Universalis IV pays administrative, diplomatic, and military monarch points set by the ruler's skills, which buy technology among other things. Hearts of Iron IV spends political power on laws and ministers. Captain of Industry yields about 1 to 2 Unity per fully satisfied need per month, spent on edicts, outposts, quick builds, and emergency repairs. Policy-toggles owns the policies; this mechanic owns the currency that rations them.",
    "design_levers": [
      "income sources (ruler skill, minister loyalty, faction approval, satisfied needs) and their weights",
      "cap on the stock and whether overflow is lost",
      "one pool versus several (administrative, diplomatic, and military points)",
      "action prices relative to income, and whether prices scale with realm size or development",
      "banked stock versus a capacity that ongoing commitments draw against",
      "whether the currency converts to or from money"
    ],
    "dynamics": [
      "Spending on stability or welfare raises future income, a reinforcing loop for well-run states.",
      "Players time large reforms for when income peaks, such as after a strong heir succeeds or the cabinet is loyal.",
      "Saving for expensive actions creates long-term plans that compete with spending to answer crises."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Hitting the cap with nothing worth buying wastes income and makes the currency invisible.",
      "Several parallel currencies with separate shops become spreadsheet optimization detached from the fiction.",
      "Income tied to leader skill makes one bad succession a long drought with few meaningful choices.",
      "Cheap actions let players toggle policies every period, undoing the rationing."
    ],
    "family": "governance-policy",
    "feedback": "both",
    "id": "political-capital",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "established",
    "name": "Political capital",
    "open_questions": [
      "Could political capital be replaced by negotiated backing from simulated ministers or factions without losing the clarity of a single number?",
      "Does currency earned from welfare, as in Captain of Industry, make players value population needs differently from currency earned from leaders?"
    ],
    "player_experience": "Every turn or month has a political budget. The player decides which reform is worth this period's points, saves up for a large one, and feels the quality of the ruler or cabinet as a faster or slower clock of change. Weak leaders and unhappy populations show up as a shortage of options rather than only as a penalty.",
    "player_interface": [
      "choice-cards",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-wikipedia-democracy-4",
      "src-wikipedia-europa-universalis-4",
      "src-wikipedia-hearts-of-iron-4",
      "src-coiwiki-2026-unity"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "An abstract governing currency accrues each period from leaders, factions, or population welfare and is spent on policy changes, edicts, and other state actions.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "affected_by": [
          "ml-weather-models"
        ],
        "used_by": [
          "captain-of-industry",
          "eco",
          "factorio",
          "simcity-1989",
          "simcity-2013",
          "simcity-4",
          "simearth"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 4,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 2,
    "aliases": [
      "pollution diffusion",
      "contamination"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Owns a pollution value per cell or chunk. Each update, emitters add pollution, a fraction diffuses to neighboring cells, and terrain, vegetation, or water absorb some; other systems read the local value as a penalty to health, land value, crop growth, or happiness. Factorio stores pollution per 32x32-tile chunk, updates every 64 ticks, diffuses 2% to each cardinal neighbor once a chunk holds 15 or more, absorbs it by tile type and trees (trees are damaged above 60), and lets enemy spawners absorb it to fund attack waves. SimCity computes a pollution map from industry and traffic that depresses land value; Cities: Skylines separates ground, noise, and water pollution, and sewage released upstream contaminates water intakes downstream. Inputs are emitter locations and rates; outputs are a spatial field read by other systems.",
    "design_levers": [
      "emission rate per source and modifiers such as efficiency upgrades or filters",
      "diffusion fraction, minimum amount before diffusing, and grid resolution",
      "absorption by terrain, water, and vegetation, and whether absorbers are damaged",
      "what pollution affects: health, land value, crops, happiness, enemy aggression",
      "cleanup tools and their cost"
    ],
    "dynamics": [
      "Zoning separates polluting and sensitive uses, which lengthens commutes and adds traffic.",
      "In Factorio pollution couples production scale to attack size, so efficiency becomes a defense strategy.",
      "Absorbers degrade under load, so a polluted region can tip into faster spread as forests die."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Pollution that only lowers land value is solved once by zoning distance and then ignored.",
      "Fine-grained diffusion with no threshold or chunking costs compute and produces smeared, unreadable fields.",
      "Effects carried by hidden channels, such as water contamination far downstream, read as unexplained sickness."
    ],
    "family": "environment-ecology",
    "feedback": "both",
    "id": "pollution-spread",
    "legibility": 3,
    "math_basis": [
      "cellular-automata",
      "continuum-mechanics"
    ],
    "maturity": "classic",
    "name": "Pollution spread",
    "open_questions": [
      "Can learned dispersion surrogates make air and water pollution fields physically plausible while staying cheap and legible?"
    ],
    "player_experience": "Growth leaves a visible stain. The player separates factories from homes, plants green buffers, and watches the overlay creep outward; in Factorio a bigger factory directly invites bigger attacks. Cleanup competes with expansion for the same resources.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-factoriowiki-2026-pollution",
      "src-hopkins-2008-micropolis"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "aggregate-stocks"
    ],
    "summary": "Pollution emitted by sources accumulates and diffuses across land, water, or air cells and harms health, land value, or growth, or provokes threats.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 8,
      "earliest_game": "simant",
      "earliest_year": 1991,
      "incoming": {
        "used_by": [
          "against-the-storm",
          "anno-117",
          "anno-1800",
          "caesar-3",
          "farthest-frontier",
          "pharaoh",
          "prison-architect",
          "simant",
          "simcity-2013",
          "simcity-4",
          "songs-of-syx",
          "stellaris",
          "victoria-3"
        ]
      },
      "prevalence": 13,
      "prevalence_rank": 45,
      "prevalence_share": 0.073,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "population tiers",
      "social classes",
      "citizen tiers"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns population counts by stratum and the per-stratum tables of needs, consumption rates, labor roles, taxes, and promotion requirements. Each period residences or pops whose stratum's needs are met may advance to the next stratum, and unmet needs can stall, demote, or anger them; production buildings require workers of specific strata. Anno 1800 residences advance from Farmers through Workers, Artisans, and Engineers to Investors (with Jornaleros and Obreros in the New World) when the house is full, basic needs are met, and construction materials exist; luxury needs raise taxes and happiness, and island level follows the highest tier, such as 1,750 Investors for a metropolis. Victoria 3 groups professions into classes and strata whose standard-of-living expectations drive radicalism. Inputs: goods, services, construction materials. Outputs: workforce by tier, tax revenue, demand for higher goods.",
    "design_levers": [
      "number of strata and promotion requirements",
      "per-stratum needs, consumption rates, and tax yields",
      "workforce requirements per building by stratum",
      "demotion or unrest rules when needs fail",
      "whether promotion is player-triggered or automatic"
    ],
    "dynamics": [
      "Each new tier lengthens production chains, so economic complexity grows with population.",
      "Inequality between tiers creates political pressure when strata link to interest groups or unrest.",
      "Promotion and demotion cycles oscillate around supply shortfalls."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Upgrading drains lower-tier workers, collapsing basic production; Anno players learn to keep a surplus of each worker type.",
      "Top-tier demand chains become so long that one missing good stalls the economy.",
      "Strata as pure progression gates feel like a checklist rather than a society."
    ],
    "family": "population-lineage",
    "feedback": "both",
    "id": "population-strata",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "established",
    "name": "Population strata",
    "open_questions": [
      "Can strata emerge from agent wealth and occupation dynamics rather than authored tiers, and remain legible?",
      "How should mobility between strata be modeled so inequality has political consequences without becoming a death spiral?"
    ],
    "player_experience": "Growth is climbing: each tier unlocks goods and buildings but also new demands, so the player keeps lower tiers staffed while serving the elite. Unmet needs at the top cost revenue, and neglect at the bottom stalls production.",
    "player_interface": [
      "observation",
      "placement",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-anno1800wiki-2026-population",
      "src-anno1800wiki-2026-needs",
      "src-paradoxwikis-2026-vic3-pops"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "The population is divided into classes or tiers with distinct needs, roles, and upgrade paths.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "ftl",
      "earliest_year": 2012,
      "incoming": {
        "used_by": [
          "elite-dangerous",
          "ftl"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "power distribution",
      "energy management",
      "power pips",
      "reactor allocation"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns a total budget B (reactor bars, distributor pips) and an allocated level a_i for each subsystem, with sum(a_i) <= B and each a_i capped by the subsystem's installed level. Each subsystem's output is a step or linear function of its allocation: shield layers, weapon charge rate, evasion, oxygen production. The player moves units between subsystems at any time, often while paused, and the effect applies at once or through a charge rate. FTL's reactor supplies bars that the player assigns to shields, engines, weapons, oxygen, and the medbay; each shield layer takes two bars, and the reactor and each system are upgraded separately with scrap. Elite Dangerous splits distributor pips among systems, engines, and weapons capacitors, which sets each capacitor's recharge rate, while a separate priority list decides which modules shut down when the power plant is overloaded. Unlike power-grid, there is no network topology and no automatic shortfall rule: the split itself is the decision. Inputs: budget, subsystem caps, damage to the reactor or subsystems. Outputs: per-subsystem effectiveness.",
    "design_levers": [
      "total budget relative to the sum of subsystem caps, which sets how often the player must choose",
      "cost per subsystem level and step thresholds such as two units per shield layer",
      "reallocation speed: instant, only while paused, or through capacitor recharge rates",
      "how damage reduces the budget or a subsystem's cap, and how repair restores it",
      "which subsystems draw from the budget and which run without it",
      "upgrade path for the budget versus the subsystems"
    ],
    "dynamics": [
      "Opponents target the reactor or a key subsystem to force bad splits, coupling allocation to subsystem damage.",
      "Players shift power in phases of a fight (shields early, weapons once enemy shields drop, engines to escape), giving combat a rhythm.",
      "Upgrade choices become a question of which subsystems the budget can actually feed at once."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A budget large enough to max every subsystem removes the decision; one too small leaves a single viable split.",
      "A dominant split, such as maximum shields at all times, turns allocation into a one-time setup step.",
      "Real-time reallocation without pause rewards input speed over judgment in games that are otherwise tactical.",
      "Hidden thresholds, such as a shield layer needing two units, make partial allocations look like wasted power."
    ],
    "family": "resources-production",
    "feedback": "balancing",
    "id": "power-allocation",
    "legibility": 4,
    "math_basis": [
      "optimization"
    ],
    "maturity": "established",
    "name": "Power allocation",
    "open_questions": [
      "Could an AI crew officer that proposes splits from the tactical situation keep allocation a decision rather than a reflex?",
      "What ratio of budget to total subsystem cap keeps allocation meaningful across a whole campaign of upgrades?"
    ],
    "player_experience": "A running triage under pressure. The player pulls power from oxygen to charge one more weapon, moves it all into engines to escape, or holds shields high while waiting for a volley. Each reallocation is a small bet about what the opponent will do next, and a damaged reactor turns a comfortable budget into a painful choice.",
    "player_interface": [
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "The player splits a fixed power budget among a vehicle's subsystems in real time, trading shields, weapons, engines, and life support against each other.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 7,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "involved_in": [
          "sims-as-agent-benchmarks"
        ],
        "used_by": [
          "captain-of-industry",
          "cities-skylines",
          "cities-skylines-2",
          "dyson-sphere-program",
          "elite-dangerous",
          "factorio",
          "fallout-shelter",
          "jurassic-world-evolution",
          "mindustry",
          "oxygen-not-included",
          "pocket-city",
          "prison-architect",
          "satisfactory",
          "simcity-1989",
          "simcity-2000",
          "simcity-2013",
          "space-engineers",
          "space-haven",
          "stationeers",
          "subnautica",
          "surviving-mars",
          "timberborn"
        ]
      },
      "prevalence": 22,
      "prevalence_rank": 20,
      "prevalence_share": 0.124,
      "subgenre_spread": 7,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "electricity network",
      "power network"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Generators, consumers, and optional storage are joined by poles, wires, or adjacency into connected components. Each tick each component sums generation and demand; if supply covers demand every consumer runs, otherwise a shortfall rule applies: proportional slowdown, priority shedding, or outages in some order. Factorio spreads power evenly so machines slow proportionally (a 300 kW load on 180 kW of solar runs at 60%), dispatches solar first, then steam engines, turbines, and fusion, discharges accumulators only when other sources fall short, and charges every connected machine an idle drain. Micropolis, the released SimCity engine, walks conductive tiles outward from each plant, spends one unit of capacity per tile (700 per coal plant, 2,000 per nuclear plant), and when capacity runs out reports brownouts and leaves the remaining tiles unpowered. Oxygen Not Included gives wires a load capacity and damages overloaded wires. Inputs: generator output (fuel, weather, time of day), consumer demand, topology. Outputs: a satisfaction ratio per component and the operating state of each consumer.",
    "design_levers": [
      "shortfall rule: proportional slowdown, priority tiers, or hard outages",
      "connection model: pole radius, wires with capacity, or adjacency",
      "generator variability by fuel, time of day, and weather, plus storage buffers",
      "idle drain and standby consumption",
      "wire or transformer capacity limits and overload consequences"
    ],
    "dynamics": [
      "Growth outpaces generation in steps, so power becomes a recurring stop-and-fix cadence.",
      "Variable sources such as solar and wind plus storage create daily cycles of surplus and deficit that decide what runs when.",
      "Grid topology sets the blast radius of failures: one broken link can isolate a district.",
      "Circuit or priority controls let players build load shedding, coupling power to automation."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A single global power pool without topology reduces the mechanic to a number to keep positive.",
      "Proportional slowdown can cause a death spiral when brownouts slow the miners and inserters that fuel the generators, a known trap in early Factorio steam power.",
      "Overload damage without clear warnings reads as random breakage."
    ],
    "family": "resources-production",
    "feedback": "both",
    "id": "power-grid",
    "legibility": 4,
    "math_basis": [
      "network-flow",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Power grid",
    "open_questions": [
      "Would learned grid operators that forecast demand and weather turn power from a capacity check into a dispatch problem players manage?",
      "How much electrical realism (voltage, phase, line losses) can players absorb before the grid stops being legible?"
    ],
    "player_experience": "A clear supply-demand puzzle with a visible penalty. Players watch the satisfaction bar, add generation ahead of growth, and learn that a fuel shortage at the plant can slow the very machines that supply its fuel. Night, weather, and storage add a timing layer to an otherwise static capacity problem.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-factoriowiki-2026-electric-system",
      "src-hopkins-2008-micropolis"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "aggregate-stocks"
    ],
    "summary": "Generators produce energy that is distributed over a connected network to consumers; shortfalls cause brownouts or shutdowns.",
    "synergy": [
      {
        "id": "production-chain",
        "note": "Machines draw power, so production throughput becomes coupled to generation capacity."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "townscaper",
      "earliest_year": 2020,
      "incoming": {
        "affected_by": [
          "generated-3d-worlds",
          "neural-cellular-automata",
          "real-time-video-restyling",
          "wave-function-collapse"
        ],
        "involved_in": [
          "learned-build-assist",
          "symbolic-sim-neural-render"
        ],
        "used_by": [
          "tiny-glade",
          "townscaper"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 4,
      "technique_exposure": 1.812
    },
    "ai_leverage": 4,
    "aliases": [
      "mixed-initiative building",
      "smart building",
      "auto-detailing"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "The player supplies coarse intent (add or remove a block, drag a wall or path) and local rules pick the detailed geometry for the affected cells and their neighbors. In Townscaper each click adds or removes a block on an irregular quad grid made by subdividing a hex grid and jittering points; corner modules are chosen with a marching-cubes-style lookup and a real-time wave function collapse that narrows valid modules per cell, then decorations such as windows, chimneys, and bushes are added, and gardens appear only in enclosed areas. Each change ripples through connected cells, so delay grows with structure size, and the solver may fail silently. Tiny Glade (2024) turns drawn walls and paths into detailed castles and gardens. State: a coarse occupancy grid; output: derived geometry, recomputed locally on edit.",
    "design_levers": [
      "input granularity: blocks, strokes, or brushes",
      "size of the module library and number of variants per configuration",
      "constraint priorities, such as which modules win when several fit",
      "determinism: whether the same input always yields the same output",
      "how much manual override the player gets"
    ],
    "dynamics": [
      "Builds spread through screenshots and social media more than through gameplay goals.",
      "Rules produce context-sensitive surprises, such as stairs, arches, or gardens appearing where the player did not place them.",
      "Shipped examples rarely couple the output to a simulation; when they do, agents must interpret generated spaces."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "After hours of play the module library repeats and outputs start to look the same.",
      "Players cannot get the exact shape they want because the rules decide the detail.",
      "Silent solver failures leave odd fragments; Townscaper can leave loose structures where no module fits.",
      "Recalculation delay grows on large builds."
    ],
    "family": "space-construction",
    "feedback": "none",
    "id": "procedural-build-assist",
    "legibility": 4,
    "math_basis": [
      "procedural-noise",
      "combinatorics"
    ],
    "maturity": "emerging",
    "name": "Procedural build assist",
    "open_questions": [
      "Can generative 3D models replace hand-built module libraries while keeping the instant, local response players expect?",
      "Can build-assist output feed a simulation (rooms, pathing, structural load) without the player losing track of what they built?"
    ],
    "player_experience": "Low effort, high expressiveness. A few clicks yield something that looks hand-made, which feels like collaborating with a builder. There is no failure state, so play is calm, exploratory, and screenshot-driven.",
    "player_interface": [
      "placement",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-thompson-2022-how-townscaper-works"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "cellular-grid"
    ],
    "summary": "Coarse player input such as a block or a drawn wall is turned into detailed, organic structures by procedural rules.",
    "tension": [
      {
        "id": "structural-integrity",
        "note": "Assisted organic building favors freedom; strict structural rules punish it."
      }
    ],
    "tuning_difficulty": 1,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "little-computer-people",
      "earliest_year": 1985,
      "incoming": {
        "affected_by": [
          "llm-game-master",
          "realtime-voice-models"
        ],
        "involved_in": [
          "content-elastic-events",
          "generated-inspection-shifts",
          "illustrated-chronicles",
          "local-first-ai-sims"
        ],
        "used_by": [
          "contraband-police",
          "football-manager",
          "little-computer-people",
          "out-of-the-park-baseball",
          "papers-please",
          "rimworld"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 4,
      "technique_count": 2,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "character generation",
      "pawn generation",
      "procedural NPCs"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "A generator samples a character record from tables and rules: name from culture-specific lists or grammars, age, appearance parameters, traits under compatibility constraints, skills, and backstory fragments that modify the other fields. RimWorld gives every pawn a childhood backstory and, if generated at 20 or older, an adulthood backstory; each adds flat skill bonuses, disables or enables work types, and grants or forbids traits, and 25% of regular pawns and all faction leaders first try a fixed player-made bio before falling back to shuffled ones. Dwarf Fortress generates personalities, preferences, and appearance; The Sims and Crusader Kings generate townies and courtiers. Inputs: faction or culture, role requirements, random seed. Outputs: a character record consumed by needs, skills, and social systems.",
    "design_levers": [
      "number of trait, skill, and backstory fragments, and their compatibility constraints",
      "how strongly backstory fragments change mechanics such as skills and disabled work",
      "share of fixed, hand-written or community-written characters versus fully generated ones",
      "name and appearance generators per culture",
      "player rerolls and edits at game start"
    ],
    "dynamics": [
      "Disabled work types and traits force colony role planning around the people who arrive.",
      "Generated quirks seed conflicts once relationships and mood systems act on them.",
      "Community-submitted fixed characters appear across many players' games, creating shared recognizable figures."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Small fragment pools repeat, and players recognize the same backstories across runs.",
      "Incompatible combinations produce incoherent characters, such as a pacifist whose backstory is soldier.",
      "Mechanically weak characters feel like dead weight, which drives heavy rerolling."
    ],
    "family": "world-generation",
    "feedback": "none",
    "id": "procedural-characters",
    "legibility": 4,
    "math_basis": [
      "probability-statistics",
      "procedural-noise",
      "combinatorics"
    ],
    "maturity": "classic",
    "name": "Procedural characters",
    "open_questions": [
      "Can language models generate backstories that stay consistent with the mechanical traits and skills they imply?",
      "How many independent fragments are needed before players stop recognizing repeats?"
    ],
    "player_experience": "Each new arrival is a small unwrapping. Players read the backstory and traits, decide whether to recruit, and form a picture of the person that makes later events personal. Rerolling starting characters is itself a common ritual.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-rimworldwiki-2026-backstories"
    ],
    "status": "sourced",
    "substrate": [
      "stochastic-events",
      "rule-system"
    ],
    "summary": "Characters are generated with names, backstories, traits, skills, and appearance sampled from constrained tables or grammars.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "x-plane",
      "earliest_year": 1995,
      "incoming": {
        "involved_in": [
          "sim-instructor-coach"
        ],
        "used_by": [
          "dcs-world",
          "hardspace-shipbreaker",
          "microsoft-flight-simulator-2020",
          "microsoft-flight-simulator-2024",
          "silent-hunter-3",
          "x-plane"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "cold start",
      "startup procedures",
      "study-sim procedures"
    ],
    "authoring_cost": 4,
    "compute_cost": 2,
    "definition": "Equipment is modeled as interacting subsystems (electrical, fuel, hydraulic, engines, avionics) whose states are changed through individually operable controls. A procedure is an ordered sequence of control actions with preconditions on subsystem state; doing steps out of order produces the physical result of that order, such as a failed engine start, rather than an error message. DCS World models aircraft from real-world data, with clickable cockpit switches and subsystems such as engines, fuel, electrical, hydraulics, and radios, and the U.S. Air Force's 355th Training Squadron uses it as an A-10C instrument and weapons-systems trainer. Microsoft Flight Simulator offers interactive checklists with optional copilot assistance. Inputs: control manipulations. Outputs: subsystem states and operational readiness.",
    "design_levers": [
      "number of modeled subsystems and controls",
      "strictness: whether wrong orders fail realistically or are forgiven",
      "assists such as auto-start, checklist overlays, or copilot automation",
      "manual and tutorial depth",
      "failure injection during procedures"
    ],
    "dynamics": [
      "Communities share checklists, tutorials, and training videos, and some organize realistic group operations.",
      "Injected failures turn memorized procedures into troubleshooting.",
      "Assists create a ladder from casual to study-level play inside one product."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Long procedures before any action exclude newcomers unless an auto-start or assisted mode is offered.",
      "When the underlying systems are not simulated, steps become arbitrary button sequences.",
      "Missing feedback leaves players unable to tell which step went wrong."
    ],
    "family": "operation-procedure",
    "feedback": "none",
    "id": "procedural-checklists",
    "legibility": 3,
    "math_basis": [
      "computation-theory",
      "scheduling"
    ],
    "maturity": "established",
    "name": "Procedural checklists",
    "open_questions": [
      "Can a voice-driven AI instructor or crew member coach procedures adaptively from the live subsystem state?",
      "Can procedure models be extracted from real manuals automatically to cut the cost of new equipment?"
    ],
    "player_experience": "Mastery through ritual. Players study manuals, practice startup sequences until they are reflexive, and feel competence when a complex machine comes alive under their hands. Mistakes teach how the systems connect.",
    "player_interface": [
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-dcs-world"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "Operating simulated equipment requires performing ordered steps on modeled controls that mirror real procedures, with system states gating each step.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "elite",
      "earliest_year": 1984,
      "incoming": {
        "affected_by": [
          "diffusion-game-engines",
          "generated-3d-worlds",
          "genie-world-models",
          "learned-level-generation",
          "neural-cellular-automata",
          "open-ended-environment-generation",
          "open-interactive-video-models",
          "quality-diversity-search",
          "satellite-world-reconstruction",
          "wave-function-collapse"
        ],
        "involved_in": [
          "qd-scenario-libraries"
        ],
        "used_by": [
          "against-the-storm",
          "aurora-4x",
          "caves-of-qud",
          "civilization",
          "dont-starve",
          "dyson-sphere-program",
          "elite",
          "elite-dangerous",
          "factorio",
          "ftl",
          "islanders",
          "kingdoms-and-castles",
          "minecraft",
          "noita",
          "offworld-trading-company",
          "oxygen-not-included",
          "space-haven",
          "spore",
          "stellaris",
          "valheim"
        ]
      },
      "prevalence": 20,
      "prevalence_rank": 23,
      "prevalence_share": 0.113,
      "subgenre_spread": 11,
      "technique_count": 10,
      "technique_exposure": 4.188
    },
    "ai_leverage": 4,
    "aliases": [
      "map generation",
      "worldgen terrain",
      "heightmap generation"
    ],
    "authoring_cost": 2,
    "compute_cost": 3,
    "definition": "A seeded pipeline builds layered fields over a grid or chunks: elevation from fractal noise or midpoint displacement, then derived temperature, rainfall, drainage, and biome classification, then rivers, ores, vegetation, and points of interest placed by rules. Perlin gradient noise (1985) is the basis of most heightmaps; Minecraft samples noise per chunk on demand for an effectively endless world. Dwarf Fortress starts from a randomized fractal elevation map, adds temperature, rainfall, drainage, vegetation, and salinity layers, traces rivers by erosion from mountains to oceans, and models rain shadows. Inputs: seed, size, and parameters such as sea level or mineral frequency. Outputs: terrain, biome, and resource maps used by construction, pathfinding, and ecology systems.",
    "design_levers": [
      "noise type, octaves, frequency, and amplitude",
      "erosion and hydrology passes",
      "climate model for temperature, rainfall, and biome thresholds",
      "resource and point-of-interest placement rules and guaranteed fairness constraints",
      "world size and whether generation is finite or chunked on demand",
      "player-exposed parameters and seed sharing"
    ],
    "dynamics": [
      "Terrain shapes where settlements, roads, and defenses go, so map features drive later strategy.",
      "Communities trade seeds and rank them, turning generation into shared content.",
      "Resource scarcity set at generation time determines the pace of mid-game economies."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Pure noise produces terrain with no recognizable structure that players stop finding interesting after a few runs.",
      "Unconstrained placement yields unfair or unplayable starts, such as no water or no ore near the spawn point.",
      "Version updates that change the generator break seed sharing and older saves at chunk borders."
    ],
    "family": "world-generation",
    "feedback": "none",
    "id": "procedural-terrain",
    "legibility": 4,
    "math_basis": [
      "procedural-noise",
      "cellular-automata"
    ],
    "maturity": "classic",
    "name": "Procedural terrain",
    "open_questions": [
      "Can generative models trained on real elevation data or player-favored maps produce terrain with more recognizable structure than noise?",
      "How should learned generators keep fairness constraints, such as guaranteed resources near spawn, that rule-based pipelines enforce directly?"
    ],
    "player_experience": "Each start is new ground to read: players scout for flat land near water, ore, and defensible chokepoints, and share seeds with unusual landforms. Exploration means something because no guide has mapped this world.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-perlin-1985-image-synthesizer",
      "src-adams-2015-df-simulation-principles",
      "src-wikipedia-dwarf-fortress"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "stochastic-events"
    ],
    "summary": "Maps are generated from a seed through noise, erosion, climate, and placement rules.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "game-dev-story",
      "earliest_year": 1997,
      "incoming": {
        "involved_in": [
          "human-calibrated-customers"
        ],
        "used_by": [
          "big-pharma",
          "game-dev-story",
          "game-dev-tycoon",
          "schedule-i"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "product design",
      "R&D design sliders"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a product in progress: chosen attributes (topic, genre, features, components), an allocation of effort across development areas, quality points accumulated from staff skill and time, and a cost. On release a market evaluator scores the product against hidden or partly revealed ideals (good attribute combinations, the right effort balance), against current trends, and against rivals or the player's own past work, then turns the score into reviews and a sales curve. Game Dev Tycoon (2012) is the canonical form: topic and genre pairs and per-stage effort sliders are rated for fit, and review scores depend on beating the player's earlier releases. Big Pharma (2015) has players build machine lines that refine ingredients and combine their effects into drugs, and Capitalism raises product quality through research projects.",
    "design_levers": [
      "size of the attribute space and how many combinations score well",
      "how much of the scoring rule is revealed through reports or reviews",
      "rising quality bar (relative to past work or rivals) versus fixed standards",
      "trend volatility, so last year's best combination fades",
      "how staff skill, time, and money convert into quality points"
    ],
    "dynamics": [
      "Players converge on a few proven formulas until trends or a rising bar force variation.",
      "Revenue from hits funds better staff and technology, which raises quality and the bar together.",
      "Rival releases in the same category split sales, encouraging release timing."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Once players look up the best combinations on a wiki, the mechanic collapses into executing a table.",
      "Scoring relative to the player's own best punishes experimentation, since a novel but weaker product reviews badly.",
      "Opaque evaluators make poor reviews feel random when the cause is hidden."
    ],
    "family": "economy-finance",
    "feedback": "both",
    "id": "product-development",
    "legibility": 2,
    "math_basis": [
      "optimization",
      "combinatorics",
      "utility-decision"
    ],
    "maturity": "established",
    "name": "Product development",
    "open_questions": [
      "Could generative models let players make an actual product artifact (a game concept, a recipe, a design) that a learned critic scores, replacing slider allocations?",
      "Can a learned market evaluator stay consistent enough that players can still learn its preferences?"
    ],
    "player_experience": "Iterating on recipes for success. The player picks combinations, adjusts sliders, ships, reads reviews, and infers the hidden scoring rules over many releases. Each product is a hypothesis about what the market wants.",
    "player_interface": [
      "parameter",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "rule-system",
      "aggregate-stocks"
    ],
    "summary": "The player configures a product's features, and a simulated market scores it against trends, quality, and competition.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 15,
      "earliest_game": "mule",
      "earliest_year": 1983,
      "incoming": {
        "involved_in": [
          "bottleneck-explainer",
          "generated-recipe-graphs",
          "living-workforce-factories",
          "mechanic-discovery-search",
          "parallel-autobalance",
          "sims-as-agent-benchmarks"
        ],
        "used_by": [
          "a-tale-in-the-desert",
          "against-the-storm",
          "anno-117",
          "anno-1800",
          "autonauts",
          "big-pharma",
          "caesar-3",
          "capitalism",
          "captain-of-industry",
          "dwarf-fortress",
          "dyson-sphere-program",
          "eco",
          "eve-online",
          "factorio",
          "farming-simulator-25",
          "farthest-frontier",
          "foundation",
          "hearts-of-iron-4",
          "kenshi",
          "manor-lords",
          "mindustry",
          "mule",
          "offworld-trading-company",
          "pharaoh",
          "railroad-tycoon",
          "satisfactory",
          "schedule-i",
          "shapez-2",
          "songs-of-syx",
          "space-engineers",
          "space-haven",
          "spacechem",
          "stardew-valley",
          "stationeers",
          "transport-tycoon",
          "tropico-6",
          "victoria-3",
          "workers-and-resources"
        ]
      },
      "prevalence": 38,
      "prevalence_rank": 6,
      "prevalence_share": 0.215,
      "subgenre_spread": 12,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "supply chains",
      "processing chains",
      "recipes"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each producer holds a recipe (input amounts, output amounts, cycle time), an input buffer, an output buffer, and a progress timer. Each tick, if inputs and power or labor are present and the output buffer has room, progress advances; on completion inputs are consumed and outputs added. Chained producers form a directed graph from raw resources to finished goods whose steady-state throughput is set by recipe ratios and the slowest stage. The Settlers (1993) chains wheat through a mill to a bakery; Anno 1800 gives each building a fixed cycle time so players build in ratios; Factorio and Satisfactory expose rates directly and add alternate recipes, modules, and productivity bonuses. GlassBox, the SimCity (2013) engine, expresses production as rules that move or combine resources held in a unit's bins. Inputs: raw goods, labor, energy. Outputs: intermediate and final goods, plus a blocked or starved state per producer.",
    "design_levers": [
      "recipe depth and branching factor of the dependency tree",
      "cycle times and ratios, and whether they are round numbers players can compute",
      "alternate recipes and multi-output recipes that create choices",
      "buffer sizes at inputs and outputs",
      "modifiers such as modules, worker skill, or productivity bonuses",
      "how chains are displayed: hidden, per-building stats, or a full production overview"
    ],
    "dynamics": [
      "The slowest stage sets throughput, so the bottleneck moves each time players fix one, creating a chase loop.",
      "Shared intermediates create contention between chains and force priority decisions.",
      "Coupled with logistics, layout distance becomes part of the recipe cost.",
      "Machines that build machines produce exponential factory growth, capped by inputs, space, or threat."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A single optimal ratio per product, once solved, turns play into copying calculator output.",
      "Deep trees of single-use intermediates add layout work without adding decisions.",
      "Starvation far upstream is hard to diagnose without flow statistics, so players blame the wrong building."
    ],
    "family": "resources-production",
    "feedback": "reinforcing",
    "id": "production-chain",
    "legibility": 3,
    "math_basis": [
      "optimization",
      "network-flow",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Production chains",
    "open_questions": [
      "Can AI generate recipe graphs that are solvable, non-degenerate, and on-theme, cutting content cost for factory games?",
      "Do players learn chain design faster from flow visualizations or from AI explanations of bottlenecks?"
    ],
    "player_experience": "Building machines that build things. The player traces a desired product back through its tree, sizes each stage, and watches for the stage that starves or backs up. Satisfaction comes from a balanced line running unattended; tension comes from every new product adding a branch to an already crowded layout.",
    "player_interface": [
      "placement",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-cifaldi-2012-glassbox-engine"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "network-graph"
    ],
    "summary": "Buildings or machines convert input goods into output goods via fixed recipes and cycle times, forming multi-step dependency trees.",
    "synergy": [
      {
        "id": "storage-capacity",
        "note": "Buffers decouple steps of a chain; their fill levels reveal bottlenecks."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "autonauts",
      "earliest_year": 2019,
      "incoming": {
        "affected_by": [
          "generalist-game-agents",
          "voyager-skill-libraries"
        ],
        "used_by": [
          "autonauts",
          "satisfactory"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 2,
      "technique_exposure": 0.438
    },
    "ai_leverage": 4,
    "aliases": [
      "teach by example",
      "record and replay",
      "macro recording"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a recording session (the agent being taught and the sequence of player actions or positions captured so far) and the resulting routine. While recording, each player action is generalized into a step that names an action and a target class or place rather than one specific object; the agent then replays the routine, often in a loop, and the player may edit it. Autonauts bots watch the player perform a task and record it as blocks in a Scratch-style visual language, which the player wraps in repeat loops and conditions, and the bot's head caps program length. Satisfactory trucks and tractors repeat a route the player records by driving it once, stopping at truck stations. Unlike player-programming, the player does not write code to create the routine; unlike blueprints, which snapshot a spatial layout, a recording captures a sequence over time. Inputs: player actions while recording and later edits. Outputs: an autonomous routine, and its failures when the world no longer matches the recording.",
    "design_levers": [
      "how actions are generalized: exact positions, nearest object of a type, or named areas",
      "whether recordings become editable programs with loops and conditions or stay opaque replays",
      "program length caps and how agent upgrades raise them",
      "recovery behavior when a step fails: skip, wait, or stop",
      "whether one recording can be copied to many agents"
    ],
    "dynamics": [
      "Each taught agent frees player time to teach the next, so automation grows quickly once the first routine works.",
      "Players pick up programming concepts such as loops and conditions by editing what they demonstrated.",
      "Fleets of copied routines amplify any flaw in the original recording."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Over-literal recording replays positions after the world has changed, so routines break silently.",
      "Opaque replays with no editing force players to re-record a whole routine for one small change.",
      "Recorded vehicle routes drift or collide when terrain or traffic differs from the recording run."
    ],
    "family": "control-automation",
    "feedback": "reinforcing",
    "id": "programming-by-demonstration",
    "legibility": 4,
    "math_basis": [
      "computation-theory"
    ],
    "maturity": "emerging",
    "name": "Programming by demonstration",
    "open_questions": [
      "Can learned imitation policies generalize a single demonstration to new layouts while staying predictable and editable?",
      "Does editing a demonstrated routine teach programming better than writing code from a blank page?"
    ],
    "player_experience": "Teaching instead of coding. The player shows a bot how to chop a tree or drives a delivery once, then watches it repeat the job, which makes automation approachable for players who have never programmed. The surprise comes when the routine generalizes the wrong thing, such as returning to a spot where the resource is already gone.",
    "player_interface": [
      "direct-manipulation",
      "programming"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-steam-2026-autonauts",
      "src-scottishgames-2019-autonauts-out-now",
      "src-autonautswiki-2026-bots"
    ],
    "status": "sourced",
    "substrate": [
      "player-authored-logic",
      "agent-based"
    ],
    "summary": "An agent or vehicle learns a routine by recording the player performing it, and the recording becomes a replayable, sometimes editable, program.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "silent-hunter-3",
      "earliest_year": 2005,
      "incoming": {
        "used_by": [
          "arma-3",
          "command-modern-operations",
          "dcs-world",
          "silent-hunter-3"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "external ballistics",
      "bullet drop",
      "penetration modeling",
      "torpedo and shell flight"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Owns, per fired projectile, position, velocity, and type data (mass, drag or ballistic coefficient, guidance if any, and penetration or warhead parameters). Each physics step integrates gravity, drag, and wind (or propulsion and guidance for torpedoes and missiles), tests for intersection with targets or terrain, and on impact resolves penetration against the struck material's thickness and angle, then passes damage to the target. Arma 3 weapons are affected by external ballistics and recoil, so shooters must account for drop and travel time at range; Silent Hunter III torpedoes run at a set speed, depth, and gyro angle toward a computed intercept; DCS World flies missiles, bombs, and gun rounds as projectiles; Command: Modern Operations lists ballistics among its modeled effects. Unlike rigid-body-physics, the projectile is a point mass or simple body integrated at high speed with no contact solver; unlike military-operations, this mechanic owns only the shot's flight and impact, not detection or doctrine.",
    "design_levers": [
      "which forces are integrated: gravity only, drag, wind, Coriolis, or guidance",
      "penetration model: none, thickness and angle tables, or material-based energy loss",
      "projectile speed relative to engagement ranges, which sets how much lead and drop matter",
      "dispersion and weapon accuracy versus player aim",
      "aids that show the solution, such as ranging reticles or automatic firing solutions"
    ],
    "dynamics": [
      "Engagement ranges spread out as skilled players exploit long-range accuracy, changing how teams move across terrain.",
      "Cover becomes material-dependent, so the environment's construction feeds tactics.",
      "Aids such as rangefinders and fire-control computers become valuable equipment, coupling ballistics to loadouts and procedures."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Ballistics fidelity beyond what players can perceive costs compute and data without changing decisions.",
      "Fast projectiles tunnel through thin geometry at low step rates and register no hit.",
      "Penetration tables that disagree with visible armor make hits and non-hits feel arbitrary.",
      "Networked games must reconcile projectile flight across clients, and disagreements show as hits that did not happen."
    ],
    "family": "physics-materials",
    "feedback": "none",
    "id": "projectile-ballistics",
    "legibility": 3,
    "math_basis": [
      "classical-mechanics",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Projectile ballistics",
    "open_questions": [
      "Can learned surrogate models of penetration and fragmentation replace hand-built tables while staying consistent with what players see?",
      "Which aids keep long-range ballistics learnable for new players without removing the skill?"
    ],
    "player_experience": "Hitting a target is a skill or a calculation rather than a cursor placement. The player estimates range, holds over for drop, leads a moving target, or computes a torpedo solution, and a long-range hit feels earned. Misses teach the model; cover that stops some rounds and not others teaches materials.",
    "player_interface": [
      "embodied-skill",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-wikipedia-arma-3",
      "src-wikipedia-silent-hunter-3",
      "src-steam-2019-command-modern-operations"
    ],
    "status": "sourced",
    "substrate": [
      "continuous-physics"
    ],
    "summary": "Shots are simulated as projectiles in flight with velocity, gravity, drag, and penetration, so range, angle, and lead decide hits rather than an instant trace or a dice roll.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "simcity-4",
      "earliest_year": 2003,
      "incoming": {
        "involved_in": [
          "mean-field-crowds"
        ],
        "used_by": [
          "cities-skylines",
          "cities-skylines-2",
          "mini-metro",
          "simcity-4",
          "workers-and-resources"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "transit lines",
      "metro lines",
      "bus lines"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "The player defines lines as ordered stop sequences and assigns vehicles with a capacity. Passengers spawn with origins and destinations and choose a route that may include transfers; vehicles load at stops up to capacity and unload at destinations. Ridership depends on stop catchment, frequency (vehicles per line), transfer penalties, and travel time compared with other modes. Mini Metro spawns passengers as shapes that travel to any station of a matching shape, lets about six wait before a station overcrowds, ends the game when a station stays overcrowded too long, and hands out new rolling stock weekly. Cities: Skylines II citizens weigh transit against driving and walking using travel time, comfort, and money costs. Inputs: lines, vehicles, passenger demand. Outputs: ridership, waiting times, overcrowding, and changes in mode share.",
    "design_levers": [
      "vehicle capacity and count per line",
      "passenger route choice model: matching shapes, shortest time, or utility with transfer penalties",
      "stop capacity and overcrowding consequences",
      "line constraints such as river crossings, line count, or budget",
      "fares, subsidies, and operating costs"
    ],
    "dynamics": [
      "Hub-and-spoke versus grid patterns emerge from transfer penalties.",
      "New lines shift demand rather than add it, moving overcrowding elsewhere.",
      "Coupled with land value and zoning, stations attract density, which raises ridership further."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Passengers taking implausible routes because the route-choice model ignores transfer cost.",
      "Lines that run full or empty without explanation because demand is hidden.",
      "In city builders, transit that cannot reduce traffic because citizens' mode choice is too sticky."
    ],
    "family": "logistics-networks",
    "feedback": "both",
    "id": "public-transit",
    "legibility": 3,
    "math_basis": [
      "network-flow",
      "queueing",
      "graph-search"
    ],
    "maturity": "established",
    "name": "Public transit lines",
    "open_questions": [
      "Can agent route choice that is learned from real transit data be made legible enough for players to design against?",
      "What is the minimal passenger model that still punishes bad transfer design?"
    ],
    "player_experience": "Network design with immediate feedback. Players draw a line, watch riders pile up or flow, and redraw. Good transfer points and frequency matter more than raw coverage, and in Mini Metro the game is about deciding which stations can wait.",
    "player_interface": [
      "placement",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-wikipedia-mini-metro",
      "src-paradox-2023-cs2-traffic-ai"
    ],
    "specializes": "vehicle-route-scheduling",
    "status": "sourced",
    "substrate": [
      "network-graph",
      "agent-based"
    ],
    "summary": "Player-drawn lines with stops and vehicles carry passengers whose ridership depends on coverage, frequency, and transfers.",
    "synergy": [
      {
        "id": "traffic-congestion",
        "note": "Transit is the relief valve for congestion; congestion is what makes transit worth building."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "ultima-online",
      "earliest_year": 1997,
      "incoming": {
        "used_by": [
          "eve-online",
          "ultima-online"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "security status",
      "safe zones",
      "PvP rulesets by region",
      "high-sec and null-sec"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns a security rating or ruleset per zone (star system, region, server facet) and each player's standing, such as security status or criminal flags. When one player attacks another, the zone's rules decide whether the attack is allowed, whether NPC enforcers respond and how fast, and how much standing the attacker loses; standing then limits where the attacker can travel safely. EVE Online rates each system from 1.0 to -1.0, with the CONCORD police destroying unprovoked aggressors in high-security space while low- and null-security space leaves fights to players, and the most profitable activities sit in the less secure zones. Ultima Online split its world in 2000 into Trammel, where player-versus-player combat is consensual, and Felucca, where it is open. Unlike persistent-world, which owns continuity of the shared world, this mechanic owns the spatial rules for aggression inside it.",
    "design_levers": [
      "number of security tiers and how rewards scale with risk across them",
      "enforcement: instant destruction, delayed police response, flags that make the aggressor attackable, or none",
      "standing penalties for aggression and how they recover",
      "whether players can choose a ruleset at entry, as with separate facets",
      "map layout of tiers, including chokepoints between safe and dangerous space"
    ],
    "dynamics": [
      "Gate camps form at chokepoints where safe space meets dangerous space.",
      "Players stage risky ventures from safe hubs, creating hub-and-frontier geography in the economy.",
      "Groups organize escorts, scouts, and intelligence networks to operate in dangerous zones."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Safe zones that cover everything valuable empty the dangerous zones, and the player-versus-player design withers.",
      "Delayed enforcement allows suicide attacks on rich targets in safe space when the loot exceeds the attacker's loss.",
      "Offering a consensual ruleset beside an open one lets most players choose safety, which can leave the open ruleset thinly populated; Ultima Online's Felucca after the Trammel split is the usual example."
    ],
    "family": "multiplayer-persistence",
    "feedback": "balancing",
    "id": "pvp-security-zones",
    "legibility": 4,
    "math_basis": [
      "mechanism-design",
      "game-theory"
    ],
    "maturity": "established",
    "name": "PvP security zones",
    "open_questions": [
      "Could AI enforcers that respond to context, rather than fixed rules, curb exploits such as suicide attacks without blocking legitimate play?",
      "What reward gradient across tiers keeps both safe and dangerous zones populated?"
    ],
    "player_experience": "The player chooses a risk level by choosing where to go. Safe zones let new and cautious players work and trade; dangerous zones promise better rewards and real fights. Crossing a border with valuable cargo is a decision, and an attacker in safe space knows the police are coming.",
    "player_interface": [
      "direct-manipulation",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-wikipedia-ultima-online",
      "src-wikipedia-eve-online"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "network-graph"
    ],
    "summary": "A shared world is divided into zones whose rules set whether players may attack each other and what an aggressor pays, such as NPC police response or lost standing.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "capitalism",
      "earliest_year": 1995,
      "incoming": {
        "used_by": [
          "capitalism",
          "factorio",
          "schedule-i",
          "stardew-valley"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "item quality",
      "quality grades",
      "rarity tiers"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Each produced item carries a discrete grade drawn when it is made. The draw depends on input quality, worker or player skill, tool or module bonuses, and a random roll; the grade then multiplies the item's value, durability, or effect. Factorio: Space Age has five levels (normal, uncommon, rare, epic, legendary) with bonuses from +30% to +150%; a quality module 1 adds a +1% chance of a higher grade, each further step is ten times less likely, and a recycler returning 25% of ingredients lets players reroll. RimWorld grades crafted items from awful to legendary by crafter skill, and Dwarf Fortress grades by skill up to masterful items. Stardew Valley crops come in normal, silver, gold, and iridium quality depending on farming level and fertilizer. Inputs: ingredient grades, skill, modifiers, random draw. Outputs: graded items whose stats scale by tier.",
    "design_levers": [
      "number of tiers and the stat multiplier per tier",
      "base chance and how skill, inputs, or modules raise it",
      "whether rolls can skip tiers and how steeply odds fall per step",
      "reroll or recycling paths and their loss rate",
      "whether low-grade items have a use or are pure waste"
    ],
    "dynamics": [
      "Players build sorting and filtering stages, adding logistics complexity that scales with tier count.",
      "Skill coupling makes specific workers valuable, so losing a master crafter is a real setback.",
      "Higher-grade machines and modules work faster or roll better, so quality compounds once established.",
      "At scale, reroll loops convert a random mechanic into a predictable expected-value pipeline."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Many tiers multiply item variants and storage slots, cluttering logistics.",
      "Reroll loops without enough loss become net-positive generators; Factorio sets recycler returns at 25% and caps productivity at +300% to prevent this.",
      "Low tiers with no use make most production feel wasted."
    ],
    "family": "resources-production",
    "feedback": "reinforcing",
    "id": "quality-tiers",
    "legibility": 3,
    "math_basis": [
      "probability-statistics",
      "markov-stochastic"
    ],
    "maturity": "established",
    "name": "Quality tiers",
    "open_questions": [
      "Could quality be judged by a learned model of an item's form and function, for example a player-designed object, instead of a hidden roll?",
      "What tier count keeps grades meaningful without overwhelming storage and sorting?"
    ],
    "player_experience": "A gamble layered on production. Players chase rare outputs, sort and filter by grade, and decide whether to sell, use, or recycle low rolls. In colony sims a legendary item from a favored crafter is a memorable event; in Factorio quality becomes an expected-value problem of reroll loops.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-wube-2023-fff-375-quality"
    ],
    "status": "sourced",
    "substrate": [
      "stochastic-events",
      "rule-system"
    ],
    "summary": "Produced items carry quality grades derived from inputs, worker skill, or chance, scaling their value or effect.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "caesar-3",
      "earliest_year": 1998,
      "incoming": {
        "used_by": [
          "caesar-3",
          "contraband-police",
          "dwarf-fortress",
          "dyson-sphere-program",
          "factorio",
          "fallout-shelter",
          "farthest-frontier",
          "going-medieval",
          "kenshi",
          "kingdoms-and-castles",
          "manor-lords",
          "mindustry",
          "rimworld",
          "screeps",
          "valheim"
        ]
      },
      "prevalence": 15,
      "prevalence_rank": 39,
      "prevalence_share": 0.085,
      "subgenre_spread": 7,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "base defense",
      "sieges",
      "attack waves"
    ],
    "authoring_cost": 3,
    "compute_cost": 3,
    "definition": "An attack generator spawns hostile groups at map edges, by drop, or by tunneling, sized by a threat budget; attackers path toward targets such as colonists, valuables, or polluting buildings, and resolve combat against walls with hit points, turrets with range and ammunition, traps, and defenders. RimWorld raids arrive by walking, drop pods, sappers who dig through walls, or sieges, sized by raid points; Factorio biters attack polluting structures and evolve stronger forms; Dwarf Fortress has goblin sieges; Mindustry and They Are Billions use scheduled waves. Inputs: threat budget, attacker types, map. Outputs: damage, casualties, loot, and the defensive layout's measured strength.",
    "design_levers": [
      "attack frequency and size, often from adaptive threat scaling",
      "attacker types that bypass static defense, such as sappers, flyers, or drop pods",
      "pathing rules and how attackers choose targets",
      "defense costs, maintenance, and ammunition supply",
      "warning time before arrival",
      "player control of fighters during the fight"
    ],
    "dynamics": [
      "Defense layout constrains the whole settlement plan, pulling walls, chokepoints, and storage together.",
      "Wounded defenders strain medical and food systems after each fight, so raids cascade into other systems.",
      "Arms races appear as attacker variety forces layered defenses."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "A single killbox design defeats every raid, so defense stops being a decision; RimWorld's sapper and breach raids counter this by digging or blasting through walls.",
      "Pathfinding exploits let attackers be lured into infinite loops.",
      "Raids that interrupt every build session feel like chores rather than tests."
    ],
    "family": "conflict-defense",
    "feedback": "both",
    "id": "raid-defense",
    "legibility": 4,
    "math_basis": [
      "graph-search",
      "optimization",
      "probability-statistics"
    ],
    "maturity": "established",
    "name": "Raid defense",
    "open_questions": [
      "Can attacker AI that learns the player's defenses across raids prevent dominant killbox designs without feeling unfair?",
      "What raid frequency keeps defense meaningful in games whose main loop is building?"
    ],
    "player_experience": "Long build phases punctuated by short, tense fights. The player designs killboxes and chokepoints, stocks ammunition and medicine, and learns each attacker type's counter. A breached wall is a crisis that tests the whole colony.",
    "player_interface": [
      "placement",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-rimworldwiki-2026-raid-points"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "Settlements defend against periodic attacks with walls, turrets, traps, and fighters placed and commanded by the player.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "railroad-tycoon",
      "earliest_year": 1990,
      "incoming": {
        "used_by": [
          "factorio",
          "railroad-tycoon",
          "satisfactory",
          "transport-tycoon",
          "workers-and-resources"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "train signals",
      "block signals",
      "path signals"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Signals placed on track divide it into blocks or guard reservable paths. A block signal admits a train only if the next block, meaning all track reachable up to the next signal, is empty. A path signal admits a train once it reserves a route through to the next signal, so trains on non-conflicting paths can share a block. Transport Tycoon (1994) had only bi-directional block signals, and Deluxe added one-way signals. OpenTTD adds pre-signals, where an entry signal opens only if an exit is green, plus path signals, and since version 12 shows only path signals by default. Factorio pairs rail signals with chain signals that mirror the state of the signals ahead. Inputs: signal placement, train positions and routes. Outputs: per-signal open or closed states, train waits, and network throughput.",
    "design_levers": [
      "available signal types: block, one-way, pre-signal, path, or chain",
      "default signal behavior and which types are exposed to new players",
      "train braking distance and the resulting minimum signal spacing",
      "whether trains reroute around blocked paths",
      "visual debugging aids such as block coloring and reservation display"
    ],
    "dynamics": [
      "Junction design becomes a shared craft, and community blueprints of standard intersections spread.",
      "Throughput limits push players toward one-way double track and dedicated stations.",
      "Adding trains raises throughput until signal capacity binds, after which waits and gridlock grow quickly."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Rules learned mainly from community guides, such as Factorio's chain-in, rail-out convention, block new players.",
      "Deadlocks that occur long after a junction is built are hard to trace.",
      "Block signals that are too coarse cut throughput, and pre-signal logic can trigger on exits a train cannot reach."
    ],
    "family": "logistics-networks",
    "feedback": "none",
    "id": "rail-signaling",
    "legibility": 2,
    "math_basis": [
      "scheduling",
      "graph-search"
    ],
    "maturity": "classic",
    "name": "Rail signaling",
    "open_questions": [
      "Can an assistant explain a specific deadlock in plain language from the signal states, removing the wiki dependency?",
      "What minimal signal vocabulary still supports high-throughput designs?"
    ],
    "player_experience": "Traffic engineering on rails. Players learn why trains stop, then redesign junctions, stations, and signal spacing until flow is smooth. Deadlocks, with trains frozen in a loop that blocks itself, are a vivid and instructive failure, and fixing one is a satisfying puzzle.",
    "player_interface": [
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-openttd-2021-path-signals",
      "src-openttd-2026-manual-signals",
      "src-wikipedia-transport-tycoon"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "rule-system"
    ],
    "summary": "Block and path signals partition track so trains can share it without collision; throughput depends on signal design.",
    "synergy": [
      {
        "id": "signal-circuits",
        "note": "Circuit-controlled train stops and signals turn logistics into programmable dispatch."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "hamurabi",
      "earliest_year": 1968,
      "incoming": {
        "affected_by": [
          "ml-weather-models"
        ],
        "used_by": [
          "banished",
          "cities-skylines-2",
          "fallout-shelter",
          "farming-simulator-25",
          "from-dust",
          "hamurabi",
          "jurassic-world-evolution",
          "kingdoms-and-castles",
          "lemonade-stand",
          "mule",
          "oregon-trail",
          "pocket-city",
          "simant",
          "simcity-1989",
          "simcity-2000",
          "simcity-4",
          "simearth",
          "simtower",
          "surviving-mars"
        ]
      },
      "prevalence": 19,
      "prevalence_rank": 26,
      "prevalence_share": 0.107,
      "subgenre_spread": 8,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 2,
    "aliases": [
      "natural disasters",
      "catastrophes"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "A hazard process samples each tick or cycle whether a disaster occurs, picks a type from a weighted table that may be conditioned on state, picks a location, and applies a damage template such as destroying tiles, starting fires, or flooding. In the SimCity engine (Micropolis), doDisasters fires with probability 1/481, 1/241, or 1/61 per cycle depending on difficulty, then chooses among fire, flood, tornado, earthquake, or nothing, and spawns a monster only if average pollution exceeds 60. Cities: Skylines Natural Disasters adds early-warning buildings and shelters; RimWorld adds short circuits, solar flares, and toxic fallout; Banished has tornadoes and fires. Unlike a crisis countdown, timing is unknown in advance. Inputs: difficulty, optional state conditions. Outputs: damage events and secondary hazards passed to fire, flood, or health systems.",
    "design_levers": [
      "base frequency per difficulty level and whether the player can disable or manually trigger disasters",
      "type weights and state conditions, such as monsters tied to pollution or fires tied to dry weather",
      "magnitude distribution and area of effect",
      "warning time and mitigation tools (shelters, firefighters, seawalls, insurance)",
      "secondary effects that hand off to fire spread, flooding, or disease"
    ],
    "dynamics": [
      "Players disperse and duplicate critical services so one hit cannot cripple the system.",
      "Disaster damage reduces income and service coverage, which can cascade into abandonment if reserves are thin.",
      "State-conditioned disasters turn neglected variables, such as pollution, into delayed risks."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Large unmitigable disasters erase hours of building and read as arbitrary rather than as a test of preparation.",
      "Frequent small disasters turn into repetitive cleanup chores.",
      "If disasters are rare and easily disabled, the mechanic adds content that most players never see."
    ],
    "family": "risk-failure",
    "feedback": "none",
    "id": "random-disasters",
    "legibility": 4,
    "math_basis": [
      "markov-stochastic",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Random disasters",
    "open_questions": [
      "Can learned physical simulators make disaster damage depend on how the player actually built, rather than on fixed templates?",
      "What warning lead time makes disasters feel like a test of preparation rather than bad luck?"
    ],
    "player_experience": "Background dread and sudden recovery work. The player builds redundancy, spreads out critical infrastructure, keeps cash in reserve, and then scrambles to rebuild when a disaster hits. Players who want a calm build often disable disasters, which shows how much they change the tone.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-hopkins-2008-micropolis"
    ],
    "status": "sourced",
    "substrate": [
      "stochastic-events",
      "cellular-grid"
    ],
    "summary": "Stochastic disasters such as fires, floods, earthquakes, storms, or meteors strike at random times and places and damage the system.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "used_by": [
          "pocket-city",
          "simcity-1989",
          "simcity-2000",
          "simcity-4"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "RCI meter",
      "demand bars",
      "zone demand"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns three demand valves (residential, commercial, industrial) updated from the balance of population, jobs, and outside trade, and read by zone growth. In Micropolis, the SimCity engine, projected residents = residents + migration (proportional to jobs per resident - 1) + 2% births; projected commerce = total population / 3.7 x a labor ratio capped at 1.3; projected industry = industry x labor ratio x an external market factor (1.2, 1.1, or 0.98 by difficulty). Each valve moves by (projected / actual - 1) x 600 plus a tax offset (+200 at 0% tax, 0 at 7%, -600 at 20% on easy), is clamped to +/-2000 (residential) or +/-1500, and is held at 0 until a needed stadium, seaport, or airport exists. A zone grows when valve + a local score (land value for homes) passes a random test. SimCity's RCI bar and Cities: Skylines' demand bars display these valves.",
    "design_levers": [
      "inputs to each valve (jobs per resident, internal market size, external trade, taxes)",
      "gain and clamp on each valve, which set how fast demand swings",
      "caps that hold demand at zero until a specific building is placed",
      "how much local factors (land value, traffic, pollution) add to the global valve",
      "whether demand is split further by wealth or density tier"
    ],
    "dynamics": [
      "Residential and job growth chase each other, producing alternating waves of house and workplace construction.",
      "Raising taxes depresses all three valves at once, so tax policy shows up as slower development rather than a direct penalty.",
      "Valve caps create milestone moments when one building unlocks a growth spurt."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Players treat the bar as an instruction and zone mechanically, so the city grows without plan or tradeoff.",
      "Hidden caps (needing a stadium or port) freeze growth with no explanation unless an advisor says why.",
      "High gain makes demand oscillate between booms and abandonment."
    ],
    "family": "economy-finance",
    "feedback": "balancing",
    "id": "rci-demand",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "control-theory"
    ],
    "maturity": "classic",
    "name": "RCI demand",
    "open_questions": [
      "Would demand derived bottom-up from simulated households and firms be more interesting than a three-valve controller, and could players still read it?",
      "Can an AI advisor turn valve inputs into a plain causal explanation of why demand is low?"
    ],
    "player_experience": "A steering signal. The player glances at three bars, zones whatever is in demand, and learns that homes need jobs, jobs need workers, and industry needs outside trade. When a bar stays pinned despite growth, the player hunts for the missing stadium, port, or tax cut.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "requires": [
      "zoning"
    ],
    "sources": [
      "src-hopkins-2008-micropolis"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "A demand signal for residential, commercial, and industrial land derived from the balance of jobs, workers, and goods.",
    "synergy": [
      {
        "id": "zoning",
        "note": "The demand meter tells the player which zone to paint next; zoning answers it."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "tamagotchi",
      "earliest_year": 1996,
      "incoming": {
        "used_by": [
          "animal-crossing-new-horizons",
          "bitburner",
          "eve-online",
          "fallout-shelter",
          "nintendogs",
          "seaman",
          "tamagotchi",
          "tomodachi-life"
        ]
      },
      "prevalence": 8,
      "prevalence_rank": 77,
      "prevalence_share": 0.045,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "wall-clock time",
      "persistent real time",
      "offline progress"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns a mapping from the device or server clock to game time plus the last-seen timestamp. On launch or each tick, the real time elapsed since the last update is computed and the simulation catches up: needs decay, crops grow, timers finish, or a capped amount of progress is granted. Calendar dates trigger holidays and seasonal events. Tamagotchi (1996) ages its pet through life stages in real time; Animal Crossing uses the console's internal clock and calendar so time of day, seasons, holidays, and tree growth follow the real date, with music that changes each hour; mobile builders and idle games run construction timers and offline earnings on the device or server clock. Inputs are real elapsed time; outputs are catch-up updates and dated events.",
    "design_levers": [
      "ratio of game time to real time, 1:1 or compressed",
      "catch-up rule for absence: full simulation, capped progress, or frozen",
      "penalties or rewards for absence",
      "calendar-tied events and how often content changes",
      "handling of player clock changes"
    ],
    "dynamics": [
      "Daily check-in habits form, and with streak rewards they produce strong retention.",
      "Offline catch-up must be computed in bulk, pushing designs toward simple closed-form growth.",
      "Real-time waits become a resource that free-to-play games sell speed-ups for."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Players change the device clock to skip waits (Animal Crossing players call it time travel), which breaks event pacing and timer economies.",
      "Harsh absence penalties punish ordinary life events and drive players to quit after a missed week.",
      "Content tied to real dates excludes players in other time zones or hemispheres unless the game adapts it."
    ],
    "family": "time-pacing",
    "feedback": "none",
    "id": "real-time-clock",
    "legibility": 5,
    "math_basis": [
      "scheduling"
    ],
    "maturity": "classic",
    "name": "Real-time clock",
    "open_questions": [
      "Can generated daily content keep a real-time world changing enough that daily visits stay worthwhile for years?"
    ],
    "player_experience": "A world that lives alongside the player's own day. Visiting at different hours shows different scenes, shops open and close, and holidays arrive with the real calendar. The player builds a daily habit, and absence has consequences, from weeds to a sick pet, so returning feels like coming home or like guilt.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-wikipedia-tamagotchi",
      "src-wikipedia-animal-crossing"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "Game time follows the real-world clock and calendar, so the world advances, ages, and holds events while the game is closed.",
    "tension": [
      {
        "id": "variable-speed",
        "note": "Binding time to the wall clock removes player control of pacing."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "aurora-4x",
      "earliest_year": 2004,
      "incoming": {
        "affected_by": [
          "satellite-world-reconstruction"
        ],
        "used_by": [
          "aurora-4x",
          "elite-dangerous",
          "microsoft-flight-simulator-2020",
          "microsoft-flight-simulator-2024"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 1,
      "technique_exposure": 0.562
    },
    "ai_leverage": 4,
    "aliases": [
      "live data",
      "real-world weather",
      "streamed earth",
      "data-driven world"
    ],
    "authoring_cost": 3,
    "compute_cost": 3,
    "definition": "Owns a mapping from external datasets to simulation state, a refresh schedule, a cache, and fallback rules. At world creation or on a schedule it fetches data (imagery, elevation, building footprints, star catalogs, weather observations, aircraft positions), converts it into terrain tiles, objects, weather fields, or agents, blends it with procedural or authored content where data is missing, and falls back to cached or generated state when offline. Microsoft Flight Simulator (2020) streams Bing Maps imagery updated every 28 days and AI-generated 3D content from more than two petabytes in the cloud, and feeds in Meteoblue live weather and live air traffic. Elite Dangerous blends real astronomical catalog systems into its procedural galaxy, and Aurora 4X can build systems from real star data. Unlike procedural-terrain, which generates from a seed, and weather, which owns weather state and its effects, this mechanic owns the import of outside data into the simulation.",
    "design_levers": [
      "which subsystems are fed: terrain, buildings, weather, traffic, catalogs",
      "refresh rate: one-time import, periodic updates, or live streaming",
      "blending rules with procedural or authored content where data is missing or poor",
      "offline fallback and caching",
      "player choice between live data and preset conditions"
    ],
    "dynamics": [
      "Real events such as storms enter play, and players fly into them as they happen.",
      "Communities fix and supplement data with handcrafted add-ons, building an ecosystem around the gaps.",
      "Players use the sim as a reference for real places, raising expectations of accuracy."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Errors in source data appear in the world as artifacts; a widely shared example is a lone skyscraper in Melbourne in Microsoft Flight Simulator (2020), traced to a mistyped building height in OpenStreetMap data.",
      "Dependence on servers makes the game fragile; Microsoft Flight Simulator 2024 launched with server problems that caused long loads and missing content.",
      "Licensing or service changes can remove a data feed after release."
    ],
    "family": "world-generation",
    "feedback": "none",
    "id": "real-world-data-feeds",
    "legibility": 4,
    "math_basis": [
      "probability-statistics",
      "machine-learning"
    ],
    "maturity": "established",
    "name": "Real-world data feeds",
    "open_questions": [
      "Can generative models fill gaps in real-world data, such as inferring 3D buildings from imagery, without introducing visible errors?",
      "Could learned weather models fed by live observations give small studios accurate global weather at low cost?"
    ],
    "player_experience": "Recognition. Players fly over their own house, check the sim against the sky outside, or navigate to a star they can see. Live data makes every session a little different and ties the game to the present day, while gaps and errors in the data are noticed and shared as quickly as its successes.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-wikipedia-microsoft-flight-simulator-2020",
      "src-wikipedia-microsoft-flight-simulator-2024",
      "src-wikipedia-elite-dangerous"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "agent-based"
    ],
    "summary": "Simulation state is initialized or driven at runtime by external real-world data such as map imagery, elevation, star catalogs, live weather, or live traffic instead of authored or procedural content.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "harvest-moon",
      "earliest_year": 1996,
      "incoming": {
        "affected_by": [
          "generative-agents"
        ],
        "involved_in": [
          "drama-aware-storyteller",
          "salience-gated-llm-agents",
          "scientists-not-tech-trees"
        ],
        "required_by": [
          "romance-family",
          "social-exchanges"
        ],
        "used_by": [
          "animal-crossing-new-horizons",
          "crusader-kings-3",
          "dwarf-fortress",
          "facade",
          "football-manager",
          "generative-agents-smallville",
          "harvest-moon",
          "inzoi",
          "paralives",
          "project-sid",
          "prom-week",
          "rimworld",
          "space-haven",
          "stardew-valley",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "tomodachi-life",
          "versu",
          "where-winds-meet"
        ]
      },
      "prevalence": 21,
      "prevalence_rank": 21,
      "prevalence_share": 0.119,
      "subgenre_spread": 8,
      "technique_count": 1,
      "technique_exposure": 0.75
    },
    "ai_leverage": 3,
    "aliases": [
      "affinity",
      "friendship meter",
      "relationship score"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns a weighted, often directed graph over agent pairs holding one or more scalar affinities (friendship, romance, respect) and labels derived by threshold (friend, rival, lover). Interactions add or subtract amounts that depend on the action, personalities, and the current value; many games decay values toward neutral without contact. Agents read the values to decide whom to approach, help, or attack. RimWorld opinion runs -100 to 100 with rival below -20 and friend above 20; chitchat adds about 0.66 up to +10, while insults, up to 6 times likelier at -100 opinion, can start social fights. Prom Week keeps three bidirectional networks: buddy, romance, and cool. The Sims: Hot Date introduced separate short-term and long-term relationship scores. Inputs: interactions, traits, events. Outputs: social choices, cooperation, romance eligibility, conflict.",
    "design_levers": [
      "number of dimensions per pair (single affinity versus friendship, romance, respect)",
      "change per interaction and its dependence on the current value",
      "decay toward neutral and its rate",
      "label thresholds such as friend, rival, and partner",
      "symmetry: directed or mutual values"
    ],
    "dynamics": [
      "Agents with compatible traits cluster into friend groups, producing cliques within a colony or town.",
      "Insults at low opinion push values lower, a reinforcing loop into feuds and fights.",
      "Deaths and breakups spread grief along the graph, coupling relationships to mood."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "One-dimensional affinity conflates liking with respect or attraction, so relationships feel thin.",
      "Positive feedback drives every long-standing pair to best friends or mortal enemies.",
      "Repeating one friendly action maxes a relationship with no story behind it.",
      "Pairwise storage grows with the square of population, so large games restrict it to notable characters."
    ],
    "family": "social-relations",
    "feedback": "reinforcing",
    "id": "relationship-values",
    "legibility": 4,
    "math_basis": [
      "social-network",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Relationship values",
    "open_questions": [
      "Can relationship state be inferred from language-model agent conversations rather than incremented by fixed amounts, and stay stable?",
      "How many relationship dimensions do players track before additional meters stop adding meaning?"
    ],
    "player_experience": "The player watches friendships and feuds form, reads relationship meters, and engineers meetings to repair or create bonds. Relationships make losses personal and give characters reasons to act together.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-rimworldwiki-2026-social",
      "src-mccoy-2014-social-story-worlds",
      "src-wikipedia-the-sims"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "agent-based",
      "aggregate-stocks"
    ],
    "summary": "Pairwise numeric affinity between characters changes with interactions and drives social choices.",
    "synergy": [
      {
        "id": "villager-requests",
        "note": "Completing requests raises friendship, giving the social meter a concrete verb (Animal Crossing, Stardew)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "dont-starve",
      "earliest_year": 2012,
      "incoming": {
        "used_by": [
          "animal-crossing-new-horizons",
          "banished",
          "dont-starve",
          "eco",
          "kingdoms-and-castles",
          "manor-lords"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "resource regeneration",
      "sustainable yield",
      "regrowth"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "A harvestable stock (trees on tiles, fish in a zone, animals in a region, soil fertility) regenerates each tick at a rate that depends on its current level: often logistic growth, sometimes a fixed respawn timer or seed spread to neighboring cells. Harvesting removes stock at the rate set by extraction; if harvest exceeds regrowth the stock falls and, below a threshold, can collapse or stop regenerating. Banished foresters replant cut trees around their lodge; Eco tracks plant and animal populations that players can overharvest; Minecraft saplings regrow trees only where players plant them. Inputs: harvest rate, current stock, environmental modifiers. Outputs: stock level and yield available per tick.",
    "design_levers": [
      "regrowth curve shape (logistic, linear, or timer) and its maximum rate",
      "collapse threshold below which a stock stops recovering",
      "whether regrowth is automatic or needs planting or breeding",
      "spatial spread from neighboring cells versus regrowth in place",
      "visibility of stock levels and sustainable yield"
    ],
    "dynamics": [
      "Overharvesting produces boom-bust cycles in yield, the classic tragedy of the commons in shared or multiplayer worlds such as Eco.",
      "The maximum sustainable yield of a logistic stock is at half capacity, so optimal play keeps stocks at partial depletion.",
      "Coupled with predator-prey or habitat systems, harvest pressure ripples through an ecosystem.",
      "Rotating among harvest sites becomes a spatial schedule."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Fast regrowth makes stocks effectively infinite and removes the tradeoff.",
      "Collapse thresholds that are hidden make extinction feel like a sudden bug.",
      "Replanting that is free and instant reduces stewardship to placing one building."
    ],
    "family": "resources-production",
    "feedback": "both",
    "id": "renewable-regrowth",
    "legibility": 3,
    "math_basis": [
      "population-dynamics",
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Renewable regrowth",
    "open_questions": [
      "Can learned ecological models give regrowth realistic spatial patterns while keeping sustainable yield readable?",
      "Does shared regrowth in multiplayer reliably produce cooperative norms, or only collapse?"
    ],
    "player_experience": "Stewardship under temptation. Players can take more now and pay later, so they learn to harvest at a pace the land can sustain, replant deliberately, or move on. Watching a forest or fishery recover after a pause makes the system's memory visible.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-wikipedia-eco-2018"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "cellular-grid",
      "agent-based"
    ],
    "summary": "Harvested stocks such as forests, fish, game, and soil regenerate over time at density-dependent rates, allowing sustainable yield or overexploitation.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "elite",
      "earliest_year": 1984,
      "incoming": {
        "affected_by": [
          "cicero-strategic-dialogue"
        ],
        "involved_in": [
          "negotiating-faction-ai"
        ],
        "used_by": [
          "anno-117",
          "balance-of-power",
          "bitburner",
          "black-and-white",
          "caesar-3",
          "caves-of-qud",
          "elite",
          "elite-dangerous",
          "europa-universalis-4",
          "eve-online",
          "football-manager",
          "game-dev-story",
          "game-dev-tycoon",
          "jurassic-world-evolution",
          "kenshi",
          "kerbal-space-program",
          "microsoft-flight-simulator-2024",
          "planet-zoo",
          "space-haven",
          "theme-hospital",
          "transport-tycoon",
          "ultima-online",
          "where-winds-meet"
        ]
      },
      "prevalence": 23,
      "prevalence_rank": 18,
      "prevalence_share": 0.13,
      "subgenre_spread": 14,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "standing",
      "fame",
      "renown"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a scalar or small vector (fame, infamy, honor) for the player or an organization, held per faction or globally, that rises and falls with witnessed or reported acts and often decays toward neutral. Unlike pairwise relationships it is the many-to-one view others hold of one actor, read by rules that gate access (quests, ranks, shops), set prices or acceptance odds, and change NPC reactions. Crusader Kings III tracks character prestige and dynasty renown as standing currencies; Europa Universalis IV diplomatic reputation adds 5 to alliance acceptance per point; RimWorld faction goodwill doubles as reputation by gating trade, caravans, and military aid. Inputs: acts and who observed them. Outputs: modifiers on prices, recruitment, acceptance, aggression, and unlocks.",
    "design_levers": [
      "per-faction versus global scope, and whether there are separate fame and infamy axes",
      "magnitude per act and whether acts need witnesses or reports",
      "decay toward neutral and its rate",
      "threshold tiers and what each unlocks or blocks",
      "spillover between allied or rival factions"
    ],
    "dynamics": [
      "Good standing opens trade and quests that further raise standing, a reinforcing loop.",
      "Opposed factions turn every gain with one into a loss with the other, forcing alignment choices.",
      "When reputation spreads by gossip, information lag creates windows for crime before word gets out."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Reputation grinding: repeating cheap acts maxes standing without meaningful choices.",
      "Global reputation without witnesses means everyone knows everything instantly, which breaks plausibility.",
      "Tiers that only unlock shops make reputation a currency, not an identity.",
      "Irreversible collapse locks players out of content with no repair path."
    ],
    "family": "social-relations",
    "feedback": "reinforcing",
    "id": "reputation",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "game-theory"
    ],
    "maturity": "classic",
    "name": "Reputation",
    "open_questions": [
      "Can reputation be carried in language-model NPCs' remembered accounts of the player rather than in a number, and still gate content predictably?",
      "Should reputation be a property of the actor or of each observer's beliefs about the actor?"
    ],
    "player_experience": "The player cultivates a public identity and feels its weight when doors open or close. Reputation makes past choices follow the player into new encounters and creates tension between profitable acts and standing.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-paradoxwikis-2026-eu4-diplomacy",
      "src-rimworldwiki-2026-goodwill",
      "src-wikipedia-crusader-kings-3"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "A standing value with a faction or the public changes access, prices, and how others respond.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "factorio",
      "earliest_year": 2013,
      "incoming": {
        "used_by": [
          "dyson-sphere-program",
          "factorio"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "logistic robots",
      "logistics drones",
      "logistic network",
      "supply and demand stations"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "Owns a set of logistic containers, each with a role (provider, requester, storage, buffer) and per-item request amounts or supply and demand settings, plus a fleet of carriers with speed, cargo size, and range or charge, and the stations that define coverage and recharge carriers. Each update the dispatcher computes open demand (requested minus held minus in transit), picks a provider holding the item by priority and distance, and assigns an idle carrier in coverage, which travels directly and delivers. Factorio roboports define logistic zones in which robots move items among active provider, passive provider, storage, buffer, and requester chests in priority order, carrying 1 item at 3 tiles per second before research. Dyson Sphere Program interstellar logistics stations set each item slot to local or remote supply, demand, or storage and send up to 100 drones within a planet and 10 vessels between planets, pairing stations by priority. Unlike conveyor-transport, the player routes nothing; unlike hauling-jobs, carriers are dedicated machines rather than agents with other work; unlike vehicle-route-scheduling, there are no order lists.",
    "design_levers": [
      "carrier speed, cargo size, and energy or charging model, and how research upgrades them",
      "coverage model: roboport zones, station range sliders, or minimum trip distances",
      "container roles and the priority order among them",
      "request thresholds and minimum load settings that batch trips",
      "carrier count limits per station and the cost of each carrier",
      "unlock timing relative to belts and trains"
    ],
    "dynamics": [
      "Factories split into belt-fed bulk lines and robot-fed low-volume or mixed-item stations.",
      "Coverage gaps and charging capacity become the new bottleneck, so players build infrastructure for the carriers themselves.",
      "Supply and demand settings across planets or outposts produce hub-and-spoke shipping patterns no one drew."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "A cheap, unconstrained robot network makes belts and layout obsolete once unlocked, removing the earlier puzzle.",
      "Charging queues at a few stations leave swarms of idle carriers that are hard to diagnose.",
      "Large carrier counts become a late-game compute cost in very large factories.",
      "Priority rules that send carriers to distant providers when near ones exist make the network look broken."
    ],
    "family": "logistics-networks",
    "feedback": "balancing",
    "id": "request-provider-logistics",
    "legibility": 3,
    "math_basis": [
      "scheduling",
      "queueing"
    ],
    "maturity": "established",
    "name": "Request-provider logistics",
    "open_questions": [
      "Could learned dispatch policies cut idle trips and charging queues while staying predictable to players?",
      "How should a game show open requests, in-transit items, and carrier states so the network can be debugged at a glance?"
    ],
    "player_experience": "Logistics stops being a layout puzzle and becomes a declaration of intent. The player sets what each chest wants and has, then watches a cloud of robots or a stream of vessels move goods, adding roboports, chargers, or carriers where the swarm thins out. It arrives as a late-game reward that dissolves earlier belt problems while creating new coverage and throughput ones.",
    "player_interface": [
      "placement",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-factoriowiki-2026-logistic-network",
      "src-dspwiki-2026-interstellar-logistics-station"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "rule-system"
    ],
    "summary": "Containers declare per-item requests and supplies, and a dispatcher sends drones or robots from providers to requesters without fixed routes.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 10,
      "earliest_game": "utopia",
      "earliest_year": 1982,
      "incoming": {
        "required_by": [
          "deposit-depletion"
        ],
        "used_by": [
          "a-tale-in-the-desert",
          "aurora-4x",
          "bitburner",
          "black-and-white",
          "capitalism",
          "captain-of-industry",
          "dyson-sphere-program",
          "elite",
          "elite-dangerous",
          "eve-online",
          "factorio",
          "frostpunk",
          "frostpunk-2",
          "jurassic-world-evolution",
          "kerbal-space-program",
          "mindustry",
          "minecraft",
          "mule",
          "offworld-trading-company",
          "project-sid",
          "satisfactory",
          "screeps",
          "shapez-2",
          "space-engineers",
          "space-haven",
          "stationeers",
          "surviving-mars",
          "ultima-online",
          "utopia"
        ]
      },
      "prevalence": 29,
      "prevalence_rank": 10,
      "prevalence_share": 0.164,
      "subgenre_spread": 13,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 1,
    "aliases": [
      "harvesting",
      "gathering",
      "mining"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Map nodes (ore patches, trees, fishing spots, oil wells) hold a resource type and a richness or purity value. An extractor, which is a placed machine, an assigned worker, or the avatar with a tool, produces units at a base rate multiplied by tool tier, worker skill, richness, and modifiers. Output goes to an adjacent buffer or is carried away by hauling. Satisfactory multiplies extraction by node purity (impure 0.5x, normal 1.0x, pure 2.0x); Factorio drills mine a fixed rate per tile with productivity research; RTS games such as Age of Empires assign villagers who gather by walking to nodes and back; Minecraft and Valheim gate which blocks can be mined by tool tier. Inputs: node, extractor, labor or power. Outputs: a stream of raw materials and, where depletion exists, a decrement to the node.",
    "design_levers": [
      "base rate per extractor and tool or tier multipliers",
      "richness or purity variation across nodes",
      "labor model: machine, assigned worker, or avatar action",
      "node placement and distance from base",
      "whether extraction depletes the node (see deposit depletion) or is infinite"
    ],
    "dynamics": [
      "Rich nodes far from base create a tradeoff between yield and logistics cost.",
      "Contested nodes become flashpoints in multiplayer and RTS maps.",
      "Extraction is the root of every production chain, so its rate caps the whole economy."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Uniform nodes make location choice irrelevant.",
      "Extraction rates far above processing capacity create endless stockpiles and remove pressure.",
      "Avatar gathering that never automates becomes grind late in a run."
    ],
    "family": "resources-production",
    "feedback": "reinforcing",
    "id": "resource-extraction",
    "legibility": 5,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Resource extraction",
    "open_questions": [
      "Could procedural geology tied to visible terrain features make extraction sites a matter of inference rather than icons?"
    ],
    "player_experience": "The first link in every chain. Players scout for rich nodes, claim them, and judge how many extractors a site justifies. In avatar games, swinging a tool at a rock is a tactile, repeatable earning loop; in factory games, placing drills on the best patch is an early, high-leverage decision.",
    "player_interface": [
      "placement",
      "orders",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-satisfactorywiki-2026-resource-node"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based",
      "aggregate-stocks"
    ],
    "summary": "Workers or machines harvest raw materials from map nodes (ore, trees, fish, oil) at rates set by tools, labor, and node richness.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 10,
      "earliest_game": "the-incredible-machine",
      "earliest_year": 1993,
      "incoming": {
        "affected_by": [
          "diffusion-game-engines",
          "generated-3d-worlds",
          "genie-world-models",
          "massively-parallel-simulation",
          "muse-wham",
          "open-interactive-video-models",
          "physical-world-foundation-models",
          "physics-based-character-control"
        ],
        "involved_in": [
          "neural-npc-motion"
        ],
        "used_by": [
          "besiege",
          "garrys-mod",
          "hardspace-shipbreaker",
          "job-simulator",
          "kerbal-space-program",
          "noita",
          "poly-bridge",
          "second-life",
          "space-engineers",
          "surgeon-simulator",
          "teardown",
          "the-incredible-machine",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 13,
      "prevalence_rank": 45,
      "prevalence_share": 0.073,
      "subgenre_spread": 7,
      "technique_count": 8,
      "technique_exposure": 2.788
    },
    "ai_leverage": 3,
    "aliases": [
      "physics engine",
      "rigid-body dynamics"
    ],
    "authoring_cost": 2,
    "compute_cost": 3,
    "definition": "Each body holds mass, an inertia tensor, position, orientation, and linear and angular velocity. Each step the engine applies forces and gravity, finds colliding pairs with a broad phase and contact points with a narrow phase, solves contact and joint constraints iteratively (sequential impulses or projected Gauss-Seidel), and integrates positions; resting bodies sleep to save compute. Engines include Havok, used for Half-Life 2's gravity gun puzzles in 2004, PhysX, and Box2D by Erin Catto. Dennis Gustafsson's voxel physics engine after Teardown uses substeps instead of more solver iterations, in the style of temporal Gauss-Seidel, with a parallel solver for large piles. Outputs are motion, contact events, and impact forces that other systems read as damage or sound.",
    "design_levers": [
      "solver iterations or substeps per frame",
      "friction and restitution per material",
      "allowed mass ratios between interacting bodies",
      "joint types and limits",
      "sleep thresholds and active simulation range",
      "determinism requirements for replays and networking"
    ],
    "dynamics": [
      "Contraptions, chain reactions, and Rube Goldberg machines arise in sandboxes such as Garry's Mod, whose tool gun welds and constrains props.",
      "Impact forces feed damage, sound, and destruction systems.",
      "Ragdoll physics turns failure into comedy and shareable clips."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Large mass ratios and stiff joints cause jitter or explosive separation.",
      "Fast small objects tunnel through thin walls without continuous collision detection.",
      "Non-deterministic solvers desynchronize multiplayer sessions and replays.",
      "Players exploit clipping and stacking to launch themselves or bypass level geometry.",
      "Body count caps scale and causes late slowdowns in sandbox play."
    ],
    "family": "physics-materials",
    "feedback": "none",
    "id": "rigid-body-physics",
    "legibility": 4,
    "math_basis": [
      "classical-mechanics"
    ],
    "maturity": "classic",
    "name": "Rigid-body physics",
    "open_questions": [
      "Can learned simulators handle thousands of interacting bodies more cheaply than iterative solvers while staying stable?",
      "Can deterministic GPU solvers make large rigid-body worlds practical in multiplayer?"
    ],
    "player_experience": "Tactile and playful. Objects behave as expected, so players stack, throw, and build contraptions, and failures turn into slapstick. Physics puzzles feel solved by understanding rather than by finding the intended key.",
    "player_interface": [
      "direct-manipulation",
      "embodied-skill"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-80lv-2025-teardown-voxel-physics",
      "src-wikipedia-garrys-mod"
    ],
    "status": "sourced",
    "substrate": [
      "continuous-physics"
    ],
    "summary": "Objects with mass and inertia move under forces and collide, constrained by contacts and joints solved each step.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "mule",
      "earliest_year": 1983,
      "incoming": {
        "affected_by": [
          "imperfect-information-solvers",
          "model-based-planning-muzero",
          "monte-carlo-tree-search",
          "quality-diversity-search"
        ],
        "involved_in": [
          "parallel-autobalance"
        ],
        "used_by": [
          "anno-1800",
          "big-pharma",
          "capitalism",
          "mule",
          "offworld-trading-company",
          "railroad-tycoon",
          "theme-park",
          "transport-tycoon"
        ]
      },
      "prevalence": 8,
      "prevalence_rank": 77,
      "prevalence_share": 0.045,
      "subgenre_spread": 5,
      "technique_count": 4,
      "technique_exposure": 1.188
    },
    "ai_leverage": 4,
    "aliases": [
      "AI competitors",
      "competing companies"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns one or more competitor companies, each with cash, assets, market presence, and strategy parameters such as aggressiveness, expansion rate, and pricing policy. Each turn or tick a rival evaluates opportunities, builds or buys capacity, sets prices, and competes for the same customers, so market share splits by relative price, quality, coverage, and brand. Rivals can go bankrupt, be bought, or buy the player. Railroad Tycoon (1990) has rival railroad barons who try to drive the player out through stock dealings and rate wars. Capitalism (1995) lets the player set rivals' competence and managerial style from very aggressive to conservative and makes being bought out a loss. Transport Tycoon's AI companies build competing routes, and Offworld Trading Company's rivals contest the same resources and prices.",
    "design_levers": [
      "number of rivals and their strategy profiles (aggressive, conservative, specialist)",
      "whether rivals obey the same rules and economics as the player or receive bonuses",
      "responsiveness: how quickly rivals react to price cuts or new entrants",
      "interaction channels: price, location, stock, sabotage, poaching staff",
      "bankruptcy and merger rules for rivals"
    ],
    "dynamics": [
      "Price wars drive margins toward zero until one firm exits, after which prices rebound.",
      "Market leaders gain economies of scale that compound their lead.",
      "Rivals entering a player's niche push the player to diversify into new markets."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Passive AI that never contests markets turns competition into decoration.",
      "AI that receives hidden resource bonuses feels unfair once players notice it.",
      "Rivals that keep building in unprofitable markets go bankrupt early and leave the player alone."
    ],
    "family": "economy-finance",
    "feedback": "both",
    "id": "rival-firms",
    "legibility": 3,
    "math_basis": [
      "game-theory",
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Rival firms",
    "open_questions": [
      "Can LLM or RL-driven firms pursue legible strategies (cornering a supply, undercutting, collusion) that players can read and counter?",
      "How should rival competence scale with difficulty without hidden bonuses?"
    ],
    "player_experience": "Having someone to beat. The player watches rivals enter their markets, cuts prices or raises quality to hold share, and sometimes waits for a rival to overextend before striking. Victory becomes relative, which gives the sandbox a scoreboard.",
    "player_interface": [
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-wikipedia-railroad-tycoon",
      "src-wikipedia-capitalism-video-game",
      "src-wikipedia-offworld-trading-company"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based"
    ],
    "summary": "AI or player competitors contest markets, prices, and assets; market share decides who wins.",
    "synergy": [
      {
        "id": "supply-demand-pricing",
        "note": "Competitors move prices, turning a market into a strategic game."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "civilization",
      "earliest_year": 1991,
      "incoming": {
        "required_by": [
          "traffic-congestion",
          "walker-service-delivery"
        ],
        "used_by": [
          "anno-117",
          "caesar-3",
          "cities-skylines",
          "civilization",
          "euro-truck-simulator-2",
          "manor-lords",
          "pocket-city",
          "transport-tycoon"
        ]
      },
      "prevalence": 8,
      "prevalence_rank": 77,
      "prevalence_share": 0.045,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "roads",
      "path network",
      "connectivity"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Road tiles or segments form a graph whose nodes are intersections and building access points. Each building checks for a road connection; unconnected buildings do not function, grow, or receive services. Travel along the graph has a cost per segment set by road type, speed limit, and length, used by pathfinding and trip generation. In Micropolis, the released SimCity engine, a zone scans its perimeter for a road; if none exists the traffic test fails and residential and commercial zones shrink. Caesar III walkers move only on roads, so road shape determines service coverage. Cities: Skylines adds a road hierarchy with lanes and capacities. Banished treats roads as a speed boost rather than a requirement. Inputs: player-placed road segments. Outputs: connectivity per building and travel costs between points.",
    "design_levers": [
      "whether connection is required or only speeds movement",
      "road types with different speeds, capacities, and costs",
      "placement freedom: grid-locked, free curves, or segments",
      "intersection rules and traffic controls",
      "cost per segment and upkeep"
    ],
    "dynamics": [
      "Road layout determines which areas are reachable and therefore where growth happens.",
      "Hierarchies of arterials and local streets emerge under congestion pressure.",
      "Coupled with walker or coverage systems, road shape becomes a service-distribution tool."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Grid-only placement makes every city look the same.",
      "Free placement without snapping guides makes clean layouts hard.",
      "Dead-end tolerance that is too forgiving removes any layout pressure."
    ],
    "family": "logistics-networks",
    "feedback": "none",
    "id": "road-network",
    "legibility": 4,
    "math_basis": [
      "graph-search",
      "network-flow"
    ],
    "maturity": "classic",
    "name": "Road networks",
    "open_questions": [
      "Could procedural road generation that follows terrain and demand make player road-drawing optional without losing authorship?"
    ],
    "player_experience": "Drawing the city's skeleton. Players lay roads first and fill blocks after, so road layout fixes later possibilities. Disconnected buildings are an immediate, readable failure, while inefficient geometry shows up slowly as long trips and congestion.",
    "player_interface": [
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-hopkins-2008-micropolis",
      "src-wikipedia-caesar-iii"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "cellular-grid"
    ],
    "summary": "Roads and paths define connectivity; buildings must connect to function, and travel cost depends on network geometry.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "harvest-moon",
      "earliest_year": 1996,
      "incoming": {
        "involved_in": [
          "living-workforce-factories"
        ],
        "used_by": [
          "banished",
          "crusader-kings-3",
          "fallout-shelter",
          "harvest-moon",
          "inzoi",
          "paralives",
          "stardew-valley",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "tomodachi-life"
        ]
      },
      "prevalence": 12,
      "prevalence_rank": 50,
      "prevalence_share": 0.068,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "courtship and marriage",
      "dating",
      "family formation"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns relationship-status edges (crush, lover, fiance, spouse, ex) and family links (parent, child, sibling) plus the rules that move pairs between statuses. Attempts such as flirting, proposals, and breakups succeed with probabilities from attraction, opinion, age, traits, and existing commitments; partnered pairs gain bonuses and can produce children, linking to lifecycle and inheritance. RimWorld pawns over 16 can attempt romance every 12 days; success depends on beauty (Ugly x0.3, Pretty x2.3), relative age, and existing relationships; a rebuff gives -10 and -15 opinion; lover is +35, spouse +30, ex -15, breakup -50, and kin get base opinions such as parent +30. Stardew Valley has 12 marriage candidates courted through a heart-based friendship meter (250 points per heart). Crusader Kings III makes marriage a political act that links dynasties. Inputs: relationship values, traits, ages. Outputs: couples, households, children, grief, jealousy.",
    "design_levers": [
      "attraction model (traits, beauty, orientation, compatibility) and attempt cooldowns",
      "status ladder and requirements for each step",
      "jealousy, cheating, and breakup rules",
      "whether relationships are player-directed, autonomous, or both",
      "fertility and household formation rules that link to lifecycle"
    ],
    "dynamics": [
      "Couples anchor households and change migration, mood, and grief networks.",
      "Love triangles and rivals produce recurring social conflicts and fights.",
      "In dynastic games, marriage creates alliance and inheritance claims across factions."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Romance spam: compatible agents pair off immediately and the system stops generating story.",
      "Autonomous affairs and breakups wreck carefully built families, which feels like the game punishing the player.",
      "Narrow attraction rules repeat the same few pairings every run.",
      "Ignoring orientation or consent in autonomous romance produces behavior that players report as harmful."
    ],
    "family": "social-relations",
    "feedback": "reinforcing",
    "id": "romance-family",
    "legibility": 4,
    "math_basis": [
      "social-network",
      "markov-stochastic"
    ],
    "maturity": "classic",
    "name": "Romance and family",
    "open_questions": [
      "Can language-model characters carry courtship as dialogue with consistent preferences, and how should that be constrained for safety and consent?",
      "What autonomy level for romance maximizes story without making players feel they lost control of their families?"
    ],
    "player_experience": "Romance gives characters personal goals and the player a matchmaking game. Players engineer meetings, celebrate weddings, and deal with affairs and breakups; children turn a run into a family saga.",
    "player_interface": [
      "choice-cards",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "requires": [
      "relationship-values"
    ],
    "sources": [
      "src-rimworldwiki-2026-social",
      "src-wikipedia-stardew-valley",
      "src-stardewwiki-2026-friendship"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system",
      "stochastic-events"
    ],
    "summary": "Agents court, partner, marry, and form families according to compatibility and relationship state.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "involved_in": [
          "generative-decoration-catalogs"
        ],
        "used_by": [
          "dwarf-fortress",
          "going-medieval",
          "oxygen-not-included",
          "project-hospital",
          "rimworld",
          "townscaper"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "room detection",
      "room roles",
      "room types"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "When walls, doors, or floors change, a flood fill over passable tiles bounded by impassable structures finds enclosed regions. Each region is scored against role templates by its furniture and size; the best match becomes the room type, and room stats feed effects. In RimWorld rooms are bounded by walls, doors, and natural rock; roles are scored from contents (12 per table for a dining room, 27 per workbench for a workshop, and a room with more than one unassigned human bed scores as barracks rather than a bedroom); rooms are capped at 36 map regions or 5,184 tiles; and wealth, beauty, space, and cleanliness combine into impressiveness that sets mood thoughts. Oxygen Not Included recognizes rooms such as barracks and mess halls by enclosure, size limits, and required buildings. Theme Hospital and Prison Architect instead have the player designate the room type and validate its requirements.",
    "design_levers": [
      "enclosure rule: what counts as a wall, whether doors and vents close a room, diagonal gaps",
      "minimum and maximum room size",
      "role templates, their scores, and tie-breaking",
      "whether one room can hold several roles",
      "effects granted per role and stat tier"
    ],
    "dynamics": [
      "Raid or disaster damage breaks enclosures and triggers mood or productivity drops across the base.",
      "Rooms double as thermal and atmospheric zones, coupling layout to temperature and gas systems.",
      "Room upgrades become a progression track toward higher stat tiers."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Invisible enclosure breaks, such as a destroyed wall or an opened gap, silently change room roles and their effects.",
      "Role conflicts surprise players; in RimWorld a second unassigned bed turns a bedroom into barracks.",
      "Tiny or multipurpose rooms that satisfy templates cheaply become the optimal design.",
      "Very large open spaces exceed size limits and stop counting as rooms."
    ],
    "family": "space-construction",
    "feedback": "none",
    "id": "room-recognition",
    "legibility": 4,
    "math_basis": [
      "graph-search",
      "combinatorics"
    ],
    "maturity": "established",
    "name": "Room recognition",
    "open_questions": [
      "Can a vision or language model classify rooms by what they are used for rather than by fixed furniture templates?",
      "How should recognition explain to the player why a space failed to qualify?"
    ],
    "player_experience": "Walls acquire meaning. Players build a room, watch it get its label, and upgrade it to earn bonuses. A broken wall or an extra bed silently downgrades the room, which teaches players to read enclosure carefully.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "requires": [
      "free-placement"
    ],
    "sources": [
      "src-rimworldwiki-2026-room"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "rule-system"
    ],
    "summary": "Enclosed spaces are detected by flood fill and classified into room types by their size and contents, and the type grants effects.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "papers-please",
      "earliest_year": 2013,
      "incoming": {
        "involved_in": [
          "generated-inspection-shifts"
        ],
        "used_by": [
          "contraband-police",
          "papers-please"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 4,
    "aliases": [
      "document inspection",
      "checkpoint inspection"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "A generator produces cases (travelers, documents, cargo) with attributes, some injected with discrepancies at a configured rate. A rulebook of predicates defines valid cases and grows or changes each day. The player inspects, cross-references, uses tools to reveal hidden attributes, and issues a verdict; errors produce penalties and correct verdicts produce pay, within a fixed time per shift. In Papers, Please each day sets documentation requirements that grow over time, tools include interrogation, fingerprinting, and body scans, citations for protocol violations cut daily earnings, and wages must cover rent, food, and heat. Contraband Police applies the loop to cargo and vehicles. Inputs: case attributes and rules. Outputs: verdicts, earnings, penalties, and story flags.",
    "design_levers": [
      "rule count and the rate at which rules are added",
      "discrepancy injection rate and subtlety",
      "time per shift and pay per correct case",
      "penalty structure for errors",
      "inspection tools and their cost in time",
      "authored cases with moral stakes mixed into generated ones"
    ],
    "dynamics": [
      "Time pressure trades accuracy against throughput, and income pressure pushes players to cut corners.",
      "Bribes and sympathetic cases set economic incentives against moral judgment.",
      "Rule growth makes earlier skill obsolete, renewing difficulty every day."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Too many concurrent rules overload working memory and become frustrating.",
      "Purely generated cases without authored stakes reduce play to a matching task.",
      "Binary penalties with no explanation leave players unsure which rule they broke."
    ],
    "family": "operation-procedure",
    "feedback": "none",
    "id": "rule-checking-inspection",
    "legibility": 4,
    "math_basis": [
      "information-theory",
      "combinatorics"
    ],
    "maturity": "established",
    "name": "Rule-checking inspection",
    "open_questions": [
      "Can language models generate cases and dialogue whose discrepancies are subtle yet verifiable against a formal rulebook?",
      "What rule-addition rate keeps load challenging without exceeding working memory?"
    ],
    "player_experience": "Rising cognitive load and moral pressure. Players scan for mismatches against a growing rulebook, race the clock to earn enough for their family, and face cases where following the rules is cruel. Rule changes keep competence from settling into routine.",
    "player_interface": [
      "direct-manipulation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-wikipedia-papers-please"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "stochastic-events"
    ],
    "summary": "The player checks documents, people, or cargo against a rulebook that changes over time, under time pressure, with penalties for errors.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "populous",
      "earliest_year": 1989,
      "incoming": {
        "affected_by": [
          "automated-playtesting",
          "automated-rule-generation",
          "generated-3d-worlds",
          "learned-level-generation",
          "open-ended-environment-generation",
          "quality-diversity-search"
        ],
        "involved_in": [
          "qd-scenario-libraries",
          "sims-as-agent-benchmarks",
          "specification-programming-games"
        ],
        "used_by": [
          "against-the-storm",
          "arma-3",
          "beamng-drive",
          "besiege",
          "big-pharma",
          "caesar-3",
          "capitalism",
          "command-modern-operations",
          "dcs-world",
          "from-dust",
          "frostpunk-2",
          "gran-turismo",
          "gran-turismo-7",
          "harvest-moon",
          "job-simulator",
          "microsoft-flight-simulator-2020",
          "mindustry",
          "opus-magnum",
          "pharaoh",
          "plague-inc",
          "planet-coaster",
          "poly-bridge",
          "populous",
          "powerwash-simulator",
          "project-hospital",
          "prom-week",
          "rebel-inc",
          "rollercoaster-tycoon",
          "simant",
          "simcity-1989",
          "simearth",
          "spacechem",
          "suck-up",
          "surgeon-simulator",
          "teardown",
          "terra-nil",
          "the-incredible-machine",
          "theme-hospital",
          "two-point-hospital",
          "zoo-tycoon"
        ]
      },
      "prevalence": 40,
      "prevalence_rank": 5,
      "prevalence_share": 0.226,
      "subgenre_spread": 19,
      "technique_count": 6,
      "technique_exposure": 1.3
    },
    "ai_leverage": 3,
    "aliases": [
      "scenarios",
      "missions",
      "challenge maps",
      "campaign goals"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-simcity-1989"
        ],
        "text": "SimCity (1989) included goal-oriented, time-limited scenarios that end in win or loss; Broderbund suggested scenarios to make SimCity more like a traditional game."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-rollercoaster-tycoon"
        ],
        "text": "RollerCoaster Tycoon, designed and programmed by Chris Sawyer, shipped with 21 scenarios in which completing one unlocks the next."
      }
    ],
    "compute_cost": 1,
    "definition": "A scenario bundles an initial state (map, buildings, budget, population, problem) with a goal predicate, optional constraints (banned buildings, fixed budget, no loans), and a deadline. State owned: the scenario definition and evaluation status. Update rule: each evaluation interval, test the goal and failure predicates; on the deadline or a failure condition, end with win or loss and often unlock the next scenario. Canonical forms: SimCity (1989), whose goal-oriented, time-limited scenarios were added at Broderbund's suggestion to make the toy more like a traditional game; RollerCoaster Tycoon, whose 21 base scenarios each unlock the next on completion, typically requiring a guest count and park rating by a date; Railroad Tycoon II's bronze, silver, and gold goal tiers; and Theme Hospital levels and Planet Coaster career scenarios.",
    "design_levers": [
      "goal type: target value, survival, or rescue",
      "deadline length",
      "constraints and starting resources",
      "single goal versus tiered bronze, silver, gold goals",
      "scenario ordering and unlocks",
      "whether play continues after the goal is met"
    ],
    "dynamics": [
      "Scenarios function as structured tutorials for systems hidden in sandbox mode.",
      "Hard scenario lines become community challenges with shared strategies.",
      "Inherited problem cities expose systemic interactions the player did not cause."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Goals that reward a degenerate strategy, such as a guest count met by trapping guests in the park.",
      "Deadlines that leave no room for experimentation make scenarios feel like puzzles with one answer.",
      "Initial states that are trivially fixable or hopeless."
    ],
    "family": "progression-goals",
    "feedback": "none",
    "id": "scenario-objectives",
    "legibility": 4,
    "math_basis": [
      "optimization"
    ],
    "maturity": "classic",
    "name": "Scenario objectives",
    "open_questions": [
      "Can scenarios be generated by searching initial states and constraints for a target difficulty using automated RL playtests?",
      "Can a language model generate a scenario brief and constraints from a real-world event that the simulation can actually evaluate?"
    ],
    "player_experience": "The sandbox gets a question. The player studies an inherited mess, plans against the clock, and feels accomplishment rather than open-ended satisfaction. Constraints force use of systems the player would otherwise ignore.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-wikipedia-simcity-1989",
      "src-wikipedia-rollercoaster-tycoon"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "Preset maps or situations come with explicit goals, constraints, and often a deadline.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "out-of-the-park-baseball",
      "earliest_year": 1999,
      "incoming": {
        "affected_by": [
          "imperfect-information-solvers"
        ],
        "used_by": [
          "big-pharma",
          "command-modern-operations",
          "football-manager",
          "out-of-the-park-baseball"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 3,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "attribute masking",
      "scouting reports",
      "rating uncertainty"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Each entity attribute has a true hidden value and, per player, a knowledge level or confidence interval. Scouting actions (assigning a scout, watching matches, spending time or money) raise knowledge for specific entities or regions; knowledge may decay. The display shows a masked value, a range, a noisy point estimate, or a star rating whose noise scales with the scout's judging skill and the knowledge level. State owned: (player, entity, attribute) knowledge and the current estimate. Update rule: knowledge increases with effort and observer skill; estimate = true value plus noise scaled by remaining uncertainty, or hidden until a threshold. Canonical forms: Football Manager attribute masking, regional scouting knowledge, and scout ability and potential star ratings; Out of the Park Baseball, where displayed ratings are your scouting staff's opinion and accuracy is a setting.",
    "design_levers": [
      "representation of uncertainty: masked, range, noisy estimate, or rating",
      "scouting cost and speed per entity or region",
      "scout skill as the noise level of reports",
      "whether knowledge decays over time",
      "whether true values are ever fully revealed, for example after signing",
      "separate uncertainty for current ability and future potential"
    ],
    "dynamics": [
      "Information asymmetry creates market behavior: overpaying for hyped players and bargains in under-scouted regions.",
      "Uncertain potential couples with skill growth to make youth signings speculative bets.",
      "Rival AI clubs with better knowledge outbid the player, making scouting investment competitive."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Third-party editors and database tools reveal true attributes, collapsing the mechanic for players who use them.",
      "Cheap, complete scouting turns uncertainty into a delay rather than a decision.",
      "Uncertainty that persists after acquisition and long observation feels arbitrary."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "scouting-knowledge",
    "legibility": 3,
    "math_basis": [
      "information-theory",
      "probability-statistics"
    ],
    "maturity": "established",
    "name": "Scouting knowledge",
    "open_questions": [
      "Can language-model scouts write reports whose hedges and biases track their numeric noise, so reading reports is itself a skill?",
      "Does Bayesian updating from observed performance, shown to the player, make uncertainty feel fairer than fixed masking?"
    ],
    "player_experience": "Recruitment becomes investment under uncertainty. The player decides where to send scouts, weighs a cheap unknown against a known star, and feels vindicated or burned when performance reveals the true value.",
    "player_interface": [
      "orders",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "agent-based",
      "stochastic-events"
    ],
    "summary": "Entity attributes are known only with uncertainty that scouting effort reduces.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "a-tale-in-the-desert",
      "earliest_year": 2003,
      "incoming": {
        "used_by": [
          "a-tale-in-the-desert",
          "eco"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "wipes",
      "seasons",
      "Tellings",
      "server cycles"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns the season's state: start date, an end condition (fixed duration, a scheduled wipe, or a world-level goal or catastrophe), and the carryover rules that say what survives into the next season (nothing, account-level unlocks, records, or changed rules). When the end condition fires, world state is archived or deleted, a new world is generated or loaded, and carryover is applied. A Tale in the Desert runs in Tellings that average about 18 months and end in a wipe, with rule changes for the next Telling shaped by what players achieved. Eco gives each world a meteor due in thirty days, so a server's run is bounded by stopping it or suffering the impact, and servers are commonly restarted as new worlds. Unlike persistent-world, which assumes continuity, this mechanic owns the bounded lifetime of a shared world and the transition between lifetimes.",
    "design_levers": [
      "season length or end condition",
      "carryover: nothing, cosmetics, account unlocks, records, or rule changes",
      "rule variation between seasons, including player-proposed changes",
      "whether players can migrate between seasonal and permanent worlds",
      "announcement lead time before a wipe"
    ],
    "dynamics": [
      "Activity surges at season start and fades toward the end, giving the population a cycle.",
      "Players refine openings across seasons, and community guides target the first days of a wipe.",
      "Rule changes between seasons let designers and players treat each season as an experiment."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Wipes erase work players were attached to, and some quit rather than start over.",
      "Short seasons reward a known opening rush, so seasons play out the same way.",
      "Carryover that is too generous rebuilds the early-arrival advantage the reset was meant to remove."
    ],
    "family": "multiplayer-persistence",
    "feedback": "balancing",
    "id": "seasonal-world-reset",
    "legibility": 5,
    "math_basis": [
      "mechanism-design",
      "game-theory"
    ],
    "maturity": "established",
    "name": "Seasonal world reset",
    "open_questions": [
      "Could AI summaries and chronicles of past seasons preserve their history so wipes feel less like loss?",
      "Which carryover rules keep returning players motivated without restoring early-arrival dominance?"
    ],
    "player_experience": "Fresh starts on a schedule. Everyone begins equal at the start of a season, so new players can matter, and the end date gives the season an arc of land rush, consolidation, and final push. Players plan around the wipe, deciding what is worth building when it will not last.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "requires": [
      "persistent-world"
    ],
    "sources": [
      "src-wikipedia-a-tale-in-the-desert",
      "src-steam-2018-eco"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "A shared world runs for a bounded season and is then wiped and restarted, often with rule changes carried into the next season.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "harvest-moon",
      "earliest_year": 1996,
      "incoming": {
        "involved_in": [
          "learned-weather-layer"
        ],
        "used_by": [
          "against-the-storm",
          "animal-crossing-new-horizons",
          "banished",
          "cities-skylines-2",
          "dont-starve",
          "farming-simulator-25",
          "farthest-frontier",
          "going-medieval",
          "harvest-moon",
          "kingdoms-and-castles",
          "manor-lords",
          "pharaoh",
          "project-zomboid",
          "stardew-valley",
          "this-war-of-mine",
          "workers-and-resources"
        ]
      },
      "prevalence": 16,
      "prevalence_rank": 38,
      "prevalence_share": 0.09,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "seasonal cycle",
      "calendar seasons"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns a calendar position that advances by day and maps to a season index, usually four. Each season sets parameters other systems read: which crops can grow, temperature, day length, weather odds, animal behavior, demand for heat or food, and scheduled events. Stardew Valley has four 28-day seasons, and seasonal crops must generally be harvested before the next season arrives; Don't Starve's base cycle alternates 20 summer days and 16 winter days and changes the day, dusk, and night split with them; Banished and Farthest Frontier force food stockpiling for winters without harvests. Inputs are elapsed days; outputs are season flags and parameter sets. Some games make season length a setting.",
    "design_levers": [
      "number and length of seasons, and whether lengths vary or can be set",
      "which systems each season modifies: growth, temperature, weather, events, prices",
      "severity of the harshest season and how much stockpiling it demands",
      "transition rules, such as crops dying at the change or gradual change",
      "season-unique content: crops, festivals, creatures"
    ],
    "dynamics": [
      "Seasonal production with year-round consumption creates demand for storage, preservation, and trade.",
      "Combined with a crisis countdown, the approach of winter structures the year as preparation.",
      "Labor shifts between seasonal tasks, creating idle periods and peaks."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Seasons that only swap textures add art cost without changing decisions.",
      "A harsh season survivable only with one known stockpile size becomes a checklist.",
      "Season-gated content locks players out for long stretches when they miss a window."
    ],
    "family": "environment-ecology",
    "feedback": "none",
    "id": "seasons",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "scheduling"
    ],
    "maturity": "classic",
    "name": "Seasons",
    "open_questions": [
      "Can generative asset models make seasonal variants of every asset cheap enough that seasons become a default rather than a budget decision?"
    ],
    "player_experience": "Planning in cycles. The player plants for this season while saving for the next, treats the end of a season as a deadline, and gets a fresh start each spring. Winter tests the year's preparation, and the cycle gives long games a felt rhythm.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-wikipedia-stardew-valley",
      "src-dontstarvewiki-2026-day-night-cycle"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "A seasonal calendar cycles conditions such as temperature, daylight, and growing windows that govern growth, demand, and risk.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "generalizes": [
          "walker-service-delivery"
        ],
        "used_by": [
          "cities-skylines",
          "cities-skylines-2",
          "frostpunk",
          "pocket-city",
          "railroad-tycoon",
          "simcity-1989",
          "simcity-2000",
          "simcity-2013",
          "simcity-4",
          "surviving-mars",
          "transport-tycoon"
        ]
      },
      "prevalence": 11,
      "prevalence_rank": 56,
      "prevalence_share": 0.062,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "service radius",
      "coverage areas",
      "service catchment"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each service building writes an effect value onto a coverage map, within a radius, a network distance, or by dispatching vehicles. Covered cells or buildings read that value to reduce a risk or raise a satisfaction term. In Micropolis each fire or police station adds an effect equal to 1000 times funded over requested budget, halved if unpowered and halved again without road access, to an 8x8-tile block map; the map is smoothed three times, and the smoothed police map is subtracted from each cell's crime score and the smoothed fire map sets fire protection. SimCity 2000 shows coverage as a radius; Cities: Skylines uses network distance and dispatches service vehicles. Capacity limits how many buildings or residents one facility can serve. Inputs: service building locations, funding, power, access. Outputs: per-cell coverage values and the downstream risk or happiness change.",
    "design_levers": [
      "coverage shape: Euclidean radius, network distance, or vehicle dispatch",
      "capacity per building and falloff with distance",
      "funding and power effects on strength",
      "how coverage maps to outcomes such as crime, fire risk, health, or education",
      "overlap rules: additive, maximum, or diminishing"
    ],
    "dynamics": [
      "Coverage shapes city form, rewarding compact grids around service hubs.",
      "Budget cuts weaken coverage everywhere at once, causing simultaneous crises.",
      "Coupled with land value, coverage raises desirability, which raises density, which raises demand for more services."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Radius coverage that ignores the road network lets buildings across a river count as covered.",
      "Overlapping coverage with no capacity limit makes one building per district enough.",
      "Hidden funding multipliers make coverage seem to drop at random."
    ],
    "family": "logistics-networks",
    "feedback": "balancing",
    "id": "service-coverage",
    "legibility": 3,
    "math_basis": [
      "graph-search",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Service coverage",
    "open_questions": [
      "Can facility-location solvers act as advisors that suggest placements without removing the planning decision?",
      "Does vehicle dispatch produce more interesting failures than radius coverage at equal legibility?"
    ],
    "player_experience": "Filling the map with circles. Players place services to cover populated areas, check overlays for gaps, and balance coverage against budget. Uncovered districts show up as fires, crime, or unhappy residents, so the overlay becomes a to-do list.",
    "player_interface": [
      "placement",
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-hopkins-2008-micropolis"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "network-graph"
    ],
    "summary": "Service buildings such as police, fire, clinics, and schools satisfy demand within a radius or network distance, up to a capacity.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "simtower",
      "earliest_year": 1994,
      "incoming": {
        "affected_by": [
          "mean-field-games"
        ],
        "involved_in": [
          "mean-field-crowds"
        ],
        "used_by": [
          "mini-metro",
          "project-hospital",
          "rollercoaster-tycoon",
          "simtower",
          "theme-hospital",
          "theme-park",
          "two-point-hospital"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 3,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 2,
    "aliases": [
      "queues",
      "waiting lines",
      "queue lines"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each service point (a ride, a clinic room, a checkout) has a service rate and a queue of waiting agents. Arriving agents join if the queue is not too long by their own tolerance; while waiting, their needs keep decaying and their satisfaction falls with waiting time; served agents leave and free the slot. RollerCoaster Tycoon builds explicit queue paths for rides, and guests think aloud about long waits. Theme Hospital and Two Point Hospital queue patients outside rooms; while they wait their health keeps falling, so long queues produce departures and deaths that lower the hospital's reputation. Inputs: arrival rate, service rate, capacity, tolerance. Outputs: queue length, waiting times, and satisfaction changes.",
    "design_levers": [
      "service rate per point and number of parallel points",
      "queue capacity and agents' tolerance before they balk or leave",
      "satisfaction decay while waiting",
      "queue discipline: first-in-first-out, priority, or player reordering",
      "information shown about wait times"
    ],
    "dynamics": [
      "Utilization near 100% causes waiting times to explode, the core queueing-theory result, so players learn to keep slack.",
      "Coupled with needs decay, long waits create secondary demand at food and toilet facilities.",
      "Demand shifts toward shorter queues, balancing load across service points."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Fixed tolerance across all agents makes queues predictable and dull.",
      "Queues that grow without bound because agents never leave freeze the simulation.",
      "Invisible queues inside buildings hide the bottleneck."
    ],
    "family": "logistics-networks",
    "feedback": "balancing",
    "id": "service-queues",
    "legibility": 4,
    "math_basis": [
      "queueing"
    ],
    "maturity": "classic",
    "name": "Service queues",
    "open_questions": [
      "Could generative agents with learned patience models make queues produce more varied and memorable behavior?"
    ],
    "player_experience": "Visible lines are an instant read on capacity. Players add service points, lengthen or shorten queue paths, and redistribute demand, learning from the line itself where the bottleneck is.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "Agents wait in lines for limited-capacity services; waiting time feeds back into satisfaction and throughput.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "the-incredible-machine",
      "earliest_year": 1993,
      "incoming": {
        "used_by": [
          "besiege",
          "factorio",
          "garrys-mod",
          "minecraft",
          "oxygen-not-included",
          "poly-bridge",
          "shapez-2",
          "space-engineers",
          "stationeers",
          "the-incredible-machine",
          "the-powder-toy",
          "timberborn"
        ]
      },
      "prevalence": 12,
      "prevalence_rank": 50,
      "prevalence_share": 0.068,
      "subgenre_spread": 7,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "circuit network",
      "logic wiring",
      "combinators",
      "redstone"
    ],
    "authoring_cost": 1,
    "claims": [
      {
        "confidence": "high",
        "sources": [
          "src-wube-2015-fff-88-combinators"
        ],
        "text": "Factorio introduced arithmetic, decider, and constant combinators on a circuit network where red and green wire signals entering one entity are summed."
      },
      {
        "confidence": "high",
        "sources": [
          "src-wube-2016-fff-122-better-circuit-network"
        ],
        "text": "Factorio developers stated a design principle of not adding dedicated logic, bit, or timer combinator types during the 0.13 circuit network work."
      },
      {
        "confidence": "high",
        "sources": [
          "src-wube-2023-fff-384-combinators-2"
        ],
        "text": "Factorio 2.0 added a selector combinator and decider combinators with multiple AND/OR conditions, multiple outputs, and per-wire input selection."
      }
    ],
    "compute_cost": 2,
    "definition": "The player places wires between entities and logic elements to build control systems inside the world. State owned: the wire graph, signal values on each network, and logic element configuration. Update rule: each tick, sensors and connected entities write signals (item counts, fluid levels, power, conditions) onto their networks; logic elements read input networks and write outputs, often with a one-tick delay; actuators enable or disable themselves or change settings by condition. Canonical form: the Factorio circuit network, where red and green wires carry item-count signals, signals from both wires entering one entity are summed, and arithmetic, decider, and constant combinators operate on them; Factorio 2.0 added a selector combinator and multi-condition deciders. Others: Minecraft redstone, Oxygen Not Included automation wires with sensors and logic gates, Stationeers logic and IC chips, and Mindustry logic processors.",
    "design_levers": [
      "signal type: binary, integer, or multi-channel item vectors",
      "logic primitives provided and whether higher-level elements are deliberately withheld",
      "timing: propagation delay per element and tick order",
      "which entities can read and write signals",
      "debugging aids: signal readouts, wire visualization, element descriptions",
      "physical cost of wires and logic elements"
    ],
    "dynamics": [
      "Turing-complete primitives lead players to build CPUs, displays, and games inside the game.",
      "Demand-driven control (produce only when stock falls) dampens the oscillations and gluts of always-on production.",
      "Shared circuit designs spread as blueprints, coupling this mechanic to community design culture."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Invisible signal values and per-tick delays make circuits hard to debug without readouts.",
      "Circuit control is optional in many games, so most players never engage and designers cannot build challenges around it.",
      "Missing primitives force contraptions for simple tasks, while too many make the logic trivial."
    ],
    "family": "control-automation",
    "feedback": "balancing",
    "id": "signal-circuits",
    "legibility": 3,
    "math_basis": [
      "computation-theory",
      "control-theory"
    ],
    "maturity": "established",
    "name": "Signal circuits",
    "open_questions": [
      "Can a model synthesize circuit layouts from a behavior spec (keep 2,000 plates buffered) and explain existing circuits to newcomers?",
      "What minimal primitive set gives the widest range of player designs without making simple tasks contraptions?"
    ],
    "player_experience": "The player turns a passive factory into one that senses and responds: lamps that show stock, trains that go where they are needed, power that switches on demand. Building memory, timers, or displays from parts feels like engineering, and the most ambitious players build computers inside the game.",
    "player_interface": [
      "programming",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-wube-2015-fff-88-combinators",
      "src-wube-2016-fff-122-better-circuit-network",
      "src-wube-2023-fff-384-combinators-2"
    ],
    "status": "sourced",
    "substrate": [
      "player-authored-logic",
      "network-graph"
    ],
    "summary": "In-world wires, sensors, and logic elements carry signals that read machine state and control machines.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "the-sims",
      "earliest_year": 2000,
      "incoming": {
        "affected_by": [
          "physics-based-character-control"
        ],
        "used_by": [
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4"
        ]
      },
      "prevalence": 4,
      "prevalence_rank": 134,
      "prevalence_share": 0.023,
      "subgenre_spread": 1,
      "technique_count": 1,
      "technique_exposure": 0.125
    },
    "ai_leverage": 3,
    "aliases": [
      "object advertisements",
      "affordance broadcasting"
    ],
    "authoring_cost": 4,
    "compute_cost": 2,
    "definition": "Owns per-object interaction definitions: each interaction carries advertisements (which needs it satisfies and by how much), availability checks, distance attenuation, and the behavior script the agent runs. Agents carry no knowledge of how to use things; when choosing, an agent gathers advertisements from reachable objects, scales them by its needs, personality, and distance, selects one, and runs that object's script. In The Sims, per Forbus and Wright's notes, advertisements cover nine motives, can scale with personality points, attenuate with distance through high, moderate, low, or none presets, and check trees hide unavailable interactions; a toilet advertises 0-70 Bladder. Because behavior lives in objects, new objects add new behaviors without changing agent code, which suits expansion packs and mods. Inputs: objects in range, agent needs. Outputs: candidate actions, need restoration, animations.",
    "design_levers": [
      "advertised magnitude per need and whether it scales with personality or object quality",
      "distance attenuation curve per interaction",
      "advertised versus delivered value, which allows deceptive or broken objects",
      "availability and permission checks such as ownership, age, and room",
      "how many agents one object can serve at once"
    ],
    "dynamics": [
      "Each new object adds behaviors, so the behavior space grows with content packs, which is how The Sims expansions extended play.",
      "Players use objects as lures to route agents, coupling placement to behavior.",
      "Scarce objects create queues and conflicts when several agents select the same one."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "An over-tuned advertisement makes one object a magnet that agents queue for regardless of need.",
      "Assuming honest advertisements breaks when objects fail, producing loops of agents repeatedly using broken objects.",
      "Attenuation errors make agents walk past nearby options to distant ones.",
      "Behavior spread across hundreds of objects is harder to debug than one agent controller."
    ],
    "family": "agents-behavior",
    "feedback": "none",
    "id": "smart-objects",
    "legibility": 4,
    "math_basis": [
      "utility-decision"
    ],
    "maturity": "classic",
    "name": "Smart objects",
    "open_questions": [
      "Can generative models author new objects with consistent advertisements, scripts, and animations, turning content packs into runtime generation?",
      "Should language-model agents read object affordances as numeric advertisements, as text descriptions, or both?"
    ],
    "player_experience": "Buying or placing an object changes what agents want to do, so the player designs behavior through the environment. Players learn that a better object pulls agents across the room and use placement to steer them.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-forbus-2001-programming-objects-sims"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "Objects advertise the need satisfaction they offer, and agents query nearby objects to decide what to do.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "the-sims",
      "earliest_year": 2000,
      "incoming": {
        "affected_by": [
          "generative-agents",
          "realtime-voice-models"
        ],
        "involved_in": [
          "salience-gated-llm-agents"
        ],
        "used_by": [
          "football-manager",
          "prom-week",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "versu"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 3,
      "technique_count": 2,
      "technique_exposure": 1.312
    },
    "ai_leverage": 4,
    "aliases": [
      "social moves",
      "social interactions",
      "social games"
    ],
    "authoring_cost": 4,
    "compute_cost": 2,
    "definition": "Owns a library of social exchange definitions, each with an intent, preconditions on the social state, initiator and responder desire rules, and effects for acceptance and rejection on relationships, statuses, and history. Each cycle an agent scores the exchanges it could start with each other agent, picks one, the responder evaluates acceptance, and the outcome is written to state and history. Comme il Faut in Prom Week defines exchanges with one intent, hard preconditions, initiator and responder influence rule sets, and at least accept and reject instantiations; volition sums the weights of over 5,000 influence rules across 34 statuses and 44 traits. RimWorld rolls chitchat, deep talk, slights, and insults with weights from opinion and compatibility; The Sims 3 defined hundreds of interactions from thousands of production rules (Evans, GDC 2010). Inputs: social state, traits, history. Outputs: relationship and status changes, logged events.",
    "design_levers": [
      "size of the exchange library and intents covered",
      "precondition strictness and which norms or statuses gate moves",
      "volition rule weights for initiators and responders",
      "effect magnitudes for accept and reject outcomes",
      "player control: choose moves, suggest, or only watch"
    ],
    "dynamics": [
      "Logged exchanges become history that later rules reference, so past insults enable future revenge moves.",
      "Status effects spread socially, so one embarrassing exchange changes how a group treats a character.",
      "Exchange outcomes drive relationship values, which change the next exchange's odds, producing escalating arcs."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Small libraries repeat the same exchanges until characters feel scripted.",
      "Rule weights interact unpredictably across thousands of rules, so authors cannot predict outcomes.",
      "Exchanges change numbers without visible performance, so moves feel interchangeable.",
      "Spam: repeating the best-scoring move maxes relationships."
    ],
    "family": "social-relations",
    "feedback": "both",
    "id": "social-exchanges",
    "legibility": 3,
    "math_basis": [
      "utility-decision",
      "social-network"
    ],
    "maturity": "established",
    "name": "Social exchanges",
    "open_questions": [
      "Can language models generate performances and new exchange types on the fly while a symbolic layer keeps preconditions and effects consistent?",
      "Can influence-rule weights be learned from player judgments of plausibility rather than authored?"
    ],
    "player_experience": "The player chooses moves in a social puzzle, or watches agents make them, and learns the norms that make a move land. Rejections and backfires are part of the fun, and players develop social strategies such as softening a target before the big ask.",
    "player_interface": [
      "choice-cards",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "requires": [
      "relationship-values"
    ],
    "sources": [
      "src-mccoy-2014-social-story-worlds",
      "src-evans-2010-sims-3-personalities",
      "src-rimworldwiki-2026-social"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based"
    ],
    "summary": "Discrete social moves such as flirt, insult, or apologize have preconditions on social state and norms, and they update relationships.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "beamng-drive",
      "earliest_year": 2013,
      "incoming": {
        "affected_by": [
          "differentiable-simulation",
          "gaussian-splatting",
          "graph-network-simulators",
          "subspace-neural-physics"
        ],
        "involved_in": [
          "learned-material-surrogates"
        ],
        "used_by": [
          "beamng-drive"
        ]
      },
      "prevalence": 1,
      "prevalence_rank": 198,
      "prevalence_share": 0.006,
      "subgenre_spread": 1,
      "technique_count": 4,
      "technique_exposure": 0.9
    },
    "ai_leverage": 3,
    "aliases": [
      "soft-body physics",
      "node-beam physics",
      "deformable bodies"
    ],
    "authoring_cost": 3,
    "compute_cost": 4,
    "definition": "An object is a network of nodes (point masses) linked by beams (massless springs with damping). Each step every beam applies force from its length deviation and damping, nodes integrate, and collisions push nodes. A beam whose force passes a deform threshold permanently changes its rest length, and one that passes its strength breaks, so parts detach. In BeamNG.drive vehicles are authored in JBeam: nodes have weight, beams have beamSpring (stiffness), beamDamp, beamDeform, and beamStrength. Beams do not resist bending or twisting, so cross braces are needed for rigidity, and stiff beams on light nodes vibrate or explode (the documentation's example stabilizes a structure by raising nodes from 6 kg to 7 kg). Finite-element and position-based methods are alternatives.",
    "design_levers": [
      "node density and placement",
      "beam stiffness and damping per part",
      "deform and break thresholds",
      "physics step rate",
      "which parts are soft and which are rigid or cosmetic",
      "coupling of deformation to function, such as steering or engine damage"
    ],
    "dynamics": [
      "Damage changes handling, which changes driving, which causes more damage.",
      "Crash testing becomes its own play style and community genre.",
      "Deformed tires and suspension couple to grip and vehicle dynamics."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Stiff beams on light nodes vibrate or explode, so every structure needs stability tuning.",
      "CPU cost per vehicle limits how many soft bodies can run at once.",
      "Hand-building node-beam structures for every vehicle is a large authoring cost.",
      "Too-soft settings make solid objects look like jelly."
    ],
    "family": "physics-materials",
    "feedback": "none",
    "id": "soft-body-deformation",
    "legibility": 4,
    "math_basis": [
      "continuum-mechanics",
      "classical-mechanics"
    ],
    "maturity": "experimental",
    "name": "Soft-body deformation",
    "open_questions": [
      "Can node-beam structures be generated automatically from a visual mesh and material labels?",
      "Can learned deformation surrogates run many soft bodies at once on consumer hardware?"
    ],
    "player_experience": "Visceral, readable damage. Crashes crumple metal where they hit, and the damage changes how the vehicle drives. Players experiment with crashes as much as they drive.",
    "player_interface": [
      "embodied-skill",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-beamng-2026-intro-jbeam"
    ],
    "status": "sourced",
    "substrate": [
      "continuous-physics"
    ],
    "summary": "Objects built from mass nodes and spring beams bend, crumple, and break under stress, and deformation persists.",
    "synergy": [
      {
        "id": "vehicle-dynamics",
        "note": "Deforming chassis change handling after impacts (BeamNG.drive)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "hamurabi",
      "earliest_year": 1968,
      "incoming": {
        "used_by": [
          "animal-crossing-new-horizons",
          "dont-starve",
          "factorio",
          "going-medieval",
          "hamurabi",
          "oxygen-not-included",
          "project-zomboid",
          "rimworld",
          "subnautica",
          "the-long-dark"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 1,
    "aliases": [
      "perishables",
      "food rot",
      "freshness"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each perishable item or stack carries a freshness value or age that advances each tick at a rate set by item type and storage conditions; at a threshold it becomes rotten, converts into a spoiled item, or is destroyed. RimWorld stops rot for food kept at or below 0 C, so walk-in freezers are standard; Don't Starve moves food from fresh to stale to spoiled and finally to rot, with ice boxes slowing the clock; Factorio: Space Age gives biological items spoil times from about two hours down to a few minutes, cannot be delayed, turns spoiled items into Spoilage, and passes ingredient freshness on to recipe outputs. Inputs: item type, time, storage environment. Outputs: current freshness, value or effect scaling, and spoil events.",
    "design_levers": [
      "spoil time per item type",
      "storage modifiers such as temperature, containers, and preservation methods",
      "whether freshness is binary (fresh or rotten) or continuous and scales value",
      "what spoiled goods become: nothing, a waste item, or a useful input such as fertilizer",
      "freshness inheritance across recipes"
    ],
    "dynamics": [
      "Shifts optimal play from stockpiling to just-in-time throughput; Factorio's developers state that buffering is not helpful under spoilage.",
      "Cold storage couples food to power and temperature systems, so a power failure becomes a famine risk.",
      "Seasonal harvests plus spoilage create a winter preservation problem.",
      "Freshness-priority handling (pick freshest or oldest first) creates new logistics rules."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Spoilage that is cheap to stop, such as one freezer that halts all decay, becomes a one-time build tax.",
      "Short spoil times on items with long logistics routes make some chains impossible without explanation.",
      "Hidden freshness values make sudden losses feel unfair."
    ],
    "family": "resources-production",
    "feedback": "balancing",
    "id": "spoilage",
    "legibility": 4,
    "math_basis": [
      "system-dynamics"
    ],
    "maturity": "established",
    "name": "Spoilage",
    "open_questions": [
      "What spoil-time distribution across goods produces interesting routing without making long chains infeasible?"
    ],
    "player_experience": "A clock on every stockpile. Players stop hoarding and start thinking in flow: produce close to consumption, build cold storage, preserve food, or accept waste. Opening a storeroom to find a harvest rotted is a sharp, memorable loss.",
    "player_interface": [
      "observation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-wube-2024-fff-414-spoils-of-agriculture"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Perishable goods lose value or rot over time depending on storage conditions such as temperature and containers.",
    "synergy": [
      {
        "id": "storage-capacity",
        "note": "Storage conditions decide spoilage rates, making cold storage valuable."
      }
    ],
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "utopia",
      "earliest_year": 1982,
      "incoming": {
        "involved_in": [
          "natural-language-legislation"
        ],
        "used_by": [
          "balance-of-power",
          "crusader-kings-3",
          "europa-universalis-4",
          "frostpunk-2",
          "hearts-of-iron-4",
          "prison-architect",
          "rebel-inc",
          "songs-of-syx",
          "stellaris",
          "tropico-6",
          "utopia",
          "victoria-3"
        ]
      },
      "prevalence": 12,
      "prevalence_rank": 50,
      "prevalence_share": 0.068,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "unrest",
      "rebellion",
      "revolt meter"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns an unrest or radicalism stock per region, group, or nation. Each period grievances (unmet needs, opposed laws, taxes, war exhaustion, occupation) add to it and suppression (police, garrisons, concessions, propaganda) subtracts. Crossing thresholds triggers escalating events: protests, strikes, riots, rebel spawns, secession, revolution, or game over. Civilization (1991) puts a city into disorder, halting production, when unhappy citizens outnumber happy ones. Europa Universalis IV accumulates rebel progress in provinces with positive unrest until rebels rise. Victoria 3 starts a revolution clock when a political movement's radicalism is high enough that it turns to revolt, and each time the clock fills the revolution advances through events. Frostpunk (2018) ends in revolt when discontent stays too high or hope too low for an extended period.",
    "design_levers": [
      "grievance sources and their weights",
      "suppression tools, their costs, and side effects such as increasing long-term grievance",
      "threshold ladder and escalation speed",
      "spatial scope: per province, per group, or national",
      "warning visibility, such as clocks, meters, and forecasts"
    ],
    "dynamics": [
      "Disorder halts production, which worsens shortages and raises grievances, a death spiral.",
      "Suppression buys time but raises long-term grievances, deferring rather than resolving crises.",
      "Unrest in one region can spread or inspire neighboring regions."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Cheap suppression makes unrest trivial, as with stacking garrisons or police.",
      "Instant revolt at a threshold feels arbitrary without visible warning.",
      "Revolts that only spawn more units to fight turn politics into whack-a-mole combat."
    ],
    "family": "governance-policy",
    "feedback": "reinforcing",
    "id": "stability-unrest",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "markov-stochastic"
    ],
    "maturity": "classic",
    "name": "Stability and unrest",
    "open_questions": [
      "Can agent-based protest dynamics (social contagion, leaders) replace scalar unrest meters while staying readable?",
      "Can LLM-generated demands make movements negotiable rather than just threats to suppress?"
    ],
    "player_experience": "A pressure cooker. The player watches unrest rise, decides whether to concede, suppress, or wait it out, and feels the cost of each option. Thresholds create anxious countdowns and dramatic turning points.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-paradox-2023-vic3-law-enactment",
      "src-wikipedia-frostpunk"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "stochastic-events"
    ],
    "summary": "Grievances accumulate into unrest that triggers protests, strikes, or revolt.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 11,
      "earliest_game": "theme-park",
      "earliest_year": 1994,
      "incoming": {
        "involved_in": [
          "explained-delegation",
          "scientists-not-tech-trees"
        ],
        "used_by": [
          "big-ambitions",
          "euro-truck-simulator-2",
          "football-manager",
          "game-dev-story",
          "game-dev-tycoon",
          "motorsport-manager",
          "out-of-the-park-baseball",
          "planet-coaster",
          "planet-zoo",
          "prison-architect",
          "project-hospital",
          "rollercoaster-tycoon",
          "schedule-i",
          "theme-hospital",
          "theme-park",
          "two-point-hospital",
          "zoo-tycoon"
        ]
      },
      "prevalence": 17,
      "prevalence_rank": 33,
      "prevalence_share": 0.096,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "hiring",
      "roster management",
      "staff management"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a candidate pool and a roster. Each candidate has skills or attributes, traits, and a wage demand; hiring moves them to the roster at a recurring wage. Rostered staff are assigned to rooms, roles, or positions, and their skill sets the speed or quality of work there; fatigue, morale, and pay satisfaction change over time and can trigger rest, raise demands, or quitting. Training spends money and time to raise skills. Theme Hospital (1997) has the player hire doctors, nurses, handymen, and receptionists with performance statistics, train doctors, require specialist skills for rooms such as the operating theatre, send staff to rest, and dismiss staff who argue about pay. Football Manager builds a whole game around player and staff attributes, contracts, and wages, and Two Point Hospital follows Theme Hospital's model.",
    "design_levers": [
      "number of staff types and skill dimensions",
      "candidate pool size, refresh rate, and quality distribution",
      "wage curve relative to skill and how raises are demanded",
      "fatigue, morale, and quitting rules",
      "training cost, duration, and skill ceilings",
      "how much candidate information is hidden until hired or scouted"
    ],
    "dynamics": [
      "Strong staff raise income, which funds better hires, so facilities snowball toward elite rosters.",
      "Fatigue and rest create capacity dips that ripple into queues.",
      "Losing a star employee causes a sudden performance drop and a recovery arc."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "When one stat dominates, hiring becomes sorting a list and staff stop feeling like individuals.",
      "Raise demands that grow too fast make experienced staff a liability and push players to churn employees.",
      "Generic stats without traits make staff interchangeable and remove attachment."
    ],
    "family": "economy-finance",
    "feedback": "reinforcing",
    "id": "staff-hiring",
    "legibility": 4,
    "math_basis": [
      "optimization",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Staff hiring and rosters",
    "open_questions": [
      "Can LLM-generated candidates with backstories, interviews, and evolving workplace relationships make rosters as memorable as authored characters?",
      "What is the smallest set of staff attributes that keeps hiring a real decision?"
    ],
    "player_experience": "Assembling a team. The player compares candidates' stats against their wages, places the best people where they matter most, and nurses tired or unhappy staff. Names and faces make the facility feel staffed by people rather than counters.",
    "player_interface": [
      "choice-cards",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-wikipedia-theme-hospital"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "stochastic-events"
    ],
    "summary": "The player hires individual staff with skills, traits, and wages to operate a facility or team.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "civilization",
      "earliest_year": 1991,
      "incoming": {
        "affected_by": [
          "automated-playtesting"
        ],
        "used_by": [
          "civilization",
          "crusader-kings-3",
          "europa-universalis-4",
          "ftl",
          "hearts-of-iron-4",
          "kenshi",
          "stellaris"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 4,
      "technique_count": 1,
      "technique_exposure": 0.3
    },
    "ai_leverage": 2,
    "aliases": [
      "dice combat",
      "combat resolution tables",
      "strength comparison",
      "auto-resolve"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns, per engaged unit or stack, strength pools (hit points, manpower, organization, morale) and a vector of combat stats, and, per engagement, a round counter and modifiers from terrain, commanders, and supply. Each round, each side's damage is computed from its attack against the opponent's defense, scaled by modifiers and a random draw, and subtracted from the opponent's pools; a side whose morale or organization breaks retreats or is destroyed. Sid Meier's Civilization compares a unit's attack with the defender's defense under terrain and fortification modifiers and a random draw. Europa Universalis IV rolls dice in alternating fire and shock phases modified by general skill and terrain, and morale damage usually ends the battle. Hearts of Iron IV compares divisions' attack against defense or breakthrough, draining organization. FTL rolls each shot against the target's evasion and absorbs shots with shield layers. Unlike military-operations, there are no modeled sensors, signatures, or flight paths; unlike attribute-match-engine, the output is attrition of unit pools rather than a stream of sports events.",
    "design_levers": [
      "stat set: attack and defense only, or separate stats for different damage types and targets",
      "randomness: dice range per round versus deterministic expected values",
      "morale or organization as a separate pool that ends battles before units are destroyed",
      "terrain, river crossing, fortification, and commander modifiers",
      "round length and the number of rounds before a battle resolves",
      "how much of the formula and odds the game previews"
    ],
    "dynamics": [
      "Players optimize army compositions and commanders around the formula, producing a meta that patches revise.",
      "Morale breaking before units die produces retreats and pursuits, giving campaigns a rhythm of decisive and indecisive battles.",
      "Terrain modifiers make certain regions natural defensive lines, shaping fronts and borders."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "One unit composition or stat dominates once players find the formula's best ratio, a recurring issue in strategy communities.",
      "High variance lets a weak unit defeat a much stronger one, which reads as unfair when the odds were not shown.",
      "Opaque modifier stacks make losses impossible to diagnose without community spreadsheets."
    ],
    "family": "conflict-defense",
    "feedback": "reinforcing",
    "id": "stat-combat-resolution",
    "legibility": 3,
    "math_basis": [
      "probability-statistics",
      "markov-stochastic",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Statistical combat resolution",
    "open_questions": [
      "Can generated battle narration explain why a stat-resolved battle went as it did, so players can separate luck from preparation?",
      "Could learned surrogate models of tactical combat give abstract resolution more of the texture of simulated battles at low cost?"
    ],
    "player_experience": "Battles are prepared rather than performed. The player stacks advantages (terrain, a better general, the right unit mix, a fresh army) and then watches the bars move, knowing the dice can still go against them. Reading a combat preview and deciding whether the odds justify an attack is the core skill.",
    "player_interface": [
      "orders",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "stochastic-events",
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Battles between units resolve from attack, defense, morale, terrain, and random rolls in rounds rather than from physics or modeled sensors and weapons.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "simlife",
      "earliest_year": 1992,
      "incoming": {
        "affected_by": [
          "llm-explanation-of-state"
        ],
        "involved_in": [
          "bottleneck-explainer",
          "branch-preview-forecasts",
          "calibrated-serious-sims",
          "causal-why-query",
          "explained-delegation"
        ],
        "used_by": [
          "democracy-4",
          "factorio",
          "football-manager",
          "out-of-the-park-baseball",
          "plague-inc",
          "simlife",
          "species-alre"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 5,
      "technique_count": 1,
      "technique_exposure": 0.3
    },
    "ai_leverage": 3,
    "aliases": [
      "graphs",
      "statistics screens",
      "production statistics",
      "reports"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "The game samples aggregate variables (population, money, production and consumption per item, prices, power, happiness, crime) at fixed intervals into time series and renders them as line graphs, stacked areas, tables, or pies. State owned: ring buffers of samples per variable, usually at several resolutions with older data downsampled. Update rule: each sample period, append the aggregate; when a buffer fills, merge samples into a coarser tier. The player picks variables, windows, and breakdowns. Canonical forms: the SimCity graphs window, Factorio production statistics per item across windows from seconds to hundreds of hours, Transport Tycoon company graphs for income and cargo delivered, Oxygen Not Included's daily colony report, and market price history in EVE Online and Victoria 3.",
    "design_levers": [
      "which variables are logged and at what granularity (per item, per region, per agent class)",
      "time windows and downsampling scheme",
      "comparison views: against rivals, against previous periods, production versus consumption",
      "drill-down from an aggregate line to its contributors",
      "trend-based alerts and export of data"
    ],
    "dynamics": [
      "Visible production and consumption rates make ratio optimization possible, as in finding Factorio bottlenecks from item statistics.",
      "Trend reading supports experimental play: change one policy, watch the curve, revert.",
      "Public price histories in shared markets feed speculation and coordinated trading."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Graphs show a decline but give no path to its cause.",
      "Coarse sampling hides short spikes or aliases oscillations into smooth lines.",
      "Dashboards buried in menus are never opened by most players.",
      "Long high-resolution histories bloat save files."
    ],
    "family": "information-legibility",
    "feedback": "none",
    "id": "stats-dashboards",
    "legibility": 4,
    "math_basis": [
      "probability-statistics",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Stats dashboards",
    "open_questions": [
      "Can natural-language queries over logged history (why did power drop last winter) replace browsing graphs for most players?",
      "Which few variables, logged by default, let players diagnose most failures in a given genre?"
    ],
    "player_experience": "The player steps back from the moment to read trends, confirm a change worked, and spot slow declines that no single frame reveals. A rising curve is its own reward.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "ui-layer",
      "aggregate-stocks"
    ],
    "summary": "Graphs and tables show the recorded history of simulation variables over selectable time windows.",
    "tuning_difficulty": 1,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "project-zomboid",
      "earliest_year": 2011,
      "incoming": {
        "used_by": [
          "project-zomboid",
          "this-war-of-mine"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "noise attraction",
      "sound propagation",
      "aggro by noise",
      "hearing and sight perception"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Owns a set of active stimuli, each with a source position, type (sound, light, smell, sight of the player), intensity, radius, and decay time, plus each agent's perception thresholds and current alert target. When an action fires it emits a stimulus sized by the action (gunshot, smashed window, running, a lit fire); each update, agents within range whose perception exceeds the threshold switch to an investigate state and path toward the source, and some propagate the alert to nearby agents so groups follow. Stimuli fade, and agents that find nothing return to idle or wander. Project Zomboid zombies respond to sight and hearing, and loud actions draw them from a distance; This War of Mine shows noise from scavenging actions that can alert people nearby. Unlike fog-of-war, which hides information from the player, this mechanic models what hostile agents perceive about the player; unlike adaptive-threat-scaling, it changes where threats go, not how strong they are.",
    "design_levers": [
      "emission radius and intensity per action, weapon, and tool",
      "perception thresholds per agent type and modifiers such as weather, time of day, and walls",
      "stimulus decay time and how long agents investigate before giving up",
      "alert propagation between agents, which turns individuals into crowds or hordes",
      "player feedback: visible noise rings, audio cues, or no indication"
    ],
    "dynamics": [
      "Players lure groups away with distractions such as alarms or thrown objects, turning the rule into a tool.",
      "Fighting creates noise that draws more enemies, a reinforcing loop that punishes loud tactics.",
      "Quiet tools and routes become valuable, shaping crafting and travel choices."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Invisible emission rules make attacks feel random when players cannot tell what they did to cause them.",
      "Propagation that is too strong snowballs every mistake into an unwinnable horde.",
      "Agents that ignore walls and distance when following sound feel omniscient and break stealth."
    ],
    "family": "risk-failure",
    "feedback": "reinforcing",
    "id": "stimulus-attraction",
    "legibility": 3,
    "math_basis": [
      "information-theory",
      "probability-statistics"
    ],
    "maturity": "established",
    "name": "Stimulus attraction",
    "open_questions": [
      "Can learned agents that reason about what they heard and saw produce searches that feel smarter without becoming omniscient?",
      "Does visualizing emissions improve player decisions or remove the tension of not knowing what heard you?"
    ],
    "player_experience": "Every action has an audience. The player weighs the speed of smashing a window against the zombies it will call, walks instead of running, and uses noise deliberately as a lure. Mistakes are legible and frightening: a gunshot that brings a crowd teaches the rule at once.",
    "player_interface": [
      "direct-manipulation",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-steam-2026-project-zomboid"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "cellular-grid"
    ],
    "summary": "Player actions emit sound or light stimuli with a radius and decay, and agents that perceive them move toward the source, so managing emissions is part of survival.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "caesar-3",
      "earliest_year": 1998,
      "incoming": {
        "involved_in": [
          "bottleneck-explainer"
        ],
        "used_by": [
          "anno-1800",
          "banished",
          "big-ambitions",
          "caesar-3",
          "captain-of-industry",
          "dwarf-fortress",
          "dyson-sphere-program",
          "factorio",
          "farthest-frontier",
          "frostpunk",
          "going-medieval",
          "kingdoms-and-castles",
          "manor-lords",
          "oxygen-not-included",
          "pharaoh",
          "rimworld",
          "satisfactory",
          "timberborn",
          "workers-and-resources"
        ]
      },
      "prevalence": 19,
      "prevalence_rank": 26,
      "prevalence_share": 0.107,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 1,
    "aliases": [
      "buffers",
      "warehouses",
      "inventory limits",
      "stockpiles"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Storage containers, warehouses, stockpile zones, and machine input or output slots each hold a capacity measured in units, stacks, slots, or volume. Producers push into storage until it is full, then stall; consumers pull from it until it is empty, then starve. Between those limits, buffer level absorbs mismatches in timing. Factorio chests have fixed slot counts and machines hold small input and output buffers; RimWorld stockpile zones accept filtered items in priority order (low, normal, preferred, important, critical) and haulers move items toward higher-priority zones with space; Anno caps each good at an island-wide storage limit that warehouses raise; GlassBox in SimCity (2013) stores everything in capacity-limited resource bins, such as a house holding 20 of 30 food and 4 of 10 people. Inputs: incoming and outgoing flows. Outputs: stock level and full or empty states that gate adjacent processes.",
    "design_levers": [
      "capacity per container and whether it is per good, per slot, or shared",
      "filters and priorities that decide what goes where",
      "behavior when full: stall, overflow to the ground, or discard",
      "local buffers on machines versus central warehouses",
      "storage cost in space, money, or construction"
    ],
    "dynamics": [
      "Buffers absorb shocks such as raids, winters, and broken links, trading space for resilience.",
      "Full buffers propagate backpressure upstream, so one blocked output can stop an entire chain.",
      "Coupled with spoilage, storage becomes a liability instead of a safe stockpile.",
      "Players build overflow sinks or priority splits so critical chains never block."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Very large storage hides every imbalance, so production ratios never matter.",
      "Tiny buffers make chains brittle and turn play into constant stop-and-go.",
      "Full storage stalls without alerts make the cause invisible."
    ],
    "family": "resources-production",
    "feedback": "balancing",
    "id": "storage-capacity",
    "legibility": 4,
    "math_basis": [
      "queueing",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Storage and buffers",
    "open_questions": [
      "Can automatic buffer sizing advisors teach players about backpressure without solving the layout for them?"
    ],
    "player_experience": "Buffers give breathing room and hide problems. Players size storage to survive supply gaps, then discover that a full warehouse has silently stopped a production line. Organizing what goes where becomes its own small design task.",
    "player_interface": [
      "placement",
      "parameter",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-rimworldwiki-2026-stockpile",
      "src-cifaldi-2012-glassbox-engine"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Goods occupy finite storage; buffers decouple producers from consumers, and full storage blocks production.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "facade",
      "earliest_year": 2005,
      "incoming": {
        "affected_by": [
          "genie-world-models",
          "llm-game-master"
        ],
        "involved_in": [
          "content-elastic-events",
          "drama-aware-storyteller"
        ],
        "used_by": [
          "facade",
          "rimworld",
          "versu"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 2,
      "technique_count": 2,
      "technique_exposure": 1.0
    },
    "ai_leverage": 4,
    "aliases": [
      "AI director",
      "AI storyteller",
      "drama manager"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "A director process tracks a pacing signal and runs a cycle that selects incidents from a catalog. Left 4 Dead's AI Director keeps an emotional intensity value per survivor that rises with damage, incapacitation, and nearby infected deaths and decays when not engaged; it cycles through Build Up (full threat until peak intensity), Sustain Peak (3-5 s), Peak Fade, and Relax (30-45 s of minimal spawns), spawns mobs every 90-180 s on Normal, and deals boss events (Tank, Witch, nothing) along the route. RimWorld storytellers weigh colony wealth, colonists, recent deaths or wounds, and time since the last major event; incident chance is a base chance times a population-intent factor, and presets differ (Cassandra escalates in cycles, Phoebe leaves long gaps, Randy is irregular). The director decides when and what; magnitude usually comes from adaptive threat scaling. Outputs: incident firing, spawn populations, item placement, music cues.",
    "design_levers": [
      "pacing signal: per-player intensity, time since last threat, or colony state",
      "phase thresholds and durations for build-up, peak, and relaxation",
      "incident catalog, base weights, and state conditions such as population intent",
      "selectable presets that change cycle shape and randomness",
      "randomness floor and mercy rules after heavy losses"
    ],
    "dynamics": [
      "Pressure and relief cycles create natural story beats that players retell as chapters.",
      "Combined with persistent injuries and permadeath, a poorly timed second incident starts cascades that become memorable runs.",
      "Players manipulate the director's inputs, such as population or wealth, to shape which incidents it can choose."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Fixed cycles become predictable, and players learn to exploit relax windows.",
      "Irregular presets can stack several hard events, which feels unfair when combined with permadeath.",
      "Heavy rubber-banding makes skill feel irrelevant because the director compensates for good play."
    ],
    "family": "narrative-generation",
    "feedback": "balancing",
    "id": "storyteller-director",
    "legibility": 3,
    "math_basis": [
      "control-theory",
      "markov-stochastic",
      "probability-statistics"
    ],
    "maturity": "established",
    "name": "Storyteller director",
    "open_questions": [
      "Can a language-model director author new incidents conditioned on colony state and characters, not just select from a catalog?",
      "Can learned models of player stress from play telemetry replace hand-built intensity formulas?",
      "How should a director balance dramatic pacing against fairness when deaths are permanent?"
    ],
    "player_experience": "Play has a rhythm of pressure and relief that feels authored even though it is generated. Players use calm windows to build and heal, brace when calm runs long, and talk about storytellers as personalities with moods and grudges.",
    "player_interface": [
      "observation",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-booth-2009-ai-systems-l4d",
      "src-rimworldwiki-2026-ai-storytellers",
      "src-wikipedia-left-4-dead"
    ],
    "status": "sourced",
    "substrate": [
      "stochastic-events",
      "rule-system"
    ],
    "summary": "A director AI chooses which events to fire and when, pacing them by a model of tension and the current state.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "dwarf-fortress",
      "earliest_year": 2006,
      "incoming": {
        "used_by": [
          "crusader-kings-3",
          "dwarf-fortress"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "stress",
      "stress levels",
      "psychological stress"
    ],
    "authoring_cost": 2,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-dfwiki-2026-stress"
        ],
        "text": "Dwarf Fortress keeps a hidden stress value from -1,000,000 to +1,000,000 with effects from +10,000, +25,000, and +50,000; emotions add or subtract stress and facets such as bravery, stress vulnerability, and anxiety scale it."
      },
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-crusader-kings-3",
          "src-paradoxwikis-2026-ck3-traits"
        ],
        "text": "In Crusader Kings III, acting against personality traits adds stress that can be lethal, and stress breaks at level 2 or higher can change traits."
      }
    ],
    "compute_cost": 1,
    "definition": "Owns a per-agent stress value with slow decay and a ladder of levels. Each experience adds or removes an amount scaled by personality, and the value relaxes toward zero only slowly, so stress is an integral of history rather than a snapshot of current conditions. Crossing a level triggers a break event, a coping trait, a lasting change in behavior, or death at the extreme. Dwarf Fortress keeps a hidden stress value from -1,000,000 to +1,000,000 with effects from +10,000, +25,000, and +50,000: emotions add or subtract stress, facets such as bravery, stress vulnerability, and anxiety scale it, long-term memories keep adding to it, and high stress leads to tantrums, depression, obliviousness, or insanity. Crusader Kings III adds stress when a character acts against its personality traits, fires mental-break events as stress levels are crossed, lets breaks at level 2 or higher change traits, and can kill at extreme stress, all without a mood meter. It differs from mood-breakdown, whose mood is a near-instant sum of current modifiers, and from memories-thoughts, which owns the event entries that can feed it.",
    "design_levers": [
      "stress per event type and the personality scaling applied to it",
      "decay rate toward zero and whether relief needs active coping (feasts, hobbies, vices)",
      "level thresholds and what each level triggers",
      "break catalog: tantrums, coping traits, personality change, death",
      "visibility of the value, hidden as in Dwarf Fortress or shown as in Crusader Kings III"
    ],
    "dynamics": [
      "A shared tragedy stresses many agents at once, so breaks cluster weeks or months after the event.",
      "Breaks generate new stressors for witnesses, a reinforcing cascade, as in Dwarf Fortress tantrum spirals.",
      "Coping traits acquired through breaks permanently change characters, turning stress history into identity."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Hidden stress makes breakdowns look random, since the cause may be months old.",
      "Slow decay plus frequent stressors leaves a population chronically stressed after one disaster, with no recovery path.",
      "Cheap relief actions such as a feast or a vice reduce stress management to a periodic chore.",
      "Lethal stress at the top of the ladder can end a character or dynasty through bookkeeping rather than drama."
    ],
    "family": "agents-behavior",
    "feedback": "both",
    "id": "stress-accumulation",
    "legibility": 3,
    "math_basis": [
      "system-dynamics",
      "markov-stochastic"
    ],
    "maturity": "established",
    "name": "Stress accumulation",
    "open_questions": [
      "Does showing the stress value make breaks feel fair at the cost of drama, or can partial signals give warning without a meter?",
      "Can language-model agents express accumulated stress in dialogue and behavior before a threshold break, so players see it building?"
    ],
    "player_experience": "The player manages a slow-burning account of bad experiences rather than a moment-to-moment mood: a character can look fine while carrying stress from months ago. In Crusader Kings III this makes roleplay a resource decision, since acting against a character's traits costs stress that must later be shed; in Dwarf Fortress a fortress's past tragedies become a hidden debt that comes due.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-a"
    },
    "sources": [
      "src-dfwiki-2026-stress",
      "src-wikipedia-crusader-kings-3",
      "src-paradoxwikis-2026-ck3-traits"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "agent-based"
    ],
    "summary": "A slow per-agent stress stock integrates negative experiences scaled by personality and, as it crosses levels, triggers breaks or lasting changes.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "poly-bridge",
      "earliest_year": 2015,
      "incoming": {
        "affected_by": [
          "graph-network-simulators"
        ],
        "involved_in": [
          "learned-material-surrogates"
        ],
        "used_by": [
          "going-medieval",
          "poly-bridge",
          "stationeers",
          "teardown",
          "valheim"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 4,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "structural support",
      "stability",
      "load bearing"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Structural elements form a connectivity graph rooted at grounded elements. Three update rules are common. Connectivity only: an element with no path to ground falls, as in Dwarf Fortress cave-ins and in Teardown, where disconnected voxel pieces become physics bodies. Decaying support: support propagates outward and drops by a material-specific amount per connection, and pieces past the limit collapse; Valheim shows this with a color scale from blue (grounded) to red (at the limit) while the hammer is equipped, and stone and core wood carry farther than wood. Load and stress: a physics solve computes member forces and breaks members past their strength, as in Poly Bridge. Collapse removes elements, spawns debris or rigid bodies, and re-checks dependents, which can cascade.",
    "design_levers": [
      "propagation model: connectivity only, per-step decay, or physical stress",
      "per-material strength, maximum span, and support loss per connection",
      "what counts as ground or an anchor",
      "collapse resolution: instant removal, debris, or simulated rigid bodies",
      "visualization of support before failure"
    ],
    "dynamics": [
      "Attackers and players target supports, turning integrity into a combat and demolition system.",
      "Material limits shape architectural styles, such as regular pillars and stone bases in Valheim halls.",
      "Fire, explosions, and digging couple into chained collapses."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Connectivity-only models let large structures stand on a few voxels; reviewers noted Teardown does not model compressive stress.",
      "Per-step decay limits feel arbitrary when they do not match the visual mass of the structure.",
      "Cascading collapse destroys hours of player work with no warning or undo.",
      "Large collapses cause frame-time spikes."
    ],
    "family": "space-construction",
    "feedback": "reinforcing",
    "id": "structural-integrity",
    "legibility": 3,
    "math_basis": [
      "continuum-mechanics",
      "graph-search"
    ],
    "maturity": "established",
    "name": "Structural integrity",
    "open_questions": [
      "Can learned surrogates of finite-element stress make physically plausible load paths affordable in large player-built structures?",
      "What collapse warnings preserve tension without making failure trivial to avoid?"
    ],
    "player_experience": "Building with gravity in mind. Players add pillars, braces, and stronger materials, read the support overlay, and feel tension when extending a span. Collapses are spectacular, and demolition becomes a tactic.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-wikipedia-teardown"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "continuous-physics",
      "rule-system"
    ],
    "summary": "Structures carry support values or loads propagated from the ground, and elements that lose support or exceed their limits collapse.",
    "synergy": [
      {
        "id": "voxel-destruction",
        "note": "Destruction matters when removing a piece can collapse what it supported (Teardown)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "dcs-world",
      "earliest_year": 2008,
      "incoming": {
        "used_by": [
          "dcs-world",
          "elite-dangerous",
          "ftl",
          "kerbal-space-program",
          "space-engineers"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "component damage",
      "system damage",
      "module damage",
      "damage control"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns, per vehicle, a list of components (reactor, engines, shields, weapons, sensors, oxygen, hydraulics, individual blocks or parts), each with integrity, a capacity that depends on integrity, and a repair state. Incoming damage is routed to a component by hit location, a targeting choice, or a random draw; the component's capacity falls in steps or to zero, and the vehicle's derived abilities update at once. Repair restores integrity over time, through crew or damage-control teams, or at a dock. FTL ships are rooms holding systems whose power bars are disabled by hits until crew repair them, and players aim weapons at specific enemy systems. Elite Dangerous tracks integrity per module; Space Engineers functional blocks stop working when damaged below a threshold; Kerbal Space Program parts are destroyed by impact or overheating. Unlike wear-breakdown, damage comes from events rather than use and age; unlike injury-body-model, components are machines with capacities, not organisms with wounds and healing.",
    "design_levers": [
      "component granularity: a few named systems, dozens of modules, or every block or part",
      "damage routing: hit location, player-targeted subsystems, or random allocation",
      "capacity curve: binary loss, stepped loss, or proportional degradation",
      "repair model: crew time, consumable parts, damage-control assignments, or docking only",
      "cascades such as fires, breaches, or power loss that spread damage to other components"
    ],
    "dynamics": [
      "Targeting the opponent's key system first becomes a standard opening, such as disabling weapons or shields.",
      "Damage to one component cascades into others: a lost reactor removes power, a lost oxygen system suffocates crew.",
      "Repair crews and damage control become a resource that competes with combat roles."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Random allocation of critical hits ends fights on a single roll, which reads as unfair.",
      "Fine granularity without clear status displays leaves players unsure which component failed.",
      "Repair that is too fast or free removes the decision; repair that requires a dock makes one hit end a mission."
    ],
    "family": "risk-failure",
    "feedback": "reinforcing",
    "id": "subsystem-damage",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "markov-stochastic"
    ],
    "maturity": "established",
    "name": "Subsystem damage",
    "open_questions": [
      "Can AI opponents choose subsystem targets based on a model of the player's ship and plan rather than fixed priorities?",
      "What granularity of components keeps damage readable during real-time combat?"
    ],
    "player_experience": "Damage is specific and tactical. Losing shields, engines, or oxygen each forces a different response, so the player triages repairs, reroutes power, and targets the enemy's weapons or shields first. A fight can turn on one lucky hit to a key system, and limping home with half a ship working is a story in itself.",
    "player_interface": [
      "orders",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "aggregate-stocks",
      "rule-system",
      "stochastic-events"
    ],
    "summary": "A vehicle or ship is a set of named components with their own integrity, and damage to one removes its capacity, such as power, thrust, shields, or sensors, until it is repaired.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "mule",
      "earliest_year": 1983,
      "incoming": {
        "affected_by": [
          "mean-field-games",
          "simulation-based-inference"
        ],
        "involved_in": [
          "ai-liquidity-in-player-markets",
          "calibrated-serious-sims",
          "human-calibrated-customers",
          "parallel-autobalance"
        ],
        "used_by": [
          "big-pharma",
          "bitburner",
          "elite-dangerous",
          "mule",
          "offworld-trading-company",
          "railroad-tycoon",
          "simcity-2013",
          "this-war-of-mine",
          "victoria-3",
          "workers-and-resources"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 8,
      "technique_count": 2,
      "technique_exposure": 0.287
    },
    "ai_leverage": 2,
    "aliases": [
      "dynamic pricing",
      "market prices"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns a price per good per market, anchored to a base price. Each tick the rule compares demand (consumption, buy orders) with supply (production, stock, sell orders) and raises the price when demand exceeds supply and lowers it otherwise, usually within a band around the base. Common forms are a stock-based price, p = base x f(stock / target stock), and an incremental update, p += k x (demand - supply) / supply. Prices feed back into production profitability and consumption. Victoria 3 (2022) sets each good's national market price from the balance of buy orders from consumption and sell orders from production relative to a base price, scales each state's orders by its market access, and blends local and market prices for poorly connected states. Offworld Trading Company moves prices continuously with every player's purchases and sales.",
    "design_levers": [
      "price sensitivity (gain) and the band around base price",
      "base price per good, which sets the default value hierarchy",
      "whether the player's own trades move prices (price impact)",
      "smoothing, inertia, and update frequency",
      "how far price signals propagate between markets"
    ],
    "dynamics": [
      "High prices attract new producers whose output then pushes prices down, producing cobweb cycles.",
      "Producers crowd into the most profitable good, so profit migrates between goods over time.",
      "Shortages of an input propagate down production chains as price spikes."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "High gain causes price oscillation and boom-bust cycles that players read as random.",
      "When the player's trades do not move prices, a single arbitrage loop can be exploited indefinitely.",
      "Tight bands make prices too sticky to signal shortages; loose bands let goods become worthless."
    ],
    "family": "economy-finance",
    "feedback": "balancing",
    "id": "supply-demand-pricing",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "mechanism-design"
    ],
    "maturity": "classic",
    "name": "Supply-demand pricing",
    "open_questions": [
      "Can demand models calibrated on real market data give games more believable price dynamics without making them unreadable?",
      "How much player price impact keeps markets responsive without enabling degenerate exploits?"
    ],
    "player_experience": "Buy low, sell high, and watch your own trades move the market. The player spots shortages, rushes production to profit from high prices, and sees margins collapse as they and rivals flood the market. Prices become a readout of what the economy lacks.",
    "player_interface": [
      "observation",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-paradox-2021-vic3-national-markets",
      "src-wikipedia-offworld-trading-company"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "Prices adjust to supply and demand, so scarcity raises prices and gluts lower them.",
    "synergy": [
      {
        "id": "trade-routes",
        "note": "Price differentials are what make routes profitable; trade flattens them."
      }
    ],
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "hearts-of-iron-4",
      "earliest_year": 2016,
      "incoming": {
        "used_by": [
          "hearts-of-iron-4",
          "songs-of-syx"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "logistics",
      "supply",
      "encirclement"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Units or outposts draw supply from sources (hubs, depots, capitals, ports) through a connected path of controlled territory, rail, roads, or sea lanes. Each tick, supply delivered falls off with distance and is capped by the weakest link; units below a supply threshold lose strength, organization, or health. Hearts of Iron IV routes supply from the capital by railway to supply hubs, with hub capacity from 15 to 35 by railway level and capped by the weakest link; supply falls off per province from the hub, and attrition starts at 35% supply or less. Unity of Command makes supply range central to its operational puzzle, and Company of Heroes yields resources only from territory connected to the player's base. Inputs: source capacity, network connectivity, distance. Outputs: per-unit supply level and attrition.",
    "design_levers": [
      "falloff curve with distance from source",
      "network carriers: territory, rail, roads, or sea",
      "attrition thresholds and penalties",
      "buffers such as stored supply or foraging",
      "visibility of supply levels and routes"
    ],
    "dynamics": [
      "Encirclement emerges as the main operational goal.",
      "Infrastructure investment becomes a military priority.",
      "Fronts stall when supply limits are hit, producing realistic operational pauses."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Opaque supply calculations make attrition feel arbitrary.",
      "Supply too forgiving makes logistics irrelevant.",
      "Supply too harsh makes offensives impossible and pins the front."
    ],
    "family": "logistics-networks",
    "feedback": "both",
    "id": "supply-lines",
    "legibility": 3,
    "math_basis": [
      "graph-search",
      "network-flow"
    ],
    "maturity": "established",
    "name": "Supply lines",
    "open_questions": [
      "Could an AI opponent that reasons about supply networks produce more convincing operational play than current scripted AIs?"
    ],
    "player_experience": "Strategy at the level of the map. Players plan advances along supply routes, pause to bring up hubs, and seek to cut enemy lines. Encircling an enemy and watching it starve is a strong, systemic win.",
    "player_interface": [
      "orders",
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "sources": [
      "src-paradoxwikis-2026-hoi4-supply"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph"
    ],
    "summary": "Remote units or outposts need a continuous connection to a supply source; cutting the connection causes attrition.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "house-flipper",
      "earliest_year": 2018,
      "incoming": {
        "used_by": [
          "hardspace-shipbreaker",
          "house-flipper",
          "powerwash-simulator"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "cleaning sim",
      "painting tools",
      "coverage tools"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "Each surface carries a coverage mask (a texture or vertex grid) storing remaining dirt, paint, or material per cell, sometimes in several layers with different hardness. The tool casts a footprint with radius, falloff, and strength, and each frame it reduces or adds coverage under the footprint, scaled by distance, angle, and tool type versus layer type. Objects report the percentage done and count as complete past a threshold. PowerWash Simulator has four nozzles with different power and spray width, dirt types (dirt, grime, lichen, moss, rust), surface-specific soaps, progress bars per object and level, and a highlight for remaining dirt. House Flipper uses the same pattern for cleaning and painting walls; Hardspace: Shipbreaker's laser cutter is a cutting variant in which cutting electrical wires or coolant pipes can cause an explosion. Inputs: tool parameters and aim. Outputs: coverage state and completion events tied to payment.",
    "design_levers": [
      "tool footprint size, strength, and falloff",
      "layer types and which tools or consumables work on them",
      "completion threshold per object",
      "remaining-coverage highlighting and other assists",
      "texture resolution of the coverage mask",
      "tool upgrades and their price"
    ],
    "dynamics": [
      "Players develop efficient sweep patterns, a real coverage-path optimization.",
      "Tool upgrades change which strategy is efficient, renewing early levels on replay.",
      "Completion feedback rewards perfectionism, which is the core motivation loop."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "High completion thresholds turn the last few percent into a hunt for invisible specks; PowerWash Simulator added a highlight for this.",
      "Weak tools or huge areas make sessions drag.",
      "Consumables with unclear benefits feel pointless; reviewers criticized PowerWash Simulator's soap system."
    ],
    "family": "operation-procedure",
    "feedback": "none",
    "id": "surface-work-tools",
    "legibility": 5,
    "math_basis": [
      "optimization"
    ],
    "maturity": "emerging",
    "name": "Surface work tools",
    "open_questions": [
      "Can generative texture models produce varied dirt and wear layouts on arbitrary scanned objects to cut level-authoring cost?",
      "Which feedback cues sustain the relaxation loop across long sessions?"
    ],
    "player_experience": "Calm, absorbing, visibly productive work. Players sweep a tool across grime and watch clean surface appear, chase the last stubborn patches, and feel satisfied when an object pings complete. The appeal is relaxation and order, not challenge.",
    "player_interface": [
      "embodied-skill",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-wikipedia-powerwash-simulator",
      "src-wikipedia-hardspace-shipbreaker"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "continuous-physics"
    ],
    "summary": "The player applies a tool to surfaces to clean, paint, or strip them, and a per-surface coverage state shows visible progress toward completion.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 8,
      "earliest_game": "oregon-trail",
      "earliest_year": 1971,
      "incoming": {
        "used_by": [
          "big-ambitions",
          "dont-starve",
          "hardspace-shipbreaker",
          "kenshi",
          "minecraft",
          "oregon-trail",
          "project-zomboid",
          "space-engineers",
          "stationeers",
          "subnautica",
          "the-long-dark",
          "valheim",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 13,
      "prevalence_rank": 45,
      "prevalence_share": 0.073,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "hunger clock",
      "food clock",
      "vital stats"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a few bounded stocks on the avatar or party, such as hunger, thirst, body temperature, fatigue, and sometimes sanity or calories. Each tick each stock falls at a base rate modified by activity, weather, and clothing; eating, drinking, resting, or standing near heat restores it. At zero or past a threshold the stock drains health, applies penalties, or kills. Don't Starve uses a default maximum hunger of 150 that drains 75 per game day, and at zero health drains 1.25 per second; The Long Dark tracks calories, body temperature, fatigue, and hunger against cold nights and weather; The Oregon Trail asks each round how much food to eat and kills the party through starvation, cold, or untreated illness. Roguelikes such as Rogue and NetHack use a food clock. Inputs are time, environment, and consumption; outputs are health drain and penalties.",
    "design_levers": [
      "which meters exist and which are lethal versus only penalizing",
      "base drain rates and modifiers from activity, temperature, and gear",
      "restoration value of each consumable and its availability in the world",
      "consequence at zero: health drain rate, penalties, or instant death",
      "difficulty presets that scale drain and resource scarcity"
    ],
    "dynamics": [
      "Low meters reduce the ability to gather, which accelerates decline into a death spiral.",
      "Meters couple the avatar to weather, day-night temperature, and cooking or crafting systems.",
      "Players build bases and routes around reliable sources of food, water, and heat."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Fast drain with scarce restoration forces repetitive eating and drinking that crowds out exploration.",
      "Abundant food trivializes meters by midgame, so they become noise.",
      "Several meters with overlapping warnings overload attention without adding decisions."
    ],
    "family": "biology-health",
    "feedback": "both",
    "id": "survival-meters",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "control-theory"
    ],
    "maturity": "classic",
    "name": "Survival meters",
    "open_questions": [
      "Can drain rates adapted by a learned player model keep survival pressure steady from early to late game without feeling rubber-banded?"
    ],
    "player_experience": "Constant pressure to keep moving. The player plans every trip around food, water, and warmth, weighs risky exploration against returning to safety, and feels relief at a full stomach by a fire. The meters make the world feel hostile and give mundane items life-or-death value.",
    "player_interface": [
      "observation",
      "direct-manipulation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-dontstarvewiki-2026-hunger",
      "src-wikipedia-the-long-dark",
      "src-wikipedia-oregon-trail-1971"
    ],
    "specializes": "needs-decay",
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "The avatar's bodily stocks such as hunger, thirst, warmth, and fatigue deplete over time and, if unmanaged, drain health and kill.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "affected_by": [
          "llm-agent-societies"
        ],
        "used_by": [
          "caesar-3",
          "cities-skylines-2",
          "civilization",
          "democracy-4",
          "eco",
          "foundation",
          "kingdoms-and-castles",
          "manor-lords",
          "pocket-city",
          "project-sid",
          "simcity-1989",
          "simcity-2000",
          "simcity-4",
          "victoria-3"
        ]
      },
      "prevalence": 14,
      "prevalence_rank": 42,
      "prevalence_share": 0.079,
      "subgenre_spread": 6,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 2,
    "aliases": [
      "tax rate",
      "tax policy"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns one or more tax rates (global, by zone type, by class, or by good) and converts a tax base into revenue each accounting period, while applying a growth or satisfaction penalty that rises with the rate. In Micropolis, the SimCity engine, revenue = population x average land value / 120 x tax rate x a difficulty factor; the rate (0-20%) indexes a table that offsets all three RCI demand valves by +200 at 0%, 0 at 7%, and -600 at 20% on the easiest level, enters the citizens' problem list as rate x 10, and is subtracted from the city score. SimCity 2000 lets players set separate residential, commercial, and industrial rates. Democracy 4 ties tax policies to voter-group happiness and makes very high taxes cause evasion. Victoria 3 derives the tax base from a taxation law and lets the player set an overall tax level.",
    "design_levers": [
      "tax base (population, land value, income, trade, goods) and how many separate rates exist",
      "shape of the penalty curve (linear, threshold, accelerating) and where the neutral rate sits",
      "lag between a rate change and its effect on growth or approval",
      "avoidance responses such as evasion, emigration, or capital flight",
      "who bears the tax and which groups react"
    ],
    "dynamics": [
      "Revenue funds services that grow the tax base while high rates suppress growth, so a revenue-maximizing rate emerges.",
      "Different rates by zone or class let players steer development, such as cutting industrial taxes to attract jobs.",
      "Tax hikes during a crisis can trigger emigration that shrinks the base and deepens the deficit."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "A fixed neutral point (Micropolis' 7%) becomes a memorized constant, so the lever is set once and forgotten.",
      "When revenue uses the rate at the moment of collection, as in Micropolis, players can keep taxes low most of the year and raise them just before collection.",
      "A single global rate removes distributional choices and the politics around them."
    ],
    "family": "economy-finance",
    "feedback": "both",
    "id": "taxation",
    "legibility": 4,
    "math_basis": [
      "system-dynamics",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Taxation",
    "open_questions": [
      "Could AI-simulated households and firms respond to tax changes with realistic avoidance and migration, making tax design a policy puzzle rather than one slider?",
      "How should tax effects be lagged so the tradeoff is felt without enabling raise-before-collection exploits?"
    ],
    "player_experience": "Turning a dial between money now and growth later. The player raises taxes to fund services or pay debts, then watches demand or approval sag and searches for the rate the economy will bear.",
    "player_interface": [
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "requires": [
      "budget-treasury"
    ],
    "sources": [
      "src-hopkins-2008-micropolis",
      "src-wikipedia-simcity-2000",
      "src-wikipedia-democracy-4"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks"
    ],
    "summary": "Player-set tax rates convert economic activity into revenue at the cost of growth, happiness, or competitiveness.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 12,
      "earliest_game": "civilization",
      "earliest_year": 1991,
      "incoming": {
        "affected_by": [
          "generalist-game-agents",
          "model-based-planning-muzero",
          "voyager-skill-libraries"
        ],
        "involved_in": [
          "generated-recipe-graphs",
          "parallel-autobalance",
          "scientists-not-tech-trees"
        ],
        "used_by": [
          "against-the-storm",
          "anno-117",
          "aurora-4x",
          "autonauts",
          "big-pharma",
          "capitalism",
          "captain-of-industry",
          "cities-skylines-2",
          "civilization",
          "crusader-kings-3",
          "dyson-sphere-program",
          "eco",
          "europa-universalis-4",
          "factorio",
          "farthest-frontier",
          "frostpunk",
          "frostpunk-2",
          "game-dev-tycoon",
          "going-medieval",
          "hearts-of-iron-4",
          "jurassic-world-evolution",
          "kenshi",
          "kerbal-space-program",
          "mindustry",
          "minecraft",
          "offworld-trading-company",
          "oxygen-not-included",
          "plague-inc",
          "planet-coaster",
          "planet-zoo",
          "prison-architect",
          "rollercoaster-tycoon",
          "satisfactory",
          "screeps",
          "shapez-2",
          "stellaris",
          "surviving-mars",
          "the-farmer-was-replaced",
          "theme-hospital",
          "theme-park",
          "two-point-hospital",
          "victoria-3",
          "zoo-tycoon"
        ]
      },
      "prevalence": 43,
      "prevalence_rank": 4,
      "prevalence_share": 0.243,
      "subgenre_spread": 13,
      "technique_count": 3,
      "technique_exposure": 0.3
    },
    "ai_leverage": 3,
    "aliases": [
      "research tree",
      "technology tree",
      "research"
    ],
    "authoring_cost": 3,
    "claims": [
      {
        "confidence": "medium",
        "sources": [
          "src-wikipedia-technology-tree"
        ],
        "text": "A technology tree is a directed acyclic graph; Francis Tresham's 1980 board game Civilization is generally credited with introducing it, and Sid Meier's Civilization (1991) is the iconic video game example."
      },
      {
        "confidence": "high",
        "sources": [
          "src-paradox-2015-stellaris-dev-diary-11"
        ],
        "text": "Stellaris replaces a fixed tree with three semi-random research options per area, weighted by empire ethics, scientist traits, and known techs, plus rare techs and procedurally generated improvement techs."
      }
    ],
    "compute_cost": 1,
    "definition": "Technologies are nodes in a directed acyclic graph; each has prerequisites, a research cost, and unlocks. State owned: which techs are researched, current research progress, and queued research. Update rule: each tick or turn, research output (from labs, scientists, or consumed science items) accumulates toward the selected tech; when it reaches the cost, the tech is researched and its unlocks apply. Variants: complete trees where everything is reachable (Civilization), branching trees with exclusive choices, and weighted random draws (Stellaris). Francis Tresham's 1980 board game Civilization is generally credited with introducing the tree, and Sid Meier's Civilization (1991) carried it into video games. Factorio consumes science packs as research input; Stellaris offers three semi-random options per research area, weighted by ethics, scientist traits, and known techs.",
    "design_levers": [
      "graph shape: linear, branching, web, or random draws",
      "cost curve per tier",
      "research input: abstract points, science items, or scientists",
      "exclusivity: mutually exclusive branches versus all reachable",
      "repeatable infinite techs for the late game",
      "visibility of future nodes"
    ],
    "dynamics": [
      "Research pace couples to the economy, so economic snowballing compounds into technological leads.",
      "Exclusive branches create faction or playstyle identity and replay value.",
      "In factory games, science items make research a production target, linking progression to logistics throughput."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "A dominant path that every player follows removes strategic choice.",
      "Late-tree techs that do nothing useful leave research facilities idle; some players dismantle labs to save upkeep.",
      "Top techs so strong that the game ends quickly once they are researched, as with the final technologies in Rise of Nations.",
      "Fully random draws frustrate players who plan, since a needed tech may not appear."
    ],
    "family": "progression-goals",
    "feedback": "reinforcing",
    "id": "tech-tree",
    "legibility": 4,
    "math_basis": [
      "graph-search",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Tech tree",
    "open_questions": [
      "Can a tech tree be generated from the simulation's own physics or chemistry so that research discovers real affordances rather than authored unlocks?",
      "Can RL agents search tree costs and structures for balance faster than human playtesting?"
    ],
    "player_experience": "A visible map of future capability. The player plans paths, makes long bets on branches, anticipates key unlocks, and feels progress as a chain of small upgrades toward transformative ones.",
    "player_interface": [
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [
      "src-wikipedia-technology-tree",
      "src-paradox-2015-stellaris-dev-diary-11"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "rule-system"
    ],
    "summary": "A research or unlock graph gates buildings, recipes, or abilities behind prerequisites and accumulated research.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "populous",
      "earliest_year": 1989,
      "incoming": {
        "used_by": [
          "animal-crossing-new-horizons",
          "captain-of-industry",
          "equilinox",
          "from-dust",
          "going-medieval",
          "planet-coaster",
          "populous",
          "rollercoaster-tycoon",
          "simcity-2000",
          "simcity-4",
          "simearth",
          "simlife",
          "spore",
          "terra-nil",
          "timberborn",
          "tiny-glade",
          "transport-tycoon",
          "universe-sandbox",
          "viva-pinata"
        ]
      },
      "prevalence": 19,
      "prevalence_rank": 26,
      "prevalence_share": 0.107,
      "subgenre_spread": 10,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "landscaping",
      "terrain editing",
      "raise and lower land"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Terrain is a height field, often with surface material and water layers. A brush raises, lowers, levels, smooths, or paints cells under the cursor; slope limits propagate the edit to neighbors, and a cost is charged per cell or per volume moved. Downstream systems read the new heights: buildability, water flow, pathing, and views. In Populous (1989) raising and lowering land is the basic divine power, used mainly to give followers flat land for houses, which grows followers and mana. SimCity 2000 and RollerCoaster Tycoon charge money for land edits. Planet Coaster uses voxel terrain that also allows tunnels and overhangs. From Dust moves sand, water, and lava as simulated materials rather than as height edits.",
    "design_levers": [
      "brush shapes and sizes",
      "slope limits and how edits spread to neighbors",
      "cost per cell or per volume, and whether material must be conserved",
      "whether terraforming is available in play or only in an editor",
      "how water, pathing, and buildings respond to edited terrain"
    ],
    "dynamics": [
      "In Populous, flattening land leads to more houses, more followers, and more mana for more powers, a reinforcing loop.",
      "Coupled with hydrology, terrain edits create dams, floods, and reservoirs.",
      "Terraforming against an opponent, such as sinking their land, turns it into a weapon."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Cheap unlimited terraforming flattens the map and removes terrain as a design constraint.",
      "Edits silently break water flow or paths and cause floods or stranded buildings.",
      "Fiddly brush controls make precise shaping tedious."
    ],
    "family": "space-construction",
    "feedback": "none",
    "id": "terraforming",
    "legibility": 4,
    "math_basis": [
      "cellular-automata"
    ],
    "maturity": "classic",
    "name": "Terraforming",
    "open_questions": [
      "Can semantic terrain brushes (\"carve a canyon here\") backed by generative terrain models keep edits predictable?",
      "How should material conservation be enforced so terraforming stays a resource decision rather than free sculpting?"
    ],
    "player_experience": "Shaping the world directly. Players prepare sites, carve scenery, and sometimes wield terrain as a weapon. The pleasure is tactile and godlike; the constraint is cost and the knock-on effects on water and access.",
    "player_interface": [
      "direct-manipulation",
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-wikipedia-populous",
      "src-wikipedia-planet-coaster"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid"
    ],
    "summary": "The player raises, lowers, flattens, or repaints terrain, usually at a cost, to make land usable or to reshape water and paths.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "snowrunner",
      "earliest_year": 2020,
      "incoming": {
        "used_by": [
          "farming-simulator-25",
          "snowrunner"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "mud physics",
      "deformable terrain",
      "ruts"
    ],
    "authoring_cost": 2,
    "compute_cost": 3,
    "definition": "Ground is a height field with a soft-material layer. Contacts displace material by pressure, wheel slip, and softness; the displaced height persists and changes contact and traction on later passes. In Spintires: MudRunner, according to its lead developer Pavel Zagrebelny, terrain is a regular vertex grid displaced by a height map and covered by a mud layer that artists paint, with a second higher-resolution grid for the mud; when a wheel is in mud or spins too fast, the game computes forces approximating mud physics, and mud displacement runs entirely on the GPU. SnowRunner (2020) extends the approach to snow. Many games deform terrain cosmetically, leaving tracks that do not affect physics.",
    "design_levers": [
      "material softness and depth by terrain type",
      "rut depth, persistence, and recovery over time",
      "coupling strength between ruts and traction",
      "simulation resolution and whether it runs on the GPU",
      "how deformation is synchronized in multiplayer"
    ],
    "dynamics": [
      "Spinning wheels dig deeper and lose traction, a stuck spiral that rewards slow throttle and winching.",
      "Earlier vehicles' ruts change the route for convoy members that follow.",
      "Weather that softens ground couples terrain deformation to route planning."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Cosmetic deformation that does not affect handling creates a mismatch between what players see and feel.",
      "Permanent deep ruts can make a route impassable for the rest of a session.",
      "Deformation state is large and hard to keep synchronized across networked players."
    ],
    "family": "physics-materials",
    "feedback": "reinforcing",
    "id": "terrain-deformation",
    "legibility": 4,
    "math_basis": [
      "continuum-mechanics"
    ],
    "maturity": "established",
    "name": "Terrain deformation",
    "open_questions": [
      "Can learned granular-material models make mud, sand, and snow respond more physically at game frame rates?"
    ],
    "player_experience": "Struggle and patience. Players read the ground, pick lines, rock the vehicle, and winch out. Every crossing feels earned, and the track left behind tells the story of the trip.",
    "player_interface": [
      "embodied-skill"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-80lv-2019-mudrunner-console-port"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "continuous-physics"
    ],
    "summary": "Wheels, feet, and impacts displace soft ground such as mud and snow, and the persistent ruts change traction for later passes.",
    "synergy": [
      {
        "id": "vehicle-dynamics",
        "note": "Ruts and mud change traction, making route reading a skill (SnowRunner)."
      }
    ],
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "civilization",
      "earliest_year": 1991,
      "incoming": {
        "used_by": [
          "civilization",
          "crusader-kings-3",
          "europa-universalis-4",
          "hearts-of-iron-4",
          "stellaris",
          "victoria-3"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 2,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "province ownership",
      "occupation and annexation",
      "claims and integration",
      "coring"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns, per map region (province, county, state, star system, city), an owner, a controller, and an integration state such as core, claim, incorporated, or newly conquered, plus claims that other factions hold on it. Military presence or a completed siege sets the controller; ownership changes only through a peace settlement, inheritance, purchase, or capture rule; and a newly owned region ramps from low to full integration over time or for a price, yielding less and generating more unrest until then. Europa Universalis IV separates owner from controller, makes new provinces costly to core with administrative power, and counts uncored land toward overextension, which raises unrest. Crusader Kings III ties counties to titles and de jure claims and adds a county control value that drops after conquest. Victoria 3 incorporates states over time; Hearts of Iron IV separates core from occupied states; Stellaris takes systems by building outposts and spends influence on claims against rivals. Unlike faction-diplomacy, which owns relations between factions, this mechanic owns who holds each piece of the map.",
    "design_levers": [
      "separation of owner and controller, and what occupation alone grants",
      "integration path: time, a currency such as administrative power or influence, or culture and religion matching",
      "penalties for unintegrated land: reduced output, unrest, overextension, or rebel spawns",
      "claim types and how claims are created, fabricated, inherited, or expire",
      "region granularity: provinces, counties, states, systems, or cities"
    ],
    "dynamics": [
      "Conquest snowballs because new land adds resources and manpower, while integration costs and unrest apply the brake.",
      "Claims and de jure boundaries steer wars toward historically plausible borders.",
      "Occupation without ownership creates leverage for peace negotiations, coupling the map to war score."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Integration costs too low make snowballing conquest the only strategy; too high and expansion stops being worth it.",
      "Border gore and fragmented holdings from inheritance or peace deals become tedious to manage without consolidation tools.",
      "Players treat the map as a coloring exercise and ignore the systems that integration was meant to engage."
    ],
    "family": "conflict-defense",
    "feedback": "both",
    "id": "territorial-control",
    "legibility": 3,
    "math_basis": [
      "game-theory",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Territorial control",
    "open_questions": [
      "Could AI factions that reason about claims and integration costs expand in ways players read as purposeful rather than greedy?",
      "What integration model keeps conquest consequential without becoming a waiting timer?"
    ],
    "player_experience": "Expansion has a shape and a hangover. The player plans conquests around claims, watches borders shift as sieges complete, then spends years digesting new land before it pays off. The map itself becomes the scoreboard, and an overstretched realm with restless new provinces is a visible warning to slow down.",
    "player_interface": [
      "orders",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "network-graph",
      "rule-system",
      "aggregate-stocks"
    ],
    "summary": "Map regions have an owner and a current controller; occupation flips control in war, and peace, purchase, or integration transfers ownership at a cost in time, unrest, or political currency.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "railroad-tycoon",
      "earliest_year": 1990,
      "incoming": {
        "used_by": [
          "factorio",
          "planet-coaster",
          "railroad-tycoon",
          "rollercoaster-tycoon",
          "transport-tycoon"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 3,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "rail building",
      "coaster track building",
      "track construction"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a set of track pieces joined end to end, each with a type (straight, curve, slope, switch, bridge, tunnel, or special element such as a loop), an entry and exit position and heading, and a cost. Construction extends an open endpoint with a piece whose entry matches it; the game checks grade and curvature limits, terrain clearance, and collisions with other structures, then charges a cost that depends on terrain (slopes, water, demolition) and piece type. Railroad Tycoon and Transport Tycoon lay track on a tile grid, with slopes, bridges, and tunnels in Transport Tycoon; RollerCoaster Tycoon builds coasters piece by piece on a tile grid by direction, height, steepness, and elements such as loops and corkscrews; Planet Coaster adds spline editing; Factorio places straight and curved rail pieces. Outputs: a track graph that vehicles traverse, used by scheduling, signaling, and ride rating. Unlike free-placement, the unit of building is a connected chain rather than a footprint; unlike road-network, it owns segment geometry and its constraints rather than building connectivity; unlike modular-assembly, the result is a path.",
    "design_levers": [
      "grade and curve radius limits and their effect on vehicle speed",
      "terrain cost model for slopes, water, tunnels, and demolition",
      "piece set: fixed tiles, free splines, or both",
      "auto-routing tools that pick a path between endpoints",
      "special pieces such as switches, loops, lifts, and brakes"
    ],
    "dynamics": [
      "Terrain shapes networks and rides: lines follow valleys, and coasters use hills for drops.",
      "Junction and switch layouts couple track design to signaling and throughput.",
      "Track geometry feeds ride ratings and train speeds, so building quality shows up in revenue."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Tile-locked pieces make every layout look the same; free splines without snapping make clean joins hard.",
      "Construction controls that need many precise clicks per segment make building tedious.",
      "Costs too low make terrain irrelevant, so lines ignore the landscape."
    ],
    "family": "space-construction",
    "feedback": "none",
    "id": "track-laying",
    "legibility": 4,
    "math_basis": [
      "optimization",
      "combinatorics"
    ],
    "maturity": "classic",
    "name": "Track laying",
    "open_questions": [
      "Can route-finding assistants that propose track under grade and cost constraints keep the craft while removing click work?",
      "Could generative models propose coaster layouts that hit target ratings for players to refine?"
    ],
    "player_experience": "Drawing a line through the world under constraints. Players hunt for the gentle grade around a hill, decide whether a bridge is worth its price, and fit a coaster's drops and turns into a cramped park. A clean line that vehicles run smoothly on is a craft object players admire and share.",
    "player_interface": [
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "cellular-grid",
      "rule-system"
    ],
    "summary": "The player builds rail or coaster track segment by segment under grade, curvature, terrain, and cost constraints, and vehicles then run on the resulting path.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "elite",
      "earliest_year": 1984,
      "incoming": {
        "involved_in": [
          "agent-ambassadors-async"
        ],
        "used_by": [
          "against-the-storm",
          "anno-117",
          "anno-1800",
          "banished",
          "caesar-3",
          "captain-of-industry",
          "dwarf-fortress",
          "elite",
          "elite-dangerous",
          "europa-universalis-4",
          "farthest-frontier",
          "foundation",
          "manor-lords",
          "pharaoh",
          "songs-of-syx",
          "tropico-6",
          "workers-and-resources"
        ]
      },
      "prevalence": 17,
      "prevalence_rank": 33,
      "prevalence_share": 0.096,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "trade lanes",
      "caravans",
      "import and export"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Owns a set of routes, each linking a source market to a destination market for a good, with a volume level or capacity, a transport cost or transit time, and tariffs. Each period profit per unit = destination price - source price - transport cost - tariffs; volume grows when profitable and shrinks when not, which narrows the price gap. In Victoria 3 (2022) routes start at level 1 and change level weekly mainly by profitability, purchase and sale prices are the midpoints of each market's pre- and post-trade prices, tariffs are charged per unit on the base price, sea routes depend on convoys, and each route has a fixed bureaucracy cost that replaced an earlier cap on route count. Civilization's caravans set up routes whose income depends on distance and the cities involved, and Railroad Tycoon pays for delivering goods to stations that demand them.",
    "design_levers": [
      "how volume responds to profit (player-set, automatic growth, or capped by vehicles)",
      "transport cost model (distance, time, convoys, ships)",
      "tariffs, trade agreements, embargoes, and their calculation basis",
      "fixed costs per route versus per-unit costs, which decide whether many small or few large routes win",
      "how much information about remote prices the player gets"
    ],
    "dynamics": [
      "Arbitrage narrows price gaps, so the most profitable routes erode over time.",
      "Trade makes markets interdependent, so a war or blockade in one region causes shortages elsewhere.",
      "Per-unit tariffs on base price hurt high-volume, low-margin routes most, shaping which goods are traded."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Static price gaps that trade does not close create permanent money loops.",
      "With no fixed cost per route, many tiny routes become optimal and flood the interface.",
      "Automated routes that never fail or need attention become set-and-forget income."
    ],
    "family": "economy-finance",
    "feedback": "balancing",
    "id": "trade-routes",
    "legibility": 3,
    "math_basis": [
      "network-flow",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Trade routes",
    "open_questions": [
      "Can AI merchant agents discover and contest routes on their own, giving players competition for arbitrage instead of a static spreadsheet?",
      "What route cost structure keeps trade decisions meaningful without micromanagement?"
    ],
    "player_experience": "Connecting surplus to scarcity. The player finds where a good is cheap and where it is dear, opens routes, and watches the gap close as the trade succeeds. Tariffs, embargoes, and blockades make trade a lever in diplomacy and a target in war.",
    "player_interface": [
      "orders",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m2"
    },
    "sources": [
      "src-paradox-2022-vic3-trade-revisions",
      "src-wikipedia-railroad-tycoon"
    ],
    "status": "sourced",
    "substrate": [
      "network-graph",
      "aggregate-stocks"
    ],
    "summary": "Goods are exchanged between settlements, regions, or foreign markets along routes with price differences, tariffs, and transit time.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "affected_by": [
          "massively-parallel-simulation",
          "mean-field-games",
          "simulation-based-inference"
        ],
        "involved_in": [
          "calibrated-serious-sims",
          "mean-field-crowds",
          "participatory-planning-sandboxes"
        ],
        "used_by": [
          "cities-skylines",
          "cities-skylines-2",
          "simcity-1989",
          "simcity-2000",
          "simcity-2013",
          "simcity-4"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 1,
      "technique_count": 3,
      "technique_exposure": 0.45
    },
    "ai_leverage": 3,
    "aliases": [
      "traffic",
      "congestion",
      "gridlock"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "Trips generated by zones or agents travel over a road network; each segment has a capacity, and travel time rises as volume approaches or exceeds it. Micropolis, the released SimCity engine, has no vehicles: a zone tries a random walk of up to 30 steps along roads until it is adjacent to a destination zone of the required type, and success adds 50 to the traffic density at saved points on the path. Density decays each scan by 34 above 200 and by 24 above 24, and is otherwise reset to zero. Cities: Skylines simulates individual vehicles on lanes. Cities: Skylines II agents choose routes by a combined cost of time, comfort, money, and behavior, spread across lanes, and can be stopped by accidents checked per segment. Inputs: trips, network capacity, route choice. Outputs: per-segment volume, travel times, and delays to services.",
    "design_levers": [
      "capacity per lane or road type",
      "route choice model: random walk, shortest path, or cost-based with re-routing",
      "trip generation rate and timing",
      "consequences: lower desirability, delayed services, or lost deliveries",
      "stuck-vehicle handling such as despawning"
    ],
    "dynamics": [
      "Induced demand: new capacity attracts more trips.",
      "Congestion delays emergency services, so fires spread and crime rises.",
      "Players build hierarchies and transit to shift demand."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Vehicles that crowd into one lane while parallel lanes sit empty, a common complaint about the first Cities: Skylines, produce jams that better road design cannot fix.",
      "Despawning stuck vehicles, as the first Cities: Skylines does by default, hides real congestion problems.",
      "Opaque route choices make traffic feel random."
    ],
    "family": "logistics-networks",
    "feedback": "both",
    "id": "traffic-congestion",
    "legibility": 2,
    "math_basis": [
      "network-flow",
      "graph-search",
      "queueing"
    ],
    "maturity": "classic",
    "name": "Traffic congestion",
    "open_questions": [
      "Could learned driving policies trained on real traffic data make in-game congestion match real-world patterns at city scale?",
      "What level of traffic fidelity improves design decisions rather than just spectacle?"
    ],
    "player_experience": "Watching gridlock form. Players see jams, trace them to bad intersections or missing routes, and redesign. Congestion is the most visible symptom of a city's structure, and fixing one jam often moves it elsewhere.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "requires": [
      "road-network"
    ],
    "sources": [
      "src-hopkins-2008-micropolis",
      "src-paradox-2023-cs2-traffic-ai"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "network-graph",
      "cellular-grid"
    ],
    "summary": "Trips route over a capacitated network; volume beyond capacity raises travel time and delays services and deliveries.",
    "tuning_difficulty": 4,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 5,
      "earliest_game": "simlife",
      "earliest_year": 1992,
      "incoming": {
        "affected_by": [
          "continuous-alife-and-asal"
        ],
        "involved_in": [
          "open-ended-evolution-sandbox",
          "trainable-creatures-revival"
        ],
        "required_by": [
          "natural-selection"
        ],
        "used_by": [
          "creatures",
          "crusader-kings-3",
          "fallout-shelter",
          "planet-zoo",
          "simlife",
          "species-alre",
          "the-sims-2"
        ]
      },
      "prevalence": 7,
      "prevalence_rank": 85,
      "prevalence_share": 0.04,
      "subgenre_spread": 5,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "genetics",
      "breeding",
      "heredity"
    ],
    "authoring_cost": 2,
    "compute_cost": 1,
    "definition": "Owns a genome per agent (gene list, trait set, or continuous parameters) and the reproduction operator that builds a child's genome from its parents: per-gene selection or crossover, optional dominance, and mutation with set rate and size. The genome then sets appearance, capabilities, or behavior parameters read by other systems. Creatures (1996) uses a haploid genome of about 320 genes coding receptors, reactions, and brain lobes, with crossover at gene boundaries, omissions, duplications, mutations, and genes that switch on at set ages. The Sims 2 passes appearance and personality with dominant and recessive genes; Crusader Kings III passes genetic traits; Planet Zoo genomes set lifespan, size, health, and fertility with an inbreeding penalty; Species: ALRE adds random values to numeric genes. Inputs: parent genomes, mutation parameters. Outputs: offspring traits and variation for selection or breeding.",
    "design_levers": [
      "genome representation (discrete traits, numeric genes, structural genes)",
      "inheritance rule (averaging, per-gene selection, dominance, linkage)",
      "mutation rate and size",
      "inbreeding penalties and diversity rewards",
      "visibility of genotype versus phenotype"
    ],
    "dynamics": [
      "Selective breeding by the player concentrates traits across generations.",
      "With natural selection, inheritance lets populations adapt to environments.",
      "Inbreeding in small populations produces defect clusters that force outbreeding or trade for new stock."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Averaging inheritance regresses everything to the mean and removes surprise.",
      "Eugenic optimization: players breed for top traits and the system becomes a stat grind, with uncomfortable framing in human-character games.",
      "High mutation rates produce non-viable offspring that read as broken.",
      "Hidden genetics with no inspection make breeding feel random."
    ],
    "family": "population-lineage",
    "feedback": "reinforcing",
    "id": "trait-inheritance",
    "legibility": 3,
    "math_basis": [
      "genetics-evolution",
      "markov-stochastic",
      "combinatorics"
    ],
    "maturity": "established",
    "name": "Trait inheritance",
    "open_questions": [
      "Can generative models map genomes to coherent novel appearances and behaviors rather than to a fixed set of parts?",
      "Which inheritance models keep breeding surprising without becoming a pure stat grind?"
    ],
    "player_experience": "Breeding becomes a long game of chance: the player pairs parents for desired traits, gambles on outcomes, and watches family resemblance and surprises appear. Lineages carry identity.",
    "player_interface": [
      "choice-cards",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-grand-1996-creatures-alife",
      "src-wikipedia-the-sims-2",
      "src-wikipedia-crusader-kings-3",
      "src-wikipedia-planet-zoo",
      "src-revolutionarygames-2016-thrive-vs-species"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "stochastic-events"
    ],
    "summary": "Offspring inherit traits or genes from their parents with recombination, variation, or mutation.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "cities-skylines",
      "earliest_year": 2015,
      "incoming": {
        "affected_by": [
          "human-behavior-simulation-models",
          "mean-field-games"
        ],
        "used_by": [
          "cities-skylines",
          "cities-skylines-2"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 2,
      "technique_exposure": 0.287
    },
    "ai_leverage": 3,
    "aliases": [
      "mode choice",
      "modal split",
      "mode share"
    ],
    "authoring_cost": 1,
    "compute_cost": 3,
    "definition": "Owns, per trip or agent, the set of available modes (walk, bicycle, car, taxi, transit), the cost weights used to compare them, and car ownership and parking state. For each trip it computes a generalized cost per mode, such as weighted travel time plus money (fares, fuel, parking fees) plus discomfort (transfers, waiting, crowding, walking distance), and picks the cheapest mode or samples one with logit-style probabilities. Cities: Skylines II combines time, comfort, money, and behavior into its route cost, adds parking fees to driving, and has citizens compare driving, transit, and walking. Outputs are mode shares that load trips onto roads, transit lines, and paths. Unlike public-transit, which owns lines and vehicles, traffic-congestion, which owns per-segment volume, and agent-pathfinding, which searches routes within one network, this mechanic owns the choice between networks.",
    "design_levers": [
      "weights on time, money, comfort, and transfers, and whether they vary by age, wealth, or household",
      "car ownership rates and parking supply and pricing",
      "deterministic cheapest-mode choice versus probabilistic choice that spreads demand",
      "transfer and waiting penalties for transit",
      "whether choice is recomputed per trip or fixed per agent"
    ],
    "dynamics": [
      "Congestion raises driving cost and pushes riders to transit, a balancing loop between roads and lines.",
      "Parking pricing becomes a policy lever that moves demand without building anything.",
      "Dense mixed-use districts shorten trips enough that walking takes a large share, coupling zoning to traffic."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Sticky or opaque choice models keep transit from relieving traffic, so players stop investing in it.",
      "Deterministic choice flips whole populations between modes after a small change, producing oscillating congestion.",
      "Cost terms the player cannot see make empty transit lines look like a bug."
    ],
    "family": "logistics-networks",
    "feedback": "balancing",
    "id": "travel-mode-choice",
    "legibility": 2,
    "math_basis": [
      "utility-decision",
      "network-flow"
    ],
    "maturity": "established",
    "name": "Travel mode choice",
    "open_questions": [
      "Can discrete-choice models estimated from real travel surveys be simplified enough for players to design against?",
      "Would letting players inspect a citizen's per-mode cost breakdown make transit planning feel fair rather than random?"
    ],
    "player_experience": "The player shapes behavior indirectly. Instead of ordering citizens onto buses, they raise parking fees, add frequency, or shorten walks to stops, then watch mode share shift in the info views. Success shows up as emptier roads; failure as a new metro line nobody rides.",
    "player_interface": [
      "parameter",
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [
      "src-paradox-2023-cs2-traffic-ai"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "network-graph"
    ],
    "summary": "Agents choose among walking, cycling, driving, and transit for each trip by comparing time, money, and comfort costs, which sets how demand splits across networks.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "princess-maker-2",
      "earliest_year": 1993,
      "incoming": {
        "affected_by": [
          "llm-game-master"
        ],
        "involved_in": [
          "content-elastic-events",
          "drama-aware-storyteller",
          "placement-that-tells-stories"
        ],
        "used_by": [
          "contraband-police",
          "crusader-kings-3",
          "democracy-4",
          "europa-universalis-4",
          "facade",
          "ftl",
          "game-dev-tycoon",
          "hearts-of-iron-4",
          "papers-please",
          "princess-maker-2",
          "rebel-inc",
          "reigns",
          "stellaris",
          "surviving-mars",
          "suzerain",
          "this-war-of-mine",
          "whispers-from-the-star"
        ]
      },
      "prevalence": 17,
      "prevalence_rank": 33,
      "prevalence_share": 0.096,
      "subgenre_spread": 11,
      "technique_count": 1,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "scripted events",
      "event chains",
      "story events"
    ],
    "authoring_cost": 5,
    "compute_cost": 2,
    "definition": "Each template holds a trigger predicate over state, a selection weight or mean time to happen, an immediate effect block, options with effects, and calls that schedule follow-up events with delays. Hooks such as yearly pulses, births, or deaths evaluate eligible templates and fire them. In Crusader Kings III, events do not fire on their own: on_actions, decisions, or interactions call them; an on_action can fire a list of events, weighted random_events, or the first valid one; and trigger_event schedules a follow-up such as days = { 7 14 } later, so a chain carries saved scopes and flags across months. Europa Universalis IV and Stellaris use the same Paradox script family; Frostpunk and Banished use simpler condition-fired events. Unlike a storyteller director, which paces generic incidents, chains carry authored story state forward. Inputs: state predicates and flags. Outputs: effects, flags, and scheduled events.",
    "design_levers": [
      "trigger specificity: broad pulses versus narrow state predicates",
      "weights, mean time to happen, and random delay ranges between links",
      "branching factor and how many chain steps carry state forward",
      "whether follow-ups re-check conditions so chains can fail when the world changes",
      "cooldowns and once-per-game flags that limit repetition"
    ],
    "dynamics": [
      "Chains link otherwise separate systems, such as health, inheritance, and war, into multi-year storylines.",
      "Overlapping chains on the same characters produce compound situations that no single template described.",
      "Modders extend event pools until mods conflict on shared hooks."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Players see the same chains every playthrough once the event pool is exhausted.",
      "Chains ignore world changes made between links, producing contradictions such as an event about a ruler who has died.",
      "Broad iteration in frequent pulses (the CK3 modding wiki warns against every_living_character in pulse on_actions) causes late-game slowdown.",
      "Authored text quality caps depth, because each branch must be written by hand."
    ],
    "family": "narrative-generation",
    "feedback": "none",
    "id": "triggered-event-chains",
    "legibility": 3,
    "math_basis": [
      "markov-stochastic",
      "computation-theory"
    ],
    "maturity": "classic",
    "name": "Triggered event chains",
    "open_questions": [
      "Can a language model write follow-up links conditioned on the actual state reached, keeping chains coherent with world changes?",
      "What fraction of authored chain content could be replaced by generated text while keeping effects hand-tuned?"
    ],
    "player_experience": "The simulation seems to notice what the player did. A rival's illness leads to a succession dispute, which leads to a war invitation. Players feel stories unfolding from their situation, learn to set up conditions for chains they want, and dread chains they recognize.",
    "player_interface": [
      "choice-cards",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-paradoxwikis-2026-ck3-event-modding"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "stochastic-events"
    ],
    "summary": "Authored event templates fire when state conditions hold, and their outcomes schedule follow-up events that chain into multi-step stories.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 6,
      "earliest_game": "hamurabi",
      "earliest_year": 1968,
      "incoming": {
        "affected_by": [
          "automated-rule-generation"
        ],
        "used_by": [
          "ai-dungeon",
          "aurora-4x",
          "balance-of-power",
          "caves-of-qud",
          "civilization",
          "democracy-4",
          "game-of-life",
          "hamurabi",
          "lemonade-stand",
          "mule",
          "oregon-trail",
          "princess-maker-2"
        ]
      },
      "prevalence": 12,
      "prevalence_rank": 50,
      "prevalence_share": 0.068,
      "subgenre_spread": 9,
      "technique_count": 1,
      "technique_exposure": 0.2
    },
    "ai_leverage": 1,
    "aliases": [
      "turn-based play",
      "phases",
      "WEGO"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns the turn counter, the current phase, and the order of actors. Within a turn players act in sequence or submit orders simultaneously; then the world resolves production, growth, movement, combat, and events, and the next turn begins. A turn stands for a fixed span of game time, from a year in Hamurabi to two weeks in The Oregon Trail. Phased variants split a turn into stages, as in Agricola's work and harvest phases or Imperium Romanum II's taxation every third turn; simultaneous variants, called WEGO, such as Diplomacy and Combat Mission, collect all orders and then execute them together. Civilization is the canonical sequential form in strategy simulation. Inputs are player orders; outputs are the resolved world state each turn.",
    "design_levers": [
      "game time per turn and whether it changes over the game",
      "sequential, simultaneous, or mixed actor order",
      "phase decomposition and which systems update in which phase",
      "per-turn action limits or action points",
      "time limits on turns in multiplayer"
    ],
    "dynamics": [
      "Players optimize per-turn efficiency, making the turn itself the unit of strategy.",
      "Batched world resolution makes chains of consequences visible as discrete steps.",
      "Simultaneous orders create bluffing and prediction between players."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "Late-game turns with many units or cities take long to play and process, producing micromanagement fatigue.",
      "Sequential order gives first-mover or last-mover advantages that need compensation.",
      "Waiting for other players' turns makes multiplayer sessions long and idle."
    ],
    "family": "time-pacing",
    "feedback": "none",
    "id": "turn-structure",
    "legibility": 5,
    "math_basis": [
      "game-theory",
      "scheduling"
    ],
    "maturity": "classic",
    "name": "Turn structure",
    "open_questions": [
      "Can learned opponents that negotiate in natural language make phase-based diplomacy viable against AI rather than only humans?"
    ],
    "player_experience": "Unlimited time to think. The player studies the state, plans, and commits, then watches the consequences resolve at once. Turns make cause and effect easy to trace and support a 'one more turn' rhythm, while simultaneous turns add the tension of predicting what others will do.",
    "player_interface": [
      "orders",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-wikipedia-turns-rounds-and-time-keeping",
      "src-wikipedia-hamurabi",
      "src-wikipedia-oregon-trail-1971"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "The simulation advances in discrete turns, each divided into ordered phases in which players decide and the world then resolves.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "utopia",
      "earliest_year": 1982,
      "incoming": {
        "affected_by": [
          "generalist-game-agents",
          "on-device-language-models",
          "realtime-voice-models"
        ],
        "involved_in": [
          "intent-level-orders"
        ],
        "used_by": [
          "anno-117",
          "arma-3",
          "command-modern-operations",
          "dwarf-fortress",
          "fallout-shelter",
          "from-dust",
          "ftl",
          "kenshi",
          "manor-lords",
          "mindustry",
          "populous",
          "project-hospital",
          "railroad-tycoon",
          "simant",
          "songs-of-syx",
          "space-haven",
          "spore",
          "utopia"
        ]
      },
      "prevalence": 18,
      "prevalence_rank": 29,
      "prevalence_share": 0.102,
      "subgenre_spread": 11,
      "technique_count": 3,
      "technique_exposure": 1.562
    },
    "ai_leverage": 3,
    "aliases": [
      "direct orders",
      "drafting",
      "move and attack orders"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "The player selects one or more units and gives explicit orders (move here, attack this, use that, stay, guard) that take precedence over the units' autonomous decision making. State owned: per-unit order queue and override flag. Update rule: when an order is present, the unit's action selection is bypassed or constrained to executing it; on completion or cancellation, autonomy resumes. Orders can be queued and may be refused if impossible. In simulation games it often sits beside autonomy: RimWorld's drafting switches a colonist from autonomous work to direct control for combat; The Sims lets the player queue actions for a Sim who otherwise acts on free will; Dwarf Fortress squads take orders while civilians do not. Strategy games make it the default control mode.",
    "design_levers": [
      "scope: any unit, only military units, or only drafted units",
      "how long overrides last and how autonomy resumes",
      "order queue length and shift-queue support",
      "whether units can refuse or delay orders based on morale or needs",
      "group orders and formations",
      "what autonomous behavior continues under orders, such as eating or fleeing"
    ],
    "dynamics": [
      "A dual mode emerges: autonomy in peace and direct command in crisis, giving play a rhythm of calm and intensity.",
      "The cost of micromanagement pushes players to improve autonomy-affecting systems such as priorities and schedules.",
      "Override on one agent shifts load to others, revealing hidden dependencies in job systems."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Orders are needed constantly because autonomy is weak, turning play into micromanagement.",
      "Drafted or ordered agents ignore needs and starve or collapse, producing deaths players blame on the interface.",
      "Unclear return-to-autonomy rules leave units idle after an order completes."
    ],
    "family": "control-automation",
    "feedback": "none",
    "id": "unit-commands",
    "legibility": 4,
    "math_basis": [
      "graph-search",
      "scheduling"
    ],
    "maturity": "classic",
    "name": "Unit commands",
    "open_questions": [
      "Can units interpret high-level natural-language orders (hold the bridge until the medic arrives) and decompose them, and how should they report failure?",
      "When agents have language-model reasoning, how should they negotiate or refuse orders without frustrating the player?"
    ],
    "player_experience": "When autonomy fails or stakes are high, the player takes the wheel. Drafting colonists into a defensive line or forcing a Sim to bed is precise and reassuring, but heavy use turns agents into puppets and the player into a micromanager.",
    "player_interface": [
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m6"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "agent-based",
      "rule-system"
    ],
    "summary": "The player issues direct orders to specific units or agents, overriding their autonomous behavior.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "theme-park",
      "earliest_year": 1994,
      "incoming": {
        "affected_by": [
          "alphaevolve-algorithm-discovery",
          "constrained-decoding",
          "generative-agents",
          "massively-parallel-simulation",
          "monte-carlo-tree-search",
          "on-device-language-models",
          "physical-world-foundation-models"
        ],
        "involved_in": [
          "salience-gated-llm-agents"
        ],
        "used_by": [
          "dwarf-fortress",
          "going-medieval",
          "inzoi",
          "paralives",
          "planet-coaster",
          "prison-architect",
          "prom-week",
          "rimworld",
          "rollercoaster-tycoon",
          "space-haven",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "theme-hospital",
          "theme-park",
          "two-point-hospital",
          "versu"
        ]
      },
      "prevalence": 18,
      "prevalence_rank": 29,
      "prevalence_share": 0.102,
      "subgenre_spread": 4,
      "technique_count": 7,
      "technique_exposure": 2.95
    },
    "ai_leverage": 4,
    "aliases": [
      "utility AI",
      "utility scoring",
      "needs-based AI"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Owns per-agent scoring weights and response curves rather than world state. Each decision cycle it enumerates candidate actions, scores each from inputs such as need levels, distance, personality, risk, and context passed through response curves and combined by product or weighted sum, then selects the top action or samples among high scorers. Dill and Mark (GDC 2010) present response curves, population distributions, and weighted random selection as a fix for the abrupt switches of if-then logic. The Sims picks the behavior that most increases happiness from object advertisements; The Sims 3 (Richard Evans) samples with a modified Boltzmann distribution whose temperature rises when a Sim is doing poorly; the Infinite Axis Utility System (Mark and Lewis, GDC 2015) multiplies normalized considerations. Inputs: candidate actions and their considerations. Outputs: the chosen action and, if exposed, a ranked list of reasons.",
    "design_levers": [
      "response curve shape per consideration",
      "combination rule (product, sum, max) and normalization",
      "selection rule: argmax, random among the top N, or softmax with a temperature",
      "inertia or commitment bonus that prevents switching between close options",
      "per-agent personality weights"
    ],
    "dynamics": [
      "Priorities emerge from scores rather than authored order, so new situations get plausible, unscripted responses.",
      "Coupled with needs decay, agents cycle through activities in rhythms that read as routines.",
      "Small weight changes ripple across a population, so balance patches visibly change agent culture."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Dithering: two actions with close scores alternate, so agents start and abandon tasks.",
      "One consideration dominates the product or sum, and agents ignore everything else.",
      "Choices are hard to explain because each score is the product of many curves, so players see randomness.",
      "Weight tuning grows with the number of actions times considerations and resists local fixes."
    ],
    "family": "agents-behavior",
    "feedback": "balancing",
    "id": "utility-action-selection",
    "legibility": 3,
    "math_basis": [
      "utility-decision",
      "probability-statistics"
    ],
    "maturity": "classic",
    "name": "Utility action selection",
    "open_questions": [
      "Can language-model agents propose candidate actions that a utility layer then scores, combining open-ended options with predictable tuning?",
      "Can scoring functions learned from player-labeled preferences replace hand-built response curves?"
    ],
    "player_experience": "Agents look like they are weighing options: they handle the urgent thing first but sometimes surprise. The player steers them indirectly by changing inputs such as needs, objects, and priorities, and reads odd choices as personality.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-dill-2010-utility-theory",
      "src-wikipedia-utility-system",
      "src-forbus-2001-programming-objects-sims"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based"
    ],
    "summary": "Agents choose actions by scoring options against needs and context, then picking the highest or sampling among high scores.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "game-of-life",
      "earliest_year": 1970,
      "incoming": {
        "involved_in": [
          "branch-preview-forecasts"
        ],
        "used_by": [
          "against-the-storm",
          "anno-117",
          "anno-1800",
          "banished",
          "beamng-drive",
          "big-ambitions",
          "big-pharma",
          "caesar-3",
          "capitalism",
          "captain-of-industry",
          "cities-skylines",
          "cities-skylines-2",
          "command-modern-operations",
          "creatures",
          "crusader-kings-3",
          "dcs-world",
          "dwarf-fortress",
          "europa-universalis-4",
          "farming-simulator-25",
          "farthest-frontier",
          "foundation",
          "frostpunk",
          "frostpunk-2",
          "ftl",
          "game-dev-tycoon",
          "game-of-life",
          "going-medieval",
          "hearts-of-iron-4",
          "inzoi",
          "jurassic-world-evolution",
          "kenshi",
          "kerbal-space-program",
          "kingdoms-and-castles",
          "manor-lords",
          "microsoft-flight-simulator-2020",
          "microsoft-flight-simulator-2024",
          "mindustry",
          "mini-metro",
          "motorsport-manager",
          "offworld-trading-company",
          "oxygen-not-included",
          "paralives",
          "pharaoh",
          "plague-inc",
          "planet-coaster",
          "planet-zoo",
          "prison-architect",
          "project-hospital",
          "project-zomboid",
          "railroad-tycoon",
          "rebel-inc",
          "rimworld",
          "rollercoaster-tycoon",
          "silent-hunter-3",
          "simant",
          "simcity-1989",
          "simcity-2000",
          "simcity-2013",
          "simcity-4",
          "simearth",
          "simlife",
          "simtower",
          "songs-of-syx",
          "space-haven",
          "species-alre",
          "stellaris",
          "surviving-mars",
          "the-powder-toy",
          "the-sims",
          "the-sims-2",
          "the-sims-3",
          "the-sims-4",
          "theme-hospital",
          "theme-park",
          "timberborn",
          "transport-tycoon",
          "tropico-6",
          "two-point-hospital",
          "universe-sandbox",
          "victoria-3",
          "workers-and-resources",
          "x-plane",
          "zoo-tycoon"
        ]
      },
      "prevalence": 83,
      "prevalence_rank": 1,
      "prevalence_share": 0.469,
      "subgenre_spread": 23,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "real-time with pause",
      "time compression",
      "fast-forward"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns a time scale, paused or one of several multipliers, and the rule that converts real time into simulation ticks. At higher speeds the loop runs more ticks per real second up to hardware limits; while paused no ticks run but the player can still give orders. Some games pause or slow automatically on events. RimWorld runs 60 ticks per second at normal speed and multiplies that by 3, 6, or 15, the last only in development mode, and runs as close to the target as the machine allows; SimCity and Paradox grand strategy games offer pause and several speeds; flight simulators call it time compression. Inputs are the player's speed choice and event triggers; outputs are the tick rate of every other system.",
    "design_levers": [
      "number of speeds and their multipliers",
      "whether orders can be given while paused",
      "auto-pause and auto-slowdown triggers, such as raids or letters",
      "speed restrictions in multiplayer or during events",
      "whether higher speeds change simulation fidelity, such as larger time steps"
    ],
    "dynamics": [
      "Players alternate between paused planning and fast-forward waiting, creating a two-tempo play pattern.",
      "Fast-forward exposes the compute cost of every other system, making simulation performance a gameplay issue.",
      "Auto-pause rules decide which events players notice."
    ],
    "emergence_potential": 1,
    "failure_modes": [
      "High speeds the hardware cannot sustain silently run slower than shown, so late-game fast-forward feels broken.",
      "Larger time steps at high speed can destabilize physics or give different outcomes than normal speed.",
      "Multiplayer games must reconcile players' speed preferences, often by host control or voting."
    ],
    "family": "time-pacing",
    "feedback": "none",
    "id": "variable-speed",
    "legibility": 5,
    "math_basis": [
      "system-dynamics",
      "scheduling"
    ],
    "maturity": "classic",
    "name": "Pause and speed control",
    "open_questions": [
      "Can learned surrogate simulators let players skip long quiet stretches without running full-fidelity ticks?"
    ],
    "player_experience": "Control over attention. The player slows down or pauses for crises and detailed orders, then fast-forwards through quiet stretches such as waiting for crops or construction. Pause makes real-time games playable at a thoughtful pace, and fast-forward removes dead time.",
    "player_interface": [
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5",
      "reviewed": [
        "2026-10-25-contributor-readiness"
      ]
    },
    "sources": [
      "src-rimworldwiki-2026-time",
      "src-wikipedia-turns-rounds-and-time-keeping"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system"
    ],
    "summary": "The player pauses the simulation and switches between speed multipliers, trading attention against elapsed game time.",
    "tuning_difficulty": 1,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 7,
      "earliest_game": "gran-turismo",
      "earliest_year": 1997,
      "incoming": {
        "affected_by": [
          "deep-rl-npc-policies",
          "differentiable-simulation",
          "open-interactive-video-models",
          "physical-world-foundation-models"
        ],
        "involved_in": [
          "sim-instructor-coach"
        ],
        "used_by": [
          "beamng-drive",
          "car-mechanic-simulator-2021",
          "euro-truck-simulator-2",
          "farming-simulator-25",
          "gran-turismo",
          "gran-turismo-7",
          "iracing",
          "project-zomboid",
          "snowrunner"
        ]
      },
      "prevalence": 9,
      "prevalence_rank": 70,
      "prevalence_share": 0.051,
      "subgenre_spread": 4,
      "technique_count": 4,
      "technique_exposure": 1.413
    },
    "ai_leverage": 2,
    "aliases": [
      "handling model",
      "car physics",
      "tire model"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "The vehicle state holds the chassis rigid body, wheel angular speeds, suspension compression, engine speed, gear, and often tire temperature and wear. Each physics step routes engine torque through the drivetrain, computes each tire's longitudinal and lateral force from slip ratio, slip angle, and vertical load, applies suspension forces that transfer weight under braking, acceleration, and cornering, and integrates. A common tire model is Hans Pacejka's semi-empirical Magic Formula, which fits force against slip as y = D sin(C arctan(Bx - E(Bx - arctan Bx))). Simulators such as iRacing and Gran Turismo use detailed tire and suspension models; arcade racers simplify grip into tunable curves. Assists such as ABS and traction control act on the same quantities.",
    "design_levers": [
      "tire model fidelity: simple grip curve to full Magic Formula",
      "driving assists and their strength",
      "physics step rate relative to frame rate",
      "setup parameters exposed to the player",
      "surface grip by material and weather",
      "force feedback and camera cues that communicate grip"
    ],
    "dynamics": [
      "Setup choices create a tuning meta per track and car.",
      "Tire wear and temperature create race strategy over a stint.",
      "Changing weather and surfaces force mid-race adaptation."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Grip that falls off too sharply produces snap oversteer that feels unfair.",
      "Tire models become unstable at very low speeds, causing jitter at standstill.",
      "Too little detail feels like ice skating; too much excludes players without wheels.",
      "Physics tied to frame rate makes handling change with performance."
    ],
    "family": "physics-materials",
    "feedback": "balancing",
    "id": "vehicle-dynamics",
    "legibility": 3,
    "math_basis": [
      "classical-mechanics",
      "control-theory"
    ],
    "maturity": "classic",
    "name": "Vehicle dynamics",
    "open_questions": [
      "Can tire models learned from real telemetry replace hand-fitted coefficients for each car?"
    ],
    "player_experience": "Feel and control. Players sense grip through the screen or wheel, learn to balance the car at the limit, and tinker with setups. Mastery is slow and physical, and small improvements feel large.",
    "player_interface": [
      "embodied-skill",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-pacejka-2012-tire-and-vehicle-dynamics"
    ],
    "status": "sourced",
    "substrate": [
      "continuous-physics"
    ],
    "summary": "Tire, suspension, drivetrain, and weight-transfer models compute vehicle handling from forces at each wheel.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 3,
      "earliest_game": "railroad-tycoon",
      "earliest_year": 1990,
      "incoming": {
        "affected_by": [
          "alphaevolve-algorithm-discovery"
        ],
        "generalizes": [
          "public-transit"
        ],
        "used_by": [
          "anno-117",
          "anno-1800",
          "big-ambitions",
          "captain-of-industry",
          "factorio",
          "railroad-tycoon",
          "satisfactory",
          "shapez-2",
          "transport-tycoon",
          "workers-and-resources"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 4,
      "technique_count": 1,
      "technique_exposure": 0.1
    },
    "ai_leverage": 2,
    "aliases": [
      "vehicle orders",
      "routes",
      "timetables",
      "train schedules"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Each vehicle holds an order list: an ordered sequence of stops, each with load and unload rules and optional wait conditions. The vehicle travels to each stop in turn, applies its rules, and continues. OpenTTD offers full load of any or all cargo, unload, transfer with partial payment for feeder services, no loading, go-via waypoints, timetables, conditional jumps, and shared orders across vehicles. Transport Tycoon pays by delivery time, distance, and quantity, so mail must be fast while coal tolerates long routes. Factorio train schedules use wait conditions such as full cargo, inactivity, or circuit signals. Inputs: orders, vehicles, cargo at stops. Outputs: cargo movement, revenue, and station service frequency.",
    "design_levers": [
      "available order types and wait conditions",
      "payment model by distance, time, and cargo type",
      "shared orders and fleet management tools",
      "vehicle capacity, speed, and reliability",
      "station ratings that respond to service frequency"
    ],
    "dynamics": [
      "Feeder and trunk networks emerge from transfer orders.",
      "Station competition between companies or players shifts cargo flows.",
      "Fleet growth eventually saturates track or roads, coupling routing to signaling and congestion."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Full-load orders at low-supply stations park vehicles forever.",
      "Complex order systems without templates make fleet changes tedious.",
      "Revenue models that ignore time make every route identical."
    ],
    "family": "logistics-networks",
    "feedback": "none",
    "id": "vehicle-route-scheduling",
    "legibility": 4,
    "math_basis": [
      "scheduling",
      "optimization"
    ],
    "maturity": "classic",
    "name": "Vehicle routes and schedules",
    "open_questions": [
      "Could natural-language order entry (\"keep this mine's output moving to the steel mill\") replace order lists without losing player control?"
    ],
    "player_experience": "Programming a fleet. Players design routes, tune load rules, and watch vehicles run. Well-tuned routes make money unattended; badly tuned ones leave vehicles waiting at empty stations.",
    "player_interface": [
      "orders",
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1"
    },
    "sources": [
      "src-openttd-2026-manual-orders",
      "src-wikipedia-transport-tycoon"
    ],
    "status": "sourced",
    "substrate": [
      "agent-based",
      "rule-system",
      "network-graph"
    ],
    "summary": "Vehicles are assigned ordered stops with load and unload rules to move goods or passengers between nodes.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "simant",
      "earliest_year": 1991,
      "incoming": {
        "used_by": [
          "dwarf-fortress",
          "factorio",
          "fallout-shelter",
          "going-medieval",
          "shapez-2",
          "simant",
          "simcity-2000",
          "simtower",
          "timberborn"
        ]
      },
      "prevalence": 9,
      "prevalence_rank": 70,
      "prevalence_share": 0.051,
      "subgenre_spread": 5,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "z-levels",
      "underground layer",
      "multi-floor"
    ],
    "authoring_cost": 2,
    "compute_cost": 3,
    "definition": "The map is a stack of layers indexed by depth or named by function. Each layer holds its own grid, and cross-layer rules link them: stairs and ramps for movement, support from below, fluids and objects falling through openings, and utilities in a hidden layer serving the surface tiles above. Dwarf Fortress models a full 3D map of z-levels where dwarves dig down, build stairs and channels, and water and magma flow downward through openings. SimCity 2000 adds an underground view for water pipes and subways under the surface grid. Cities: Skylines places metro tunnels and pipes underground, and Factorio: Space Age adds elevated rails over ground tracks. State: per-layer grids plus inter-layer links; update: per-layer rules plus transfer rules at the links.",
    "design_levers": [
      "number of layers and whether they are uniform or functionally distinct",
      "what crosses layers: movement, fluids, support, light, utilities",
      "visibility tools: cutaways, layer toggles, isometric views",
      "cost and hazard gradient with depth"
    ],
    "dynamics": [
      "Digging into water or magma floods layers below or above, a classic Dwarf Fortress disaster.",
      "Vertical separation lets transit and utilities cross without conflicts, relieving surface congestion.",
      "Defenses gain a vertical dimension through chokepoints, drops, and layered walls."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Legibility collapses when players must mentally stack many layers; Dwarf Fortress players used third-party visualizers to see their fortresses in 3D.",
      "A utility layer that mirrors the surface grid becomes a chore with no decisions of its own.",
      "Pathfinding and fluid updates across many layers become a major performance cost."
    ],
    "family": "space-construction",
    "feedback": "none",
    "id": "vertical-layers",
    "legibility": 3,
    "math_basis": [
      "graph-search"
    ],
    "maturity": "classic",
    "name": "Vertical layers",
    "open_questions": [
      "Can automatic camera and cutaway selection make deep 3D colonies as legible as a single-layer map?"
    ],
    "player_experience": "Depth and hidden infrastructure. Players dig toward risk and reward, route utilities out of sight, and switch camera layers to manage what they cannot see at once.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "cellular-grid",
      "network-graph"
    ],
    "summary": "The world has stacked layers such as z-levels, floors, or underground networks, and rules connect what happens between them.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 1,
      "earliest_game": "the-sims-3",
      "earliest_year": 2009,
      "incoming": {
        "affected_by": [
          "llm-game-master",
          "open-ended-environment-generation"
        ],
        "involved_in": [
          "content-elastic-events",
          "placement-that-tells-stories"
        ],
        "used_by": [
          "stardew-valley",
          "the-sims-3",
          "tomodachi-life"
        ]
      },
      "prevalence": 3,
      "prevalence_rank": 156,
      "prevalence_share": 0.017,
      "subgenre_spread": 2,
      "technique_count": 2,
      "technique_exposure": 0.75
    },
    "ai_leverage": 4,
    "aliases": [
      "radiant quests",
      "favors",
      "help wanted"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "A generator periodically picks a requester, a template (fetch an item, deliver a gift, clear pests, make a visit), and parameters drawn from current state, such as an item in season or a nearby location. It posts the request with a reward, often relationship points or money, and a deadline. Completing it applies the reward; expiry may cost relationship. Stardew Valley's Help Wanted board posts item delivery and gathering requests from villagers; Skyrim's radiant quests fill templates with locations and targets; Animal Crossing villagers ask small favors; Mount and Blade lords issue procedural tasks. Inputs: requester state, inventory and season, relationship. Outputs: posted tasks and reward deltas.",
    "design_levers": [
      "template set and how parameters bind to live state",
      "posting frequency and number of concurrent requests",
      "reward type and size relative to effort",
      "deadlines and penalties for expiry",
      "requester selection by need, relationship, or location"
    ],
    "dynamics": [
      "Requests pull players across map areas and seasonal resources they would otherwise skip.",
      "Rewards in relationship points couple requests to romance and social progression.",
      "When requests read live scarcity, they double as a signal of what the economy lacks."
    ],
    "emergence_potential": 2,
    "failure_modes": [
      "Template repetition makes requests read as generic chores; radiant quests in Skyrim drew this criticism.",
      "Requests that ignore state ask for impossible items or locations already cleared.",
      "Low rewards teach players to ignore the system entirely."
    ],
    "family": "narrative-generation",
    "feedback": "none",
    "id": "villager-requests",
    "legibility": 5,
    "math_basis": [
      "probability-statistics",
      "utility-decision"
    ],
    "maturity": "established",
    "name": "Villager requests",
    "open_questions": [
      "Can requests generated from a character's actual needs and memories, with language-model dialogue, avoid template fatigue?",
      "What request rate keeps them meaningful without crowding out self-directed play?"
    ],
    "player_experience": "A light stream of small goals that gives daily play direction and makes characters feel like they have needs. Requests nudge players toward activities they might skip and reward them with friendship. Players learn which requests are worth it and ignore the rest.",
    "player_interface": [
      "observation",
      "choice-cards"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "rule-system",
      "stochastic-events",
      "agent-based"
    ],
    "summary": "Characters generate small requests or quests from templates whose parameters are filled from simulation state, with rewards and deadlines.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "space-engineers",
      "earliest_year": 2013,
      "incoming": {
        "affected_by": [
          "diffusion-game-engines",
          "neural-cellular-automata"
        ],
        "involved_in": [
          "learned-material-surrogates"
        ],
        "used_by": [
          "space-engineers",
          "teardown"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 2,
      "technique_count": 2,
      "technique_exposure": 0.75
    },
    "ai_leverage": 3,
    "aliases": [
      "destructible voxels",
      "block breaking",
      "destructible environments"
    ],
    "authoring_cost": 2,
    "compute_cost": 4,
    "definition": "The world is stored as voxels with a material per cell, sometimes in several separate volumes. Tools, explosions, and fire remove or convert voxels; the engine then recomputes connectivity, and pieces cut loose either become rigid bodies or stay in place. In Teardown every level is built from destructible voxels; each voxel's material comes from an 8-bit palette setting color, roughness, emissiveness, reflectivity, and physical type; the world is split into several voxel volumes; and the engine does not model compressive stress. Minecraft breaks blocks after a mining time set by tool and material, and only some blocks, such as sand and gravel, fall when unsupported. Outputs are the edited world, debris bodies, and new paths.",
    "design_levers": [
      "voxel size relative to the player",
      "material hardness and which tools break which materials",
      "connectivity and support rules for loose pieces",
      "debris lifetime and cleanup",
      "fire and explosion coupling",
      "unbreakable materials that preserve level structure"
    ],
    "dynamics": [
      "Players cut their own routes, turning levels into planning puzzles, as in Teardown's heist missions.",
      "Fire and collapses chain through flammable and weakened structures.",
      "Persistent edits accumulate, so the world reflects a session's history."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Level design is hard because walls and doors cannot block players; Teardown relied on elevation, distance, water, and unbreakable objects.",
      "Synchronizing voxel physics over a network is hard; Teardown's team originally judged multiplayer infeasible, and co-op arrived only in a 2026 update.",
      "Structures stand on implausibly little support when only connectivity is checked.",
      "Destruction at scale caps performance and map size."
    ],
    "family": "physics-materials",
    "feedback": "none",
    "id": "voxel-destruction",
    "legibility": 4,
    "math_basis": [
      "classical-mechanics",
      "graph-search"
    ],
    "maturity": "established",
    "name": "Voxel destruction",
    "open_questions": [
      "Can generative models author voxel levels whose structure holds up to arbitrary destruction?",
      "Can learned fracture models give voxel destruction plausible stress without full physical simulation?"
    ],
    "player_experience": "Total freedom of route. Any wall can become a door, so players plan paths through buildings and enjoy demolition for its own sake. The world remembers what they broke.",
    "player_interface": [
      "direct-manipulation",
      "embodied-skill"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-wikipedia-teardown"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "continuous-physics"
    ],
    "summary": "The world is built from small destructible units that can be removed, broken loose, and burned anywhere.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "caesar-3",
      "earliest_year": 1998,
      "incoming": {
        "used_by": [
          "caesar-3",
          "pharaoh"
        ]
      },
      "prevalence": 2,
      "prevalence_rank": 172,
      "prevalence_share": 0.011,
      "subgenre_spread": 1,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "walkers",
      "roaming walkers",
      "service walkers"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each service building periodically spawns a walker that follows roads; as it passes, it writes a coverage value to nearby houses, which decays over time until the next visit. In Caesar III, as reproduced by the Julius reimplementation, a roaming walker first heads for a road point about 8 tiles out in a cardinal direction that rotates with each spawn, then wanders, turning pseudo-randomly at intersections and ending its walk at dead ends. Culture, health, and religion walkers set a per-service house value to 96, which decays by 1 on each periodic update; prefects reset fire risk to zero and engineers reset collapse risk to zero. Inputs: building location, road network, random turns. Outputs: per-house coverage values that gate housing evolution and prevent fires or collapses.",
    "design_levers": [
      "walker roaming range and spawn interval",
      "turn rule at intersections: random, biased, or destination-based",
      "coverage radius around the walker and decay rate on houses",
      "roadblocks or other routing controls",
      "number of walker types and services per type"
    ],
    "dynamics": [
      "Standard block layouts (looped housing blocks with services inside) become community conventions.",
      "Coverage gaps produce local fires and collapses that spread.",
      "Road changes can suddenly strand houses by changing walker routes."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Randomness that leaves some houses uncovered causes devolve-evolve flicker.",
      "Walker logic that needs community analysis to understand frustrates players.",
      "Too many walker types multiply layout constraints until blocks become formulaic."
    ],
    "family": "logistics-networks",
    "feedback": "balancing",
    "id": "walker-service-delivery",
    "legibility": 2,
    "math_basis": [
      "markov-stochastic",
      "graph-search"
    ],
    "maturity": "established",
    "name": "Walker service delivery",
    "open_questions": [
      "Would walkers with learned or goal-driven routes make coverage more legible or less?"
    ],
    "player_experience": "Designing for wanderers. Players build looping road blocks so walkers cover the right houses, use roadblocks where available, and watch for houses that a walker never reaches. Knowing that coverage depends on chance makes layout feel like guiding a crowd.",
    "player_interface": [
      "placement",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m1",
      "reviewed": [
        "2026-10-24-review-fixes"
      ]
    },
    "requires": [
      "road-network"
    ],
    "sources": [
      "src-bvschaik-2026-julius",
      "src-wikipedia-caesar-iii"
    ],
    "specializes": "service-coverage",
    "status": "sourced",
    "substrate": [
      "agent-based",
      "cellular-grid"
    ],
    "summary": "Services are delivered by agents walking routes from their building, so coverage depends on where walkers actually go.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 0,
      "earliest_game": "europa-universalis-4",
      "earliest_year": 2013,
      "incoming": {
        "affected_by": [
          "cicero-strategic-dialogue"
        ],
        "used_by": [
          "crusader-kings-3",
          "europa-universalis-4",
          "hearts-of-iron-4",
          "stellaris",
          "victoria-3"
        ]
      },
      "prevalence": 5,
      "prevalence_rank": 113,
      "prevalence_share": 0.028,
      "subgenre_spread": 2,
      "technique_count": 1,
      "technique_exposure": 0.188
    },
    "ai_leverage": 3,
    "aliases": [
      "war score",
      "war exhaustion",
      "war support",
      "peace conference"
    ],
    "authoring_cost": 1,
    "compute_cost": 1,
    "definition": "Owns, for each active war, a score per side (or a shared balance) and the list of war goals, plus a menu of peace terms with a cost in score. Each update, battles won, regions occupied, and time spent holding the war goal add score, and casualties and occupation add exhaustion. A peace offer is accepted when its total cost is within the winner's score or when the loser's exhaustion or support crosses a capitulation threshold; otherwise the AI weighs score against demands. Europa Universalis IV prices each demand (provinces, gold, vassalage) in war score. Crusader Kings III lets an attacker enforce the war goal at full war score and allows white peace. Victoria 3 tracks war support that falls with exhaustion until a side capitulates. Hearts of Iron IV holds a peace conference in which winners spend points on demands in turns. In Stellaris a side at maximum war exhaustion can be forced into a status quo peace. Unlike faction-diplomacy, which decides whether factions go to war, this mechanic owns how a war ends and what the winner may take.",
    "design_levers": [
      "score sources and their weights: battles, occupation, blockades, holding the war goal",
      "cost table for each peace term, and whether costs scale with the target's size",
      "exhaustion accumulation and its domestic effects such as unrest or lower production",
      "capitulation or forced-peace thresholds, and whether third parties join the settlement",
      "truce length after peace"
    ],
    "dynamics": [
      "Players carry out limited wars that take exactly what the score allows, then wait out the truce and return.",
      "Exhaustion couples military campaigns to stability and the economy, so long wars bleed the home front.",
      "Multi-party peace conferences produce partitions that set up later conflicts."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Score dominated by occupation rewards sieging empty land over defeating armies.",
      "AI that refuses reasonable terms because of hidden acceptance factors makes wars drag on.",
      "Capitulation thresholds that trigger too early end wars before the strategic situation is resolved."
    ],
    "family": "conflict-defense",
    "feedback": "balancing",
    "id": "war-score-peace",
    "legibility": 3,
    "math_basis": [
      "game-theory",
      "mechanism-design"
    ],
    "maturity": "established",
    "name": "War score and peace terms",
    "open_questions": [
      "Can language-model negotiators bargain over peace terms in ways players find legible and hard to exploit?",
      "Would score models that weigh strategic outcomes rather than counts of occupied regions produce more plausible peace deals?"
    ],
    "player_experience": "Wars become negotiations with a running tally. The player fights for score as much as for ground, deciding when a battle or a siege is worth the cost and when to cash in. Bargaining over which provinces fit within the score turns the end of a war into a planning problem, and exhaustion forces the question of whether to sue for peace before the home front breaks.",
    "player_interface": [
      "choice-cards",
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-triage-b"
    },
    "sources": [],
    "status": "asserted",
    "substrate": [
      "aggregate-stocks",
      "rule-system"
    ],
    "summary": "Each war tracks a score or exhaustion level from battles, occupation, and war goals, and that value caps what a peace settlement can demand or forces capitulation.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "theme-park",
      "earliest_year": 1994,
      "incoming": {
        "used_by": [
          "aurora-4x",
          "caesar-3",
          "captain-of-industry",
          "euro-truck-simulator-2",
          "farming-simulator-25",
          "iracing",
          "motorsport-manager",
          "planet-coaster",
          "rollercoaster-tycoon",
          "screeps",
          "snowrunner",
          "surviving-mars",
          "the-long-dark",
          "theme-hospital",
          "theme-park",
          "transport-tycoon",
          "two-point-hospital",
          "valheim",
          "zelda-breath-of-the-wild",
          "zoo-tycoon"
        ]
      },
      "prevalence": 20,
      "prevalence_rank": 23,
      "prevalence_share": 0.113,
      "subgenre_spread": 11,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 2,
    "aliases": [
      "reliability",
      "maintenance",
      "durability"
    ],
    "authoring_cost": 2,
    "compute_cost": 2,
    "definition": "Each asset holds a condition or reliability stock. Each update it decays by a base rate scaled by usage, age, and environment, and a breakdown is drawn with probability that rises as condition falls. A broken asset stops or malfunctions until a repair job, often done by a maintenance agent, restores it. In RollerCoaster Tycoon 2 (as reimplemented in OpenRCT2), reliability starts at 100% and drops every 256 ticks by the ride's unreliability factor plus an age penalty that grows from one-eighth of that factor in year one to double after eight years; breakdown types are weighted, brake failure is likelier in rain, players set inspection intervals for mechanics, and a repair restores reliability in proportion to the deficit. Transport Tycoon vehicles lose reliability between depot services; Theme Hospital machines explode if handymen do not repair them. Per-use item durability, as in Minecraft tools, is a variant without maintenance.",
    "design_levers": [
      "decay rate per asset class and its usage and weather modifiers",
      "age penalty curve that forces eventual replacement",
      "breakdown probability as a function of condition, and the menu of breakdown types and severities",
      "maintenance interval, labor required, and repair restoration amount",
      "repair versus replacement cost",
      "a global breakdown setting (off, reduced, normal)"
    ],
    "dynamics": [
      "Aging fleets and rides create replacement waves that strain budgets years after the original build-out.",
      "Mechanic coverage becomes a routing and staffing problem coupled to park or network layout.",
      "Breakdowns create service queues and satisfaction drops that spread to nearby systems."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Maintenance with no tradeoffs becomes a chore; OpenTTD exposes a setting to reduce or disable breakdowns, and many players use it.",
      "Too few maintenance workers lets breakdowns pile up faster than repairs, a spiral that is hard to diagnose.",
      "Hidden condition values make breakdowns feel random even when the player could have prevented them."
    ],
    "family": "risk-failure",
    "feedback": "both",
    "id": "wear-breakdown",
    "legibility": 4,
    "math_basis": [
      "markov-stochastic",
      "queueing",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Wear and breakdown",
    "open_questions": [
      "Can predictive maintenance tools that forecast failure from condition history become part of play instead of a hidden optimization?",
      "When does per-use durability add decisions rather than inventory chores?"
    ],
    "player_experience": "A steady background of upkeep decisions. The player schedules inspections, staffs mechanics, and decides when an aging asset should be replaced instead of repaired. Breakdowns are visible interruptions with queues of angry customers or stalled trains.",
    "player_interface": [
      "parameter",
      "orders"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m7"
    },
    "sources": [
      "src-openrct2-2026-ride-breakdowns"
    ],
    "status": "sourced",
    "substrate": [
      "aggregate-stocks",
      "stochastic-events",
      "agent-based"
    ],
    "summary": "Assets lose condition with use and age, breakdown risk rises as condition falls, and maintenance or repair restores it.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 4,
      "earliest_game": "oregon-trail",
      "earliest_year": 1971,
      "incoming": {
        "affected_by": [
          "genie-world-models",
          "ml-weather-models"
        ],
        "involved_in": [
          "learned-weather-layer"
        ],
        "used_by": [
          "animal-crossing-new-horizons",
          "arma-3",
          "black-and-white",
          "cities-skylines-2",
          "command-modern-operations",
          "dcs-world",
          "euro-truck-simulator-2",
          "farming-simulator-25",
          "frostpunk",
          "gran-turismo-7",
          "hearts-of-iron-4",
          "kenshi",
          "lemonade-stand",
          "microsoft-flight-simulator-2020",
          "microsoft-flight-simulator-2024",
          "motorsport-manager",
          "oregon-trail",
          "planet-zoo",
          "project-zomboid",
          "silent-hunter-3",
          "simant",
          "stardew-valley",
          "the-long-dark",
          "utopia",
          "valheim",
          "x-plane",
          "zelda-breath-of-the-wild"
        ]
      },
      "prevalence": 27,
      "prevalence_rank": 12,
      "prevalence_share": 0.153,
      "subgenre_spread": 15,
      "technique_count": 2,
      "technique_exposure": 0.688
    },
    "ai_leverage": 2,
    "aliases": [
      "weather system",
      "storms"
    ],
    "authoring_cost": 3,
    "compute_cost": 1,
    "definition": "Owns a current weather state, and sometimes a forecast, drawn each day or interval from season-dependent probabilities or evolved as a Markov chain or noise field across the map. The state sets modifiers other systems read: rain waters crops or puts out fire, storms bring lightning that damages things, cold lowers body temperature, wind changes travel or spread, and fog cuts visibility. Stardew Valley picks daily weather, shows tomorrow's forecast on the TV, never rains in winter without a Rain Totem, and lets lightning destroy crops unless lightning rods intercept it; The Long Dark's blizzards and cold nights drive its survival loop; Microsoft Flight Simulator 2020 can stream real-world weather. Inputs are season, location, and random draws; outputs are condition flags and values such as temperature and wind.",
    "design_levers": [
      "set of weather states and their transition probabilities by season and region",
      "duration and spatial extent of weather events",
      "which systems each state modifies and by how much",
      "forecast availability and accuracy",
      "protection tools: shelter, lightning rods, clothing, irrigation"
    ],
    "dynamics": [
      "Weather couples many systems at once: crops, fire, travel, mood, and body temperature.",
      "Forecasts turn weather from noise into a planning input, rewarding flexible schedules.",
      "Rare extreme weather becomes a memorable event that players prepare for."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Purely cosmetic weather costs effects budget without changing decisions.",
      "Severe weather with no forecast or counterplay feels like an unfair random penalty.",
      "Weather rolled independently each day can flip implausibly between extremes."
    ],
    "family": "environment-ecology",
    "feedback": "none",
    "id": "weather",
    "legibility": 4,
    "math_basis": [
      "markov-stochastic",
      "procedural-noise"
    ],
    "maturity": "classic",
    "name": "Weather",
    "open_questions": [
      "Can learned global weather models supply spatially coherent, plausible weather for procedural worlds at low runtime cost?"
    ],
    "player_experience": "Adapting plans to conditions outside the player's control. The player checks the forecast, moves tasks indoors on stormy days, waits out a blizzard, or takes advantage of rain. Weather makes days feel different and gives the world a mood.",
    "player_interface": [
      "observation"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m5"
    },
    "sources": [
      "src-stardewvalleywiki-2026-weather",
      "src-wikipedia-the-long-dark"
    ],
    "status": "sourced",
    "substrate": [
      "stochastic-events",
      "rule-system"
    ],
    "summary": "Weather states such as rain, storms, snow, wind, and temperature change over time and modify activities and other systems.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 2,
      "earliest_game": "simant",
      "earliest_year": 1991,
      "incoming": {
        "involved_in": [
          "intent-level-orders"
        ],
        "used_by": [
          "banished",
          "going-medieval",
          "kenshi",
          "oxygen-not-included",
          "rimworld",
          "simant"
        ]
      },
      "prevalence": 6,
      "prevalence_rank": 100,
      "prevalence_share": 0.034,
      "subgenre_spread": 4,
      "technique_count": 0,
      "technique_exposure": 0.0
    },
    "ai_leverage": 3,
    "aliases": [
      "work tab",
      "labor assignments",
      "job priorities"
    ],
    "authoring_cost": 1,
    "compute_cost": 2,
    "definition": "Owns a matrix of agents by job types holding enabled flags or priority numbers, plus a fixed ordering of job types. When an agent is idle it scans job types in priority order, breaking ties by column order, and takes an available job of the highest priority it can do, usually the nearest. RimWorld's work tab has a standard mode (checkmarks, columns further left more important) and a manual mode with priorities 1 (highest) to 4; all available work at one priority is done before the next, blank cells are never done, incapable work types are excluded, and allowed areas restrict where jobs are taken. Dwarf Fortress uses per-dwarf labor toggles, and Oxygen Not Included combines per-duplicant errand priorities with 1-9 priorities on individual buildings. Inputs: the job queue, skills, distances. Outputs: who does what, and how fast the group responds to new work.",
    "design_levers": [
      "granularity of job types",
      "number of priority levels and tie-break rules",
      "global agent-by-type priorities versus per-task or per-building overrides",
      "interaction with distance: nearest job first versus highest priority first",
      "automatic suggestions based on skill"
    ],
    "dynamics": [
      "Fixing one starved job type exposes the next bottleneck, so the table evolves as the group grows.",
      "Priorities aligned with skills create specialists, which reinforces skill gaps.",
      "Emergencies force temporary reshuffles or direct control, producing spikes of micromanagement."
    ],
    "emergence_potential": 3,
    "failure_modes": [
      "Priority inversion: an agent hauls a distant item at priority 1 while a patient bleeds, because all priority-1 work is done before the next level.",
      "Large matrices become spreadsheet management that players solve once with a template and stop engaging with.",
      "Poor tie-breaking sends agents across the map for low-value tasks.",
      "Hidden ordering within a job type surprises players."
    ],
    "family": "agents-behavior",
    "feedback": "none",
    "id": "work-priorities",
    "legibility": 3,
    "math_basis": [
      "scheduling",
      "optimization"
    ],
    "maturity": "established",
    "name": "Work priorities",
    "open_questions": [
      "Can a manager agent translate high-level intents (keep everyone fed, prioritize medicine) into the priority table and explain its settings?",
      "Does automatic assignment remove the managerial decision or only the spreadsheet tedium?"
    ],
    "player_experience": "The player acts as a manager, matching people to jobs by skill and interest, then debugging the table when hauling never happens or the doctor is busy cooking. The table is where strategy is expressed without micromanaging each task.",
    "player_interface": [
      "parameter"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m3"
    },
    "sources": [
      "src-rimworldwiki-2026-work"
    ],
    "status": "sourced",
    "substrate": [
      "rule-system",
      "agent-based"
    ],
    "summary": "The player sets which agents do which job types in what order, and agents self-assign from that priority table.",
    "tuning_difficulty": 2,
    "type": "mechanic"
  },
  {
    "_derived": {
      "core_count": 10,
      "earliest_game": "simcity-1989",
      "earliest_year": 1989,
      "incoming": {
        "affected_by": [
          "wave-function-collapse"
        ],
        "involved_in": [
          "learned-build-assist",
          "participatory-planning-sandboxes",
          "symbolic-sim-neural-render"
        ],
        "required_by": [
          "rci-demand"
        ],
        "used_by": [
          "cities-skylines",
          "cities-skylines-2",
          "foundation",
          "frostpunk-2",
          "manor-lords",
          "pocket-city",
          "simcity-1989",
          "simcity-2000",
          "simcity-2013",
          "simcity-4"
        ]
      },
      "prevalence": 10,
      "prevalence_rank": 61,
      "prevalence_share": 0.056,
      "subgenre_spread": 1,
      "technique_count": 1,
      "technique_exposure": 0.375
    },
    "ai_leverage": 3,
    "aliases": [
      "land-use zoning",
      "RCI zones",
      "growables"
    ],
    "authoring_cost": 3,
    "compute_cost": 2,
    "definition": "The player paints a land-use type, often with density, onto tiles or lots. A zone places nothing by itself. Each update the simulation checks zoned lots and grows, upgrades, downgrades, or abandons buildings based on demand, access, utilities, services, pollution, crime, and nearby uses. In SimCity (1989) players zone residential, commercial, and industrial land, and the Sims choose what to build and upgrade based on traffic, power, crime, and proximity to other buildings, so homes next to a power plant seldom reach the highest grade. Cities: Skylines grows buildings in low- and high-density zones along roads. Games without zoning, such as Anno, have the player place every house directly. State: zone type per tile plus building level per lot.",
    "design_levers": [
      "zone categories and density tiers",
      "development rule: growth probability, thresholds, and upgrade conditions",
      "hard requirements such as road access, power, and water",
      "lot size and shape rules",
      "abandonment and decline rules",
      "whether the player can also place specific buildings directly"
    ],
    "dynamics": [
      "City form emerges from the interaction of zones, transport, and land value rather than from direct design.",
      "Nuisance uses push residential away, producing segregated districts and commute traffic.",
      "Successful zones raise demand and land value, which invites more zoning, a growth loop until services saturate."
    ],
    "emergence_potential": 4,
    "failure_modes": [
      "Zones fail to develop with no visible reason, forcing players to hunt through overlays and demand meters.",
      "Cheap zoning paint encourages over-zoning, leaving large empty tracts.",
      "Uniform growth rules produce monotonous cities with little local character."
    ],
    "family": "space-construction",
    "feedback": "reinforcing",
    "id": "zoning",
    "legibility": 3,
    "math_basis": [
      "cellular-automata",
      "system-dynamics"
    ],
    "maturity": "classic",
    "name": "Zoning",
    "open_questions": [
      "Can LLM-driven developer agents make zoned growth explain itself and vary by local character?",
      "Can generated building assets end the repetition of growable buildings across a large city?"
    ],
    "player_experience": "Indirect control. Players paint intent and watch a city grow into it, like gardening. The main skill is diagnosing why a zone stalls or decays and fixing the conditions rather than the buildings.",
    "player_interface": [
      "placement"
    ],
    "provenance": {
      "created": "2026-10-24-taxonomy-m4"
    },
    "sources": [
      "src-wikipedia-simcity-1989"
    ],
    "status": "sourced",
    "substrate": [
      "cellular-grid",
      "agent-based",
      "rule-system"
    ],
    "summary": "The player paints land-use zones, and the simulation decides whether and what to build, upgrade, or abandon on each zoned lot.",
    "tuning_difficulty": 3,
    "type": "mechanic"
  }
]
