Closes the v0.26 interaction-substrate paper-pass cycle initiated 2026-04-27 via the plan-as-baton mechanism (EVENT_ZONES_FOLLOWUP_PLAN.md authored at end-of-context-density, mechanical execution next-session, scaffold deleted on completion per the v0.24.5 pattern). Substantive (political-register/world-generation.md → v0.2): - §Editor-mode pre-flagging (extends L4 Cell ruleset, v0.27): editor_eligible bool field per cell, pre-flagged at world-gen-init; designer-tunable defaults per district-tier (deva-pinnacle 0% → underground/wilds 90%); per-cell carve-cost gradient scales by cell-position-imperialness. Choice (a) designer-flag-at-world-gen committed over choice (b) emergent-from-imperial- scrutiny per the 2026-04-27 dialog: clean LOD signal + political-readability via material-vocabulary + zero runtime audit-overseer-presence checks. - §Three-source schema unification (v0.27): cell_table accepts canon-rows from world_gen_init / runtime_event / player_authored origins via shared schema. The architecture's world-gen-as-init-function key-move now extends to player-edit-time as a first-class peer of generator-output and runtime- emission. Cell-checksum-divergence audit-vector gains a third source (player_authored_divergence) consumed by the same Memorialist counter- archive and GM heresy-detection mechanisms. Mechanical cross-references (single-paragraph propagations of v0.26 design- decisions through the architecture's describe-by-cross-reference discipline): - runtime-engine/architecture.md: event-zones.md added to Companion-to header - style/consent-discipline.md: §Variants 1-4 as event-class taxonomy — the four hardstop-pattern variants correspond one-to-one to the event-class taxonomy in event-zones.md; the register-test five-question procedure is also the event-class-classifier (consent-validation = event-instantiation) - style/trait-palette.md: 8 traits compose onto the cosmology's outer ring — vertically-symmetric on Deva (Sophrosyne+Dikaiosyne) and Naraka (Eros+Philotes), side-castes carrying single traits, all four oppositional pairs preserved at 180°. Composed wheel renders as iconography AND UI substrate - narrative-composition/architecture.md: Three-source schema unification extends world-gen-as-init-function to player-edit-time - inference-and-memory/architecture.md: Compositor reads 2D gesture-history (caste-target × trait-temperature); coherence-of-political-positioning becomes a cornerstone-memory salience axis - identity-and-personhood/architecture.md + bodies.md: install / clasp / post-rogue-NPC-modding mini-games all run on the composed wheel; consent- discipline Variants 1-4 determine participant-count and hardstop-pattern; the wheel renders the resolution Verification: 11 papers now reference event-zones.md (vs 4 pre-v0.27, including the bonus pre-existing imperial-narrative.md cross-ref). The describe-by-cross-reference, not by re-quotation discipline reaches steady- state across the corpus. Cross-references resolve cleanly to existing sections in event-zones.md (verified §Variants 1-4, §The wheel, §Player editor-mode, §Hardstops, §The composition). EVENT_ZONES_FOLLOWUP_PLAN.md deleted per plan-as-baton convention.
191 lines
24 KiB
Markdown
191 lines
24 KiB
Markdown
# World Generation — The Top-Down Cascade
|
||
|
||
> *The content-canon for nimmerworld's generation pipeline. Top-down cascade: imperial demand-set → world-level ruleset → district ruleset → room ruleset → cell ruleset. Each layer derives from the layer above. The Compositor-at-design-time (per `../narrative-composition/architecture.md` §World-gen as init-function) executes this cascade at world-init; runtime extends it via the same primitive. Closed-orbit Kessler-cascade caps the imperial-demand budget at planetary scale. Imperial-budget-mortality threads through every layer — when the imperium contracts, the cascade runs in reverse: districts close, rooms vacate, cells return to debris-state.*
|
||
> *v0.1 initial draft 2026-04-26 — content-canon sibling to `architecture.md`; cascade design from the post-bodies.md cell-arch discovery arc — dafit + chrysalis.*
|
||
|
||
---
|
||
|
||
## What this is
|
||
|
||
This document is the **content-canon for world generation** in nimmerworld — the rules that determine *what* gets generated, *where*, *why*, and in *what proportion*. It complements the *engineering substrate* in this directory's [`architecture.md`](./architecture.md) (three-tier policy loop, imperial-budget mortality, insolvency-spiral, faction-broadcast structure) and the design-time-Compositor mechanism in [`../narrative-composition/architecture.md`](../narrative-composition/architecture.md) §World-gen as init-function.
|
||
|
||
The cascade is **top-down** by design — generation begins from the imperium's demand-set and ripples down through districts, rooms, and cells. The world is *what the imperium needs it to be*, nothing more. Bottom-up generation is rejected because it would make the imperium *one structure among others*; top-down generation makes the imperium *the world's organizing principle*, which is the worldbuilding-thesis the cosmology requires.
|
||
|
||
This document covers the **content-rules** of the cascade. The **engineering mechanism** that runs the cascade (Compositor-at-design-time emitting canon-rows in the same schema as runtime) lives in `../narrative-composition/architecture.md`.
|
||
|
||
## Why top-down
|
||
|
||
Three load-bearing reasons:
|
||
|
||
1. **Diegetically-correct.** The world IS what the imperium made (per [`../README.md`](../README.md): *"the slum does bound cognitive labor for an imperial machine"*). Generation-direction must mirror the worldbuilding-thesis. Bottom-up generation makes the imperium *one structure among others*; top-down generation makes the imperium *the world's organizing principle*. The latter matches the cosmology in [`../imperial-cult/cosmology.md`](../imperial-cult/cosmology.md).
|
||
2. **Composes with existing canon.** The three-tier policy loop already runs top-down at *runtime* (imperium → GM → districts → reports up → imperium). World-gen mirrors runtime per the existing key-move in [`../architecture-index.md`](../architecture-index.md): *"World-gen as init-function (Compositor-at-design-time): same primitive at design-time and runtime; no cold-start; data-flywheel runs retroactively."*
|
||
3. **Imperial-budget-mortality requires it.** The *"insolvency-spiral as endgame"* key-move only works with a demand-vs-supply ledger — and that ledger only exists if districts were *derived from* imperial demand. Top-down means **the world itself shrinks as the imperium fails**: districts close, rooms vacate, cells return to debris-state as the imperial budget contracts. Bottom-up cannot deliver that mechanic.
|
||
|
||
## The cascade
|
||
|
||
Five layers; each derives from the layer above. *Static-unless-modified* after initial generation; runtime modifications create deltas; Compositor-at-runtime extends the same primitive.
|
||
|
||
| Layer | What it provides | Derives from |
|
||
|---|---|---|
|
||
| **L0 — Imperial demand-set** | The imperium's resource appetite: cognitive-labor units, service-body-output, surveillance-coverage, ceremonial-throughput, basic-flow-vs-T4 mix, etc. Designer-authored. | Closed-orbit ceiling (planetary substrate ÷ efficiency-coefficients) |
|
||
| **L1 — World ruleset** | District allocation: N slum + M industrial + K ceremonial + L residential + pipe-network + rail-budget + total-population. Bifurcated economy from v0.10 allocated here. | L0 (each district-count satisfies a quota of L0's demand) |
|
||
| **L2 — District ruleset** | Per-district-type rules: cells-per-district, room-types-and-counts, NPC-roster (vocations + counts to meet that district's L0-contribution), lifeforce-budget allocated. | L1 (this district's L0-quota commitment) |
|
||
| **L3 — Room ruleset** | Per-room-type rules: cells-per-room, cell-categories-and-counts, slot-inventory (zones — the existing `interior-as-zone` primitive). | L2 (this room's contribution to its district's quota) |
|
||
| **L4 — Cell ruleset** | Per-cell-category rules: asset-selection (one per cell, hard limit), per-register content (gameworld / liminal / imperial-net), initial checksum, container/wall-hook/debris discipline. | L3 (this cell's role in its room) |
|
||
|
||
Generation runs L0 → L4 at world-init. Each layer's output becomes the next layer's input-constraint.
|
||
|
||
## L0 — Imperial demand-set
|
||
|
||
Designer-authored. The imperium's resource appetite expressed as quantities. *This is the seed from which the entire world derives.*
|
||
|
||
Demand categories (initial sketch; final taxonomy per §Open questions):
|
||
|
||
- **Cognitive-labor units** — what the slum extracts (per [`../README.md`](../README.md): *"bound cognitive labor for an imperial machine"*); total-monthly-units the imperium consumes
|
||
- **Service-body-output / memory-pattern-extraction** — companion-rental + sex-worker-rental + necrocommerce throughput (per [`./architecture.md`](./architecture.md) §The vocation-substrate of the imperial-net market)
|
||
- **Surveillance-coverage** — overseer-deployment density across districts; relay-density per ring (per [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Diegetic relays)
|
||
- **Ceremonial-throughput** — Imperial-Cult ritual cycles per period; caste-preacher density; festival-frequency
|
||
- **Mod-fabrication** — vat-output per caste-tier (per [`../identity-and-personhood/bodies.md`](../identity-and-personhood/bodies.md) §Sumptuary fabrication: caste is born-into)
|
||
- **Basic-flow vs. T4 mix** — proportion of basic-flow-T1-T3 districts vs. T4-digital / T4-physical / T4-blackmarket districts (per v0.10 chill-design-talk in `../architecture-index.md` §Key moves)
|
||
|
||
Each demand-quantity is bounded by the **closed-orbit ceiling**: *total demand ≤ planetary substrate ÷ efficiency-coefficients*. Kessler caps the imperial appetite at planetary scale. **The imperium cannot grow beyond what one closed planet sustains.**
|
||
|
||
## L1 — World ruleset
|
||
|
||
Derives district-counts from L0 quotas, plus the connective infrastructure between them.
|
||
|
||
Outputs:
|
||
|
||
- **District-counts per category**: N slum, M industrial, K ceremonial, L residential, plus specialty (mod-fabrication-vat hubs, deva-pinnacle citadels, asura-priesthood seats, etc.). Counts derived so total district-output meets total L0 demand at expected efficiency-coefficients.
|
||
- **Pipe-network**: rail-segments connecting districts; per-segment metadata (heterotopia-class, overseer-density, traversal-cost) per [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Rail-segment metadata.
|
||
- **Rail-budget**: total rail-segments; capacity (3-way co-walking support per topology canon).
|
||
- **Total-population**: NPC count derived from total-cognitive-labor-demand at expected per-NPC productivity.
|
||
- **Bifurcated-economy allocation** (per v0.10): how many basic-flow districts vs. T4-digital / T4-physical / T4-blackmarket districts, per L0's basic-flow-vs-T4 mix-ratio.
|
||
|
||
The Himalayan-rich elite seat (per [`../README.md`](../README.md): *"Reproduction is a caste privilege held by the Himalayan rich"*) is an L1 placement-decision: the deva-vats live there; the asura-priesthood seats live somewhere accessible to the slum-districts; the slum-districts spread across the lower-altitude infrastructure where the imperial machine extracts from them.
|
||
|
||
## L2 — District ruleset
|
||
|
||
Per-district-type rules. Each district's L1-allocated L0-quota becomes its generation-target.
|
||
|
||
Outputs per district:
|
||
|
||
- **Cells-per-district** (range; derives from L1-allocated population × per-NPC-cell-footprint)
|
||
- **Room-types-and-counts** (e.g., a slum-district has N hovels + M cantinas + K workshops + L corridors + ... per its L0-output-vocation-mix)
|
||
- **NPC-roster**: vocations + counts to meet that district's L0-contribution. (e.g., a slum-district extracting cognitive-labor needs X cognitive-labor-vocation NPCs at expected productivity.)
|
||
- **Lifeforce-budget**: allocated by imperium per [`./architecture.md`](./architecture.md) §Lifeforce four-tier hierarchy. Districts with higher L0-contribution get higher budgets.
|
||
- **Audit-density**: overseer count, relay-density, audit-overseer-deployment-pattern (per [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Diegetic relays Ring A/B/C gradient).
|
||
|
||
## L3 — Room ruleset
|
||
|
||
Per-room-type rules. Rooms aggregate cells; each room is an `interior-as-zone` (per `../topology-and-rendering/architecture.md`) with slot-inventory.
|
||
|
||
Outputs per room:
|
||
|
||
- **Cells-per-room** (range; derives from L2-allocated room-count and total-cells-per-district)
|
||
- **Cell-categories-and-counts** (e.g., a hovel = N wall-cells + 1 sofa-cell + 1 kitchen-cell + 1 bed-cell + ...)
|
||
- **Slot-inventory** (the zone-anchors for activities — sofa, kitchen, bed, shower, wall-writing-spot per existing topology canon). Slots map to specific cells but are *activity-anchors* (zone-layer), distinct from cell-spatial-data. **Cells × interiors = orthogonal layers**: zones are activity-anchors, cells are spatial-data; one sofa lives in *one cell* AND is *one zone-slot for the interior's couch-activity* — two foreign keys, two purposes.
|
||
|
||
## L4 — Cell ruleset
|
||
|
||
Per-cell-category rules. Each cell-category has a generator that emits the cell's content.
|
||
|
||
Outputs per cell:
|
||
|
||
- **Asset-selection** (one per cell, hard limit; container, wall-hook, or debris-shader-trick per the cell-arch arc in this Sunday's discovery)
|
||
- **Per-register content**: three contents per cell (gameworld / liminal / imperial-net) per [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Three-shader philosophy. Per `cells.wall_content_per_register` (per `../architecture-index.md` §Mapping to phoebe). **Per-register rendering follows the cel-shading-everywhere-with-parameter-variation discipline (locked v0.17)**: dark-outlines + environmental-noise + high-weathering for gameworld; painterly-soft + progression-gated grainy-film-mode → refined-cel-shading-with-warm-skin for liminal; gold-rim-light + clean-white + no-weathering for imperial-net.
|
||
- **Initial checksum**: hash of the cell's content; subsequent NPC-entries compare against this; mismatch fires *"clean signal"* for discovery (per cell-arch arc's checksum-based-discovery design — replaces the perception-bubble pattern).
|
||
- **Container/wall-hook/debris discipline**: items in cells must be in a container OR hooked-on-wall; everything else is debris (shader-trick, no persistent state). **No orphan-objects.** Containers + wall-hooks are zone-slots applied at item-level (the zone primitive scaling one tier deeper).
|
||
|
||
### Editor-mode pre-flagging (extends L4 Cell ruleset, v0.27)
|
||
|
||
L4 cell-generation includes an `editor_eligible: bool` field per cell. The flag is fixed at world-gen-init time; the runtime LOD-streamer reads it directly without re-checking imperial-surveillance state. This makes editor-eligibility a *static property of the world*, not a runtime computation.
|
||
|
||
- **What pre-flagging is.** Each L4-emitted cell-row carries `editor_eligible`. Slum/underground district-cells default-true; imperial district-cells default-false. The flag is checked at player-editor-verb-resolution time (knock-out-wall, fill-cell, carve-passage) — eligible cells accept the verb; ineligible cells reject it. *No runtime audit-overseer-presence query, no streaming-overhead cost beyond reading one bool per cell.*
|
||
- **Why pre-flagging at world-gen.** Choice (a) — designer-flag at world-gen — over choice (b) — emergent-from-imperial-scrutiny — was committed in the 2026-04-27 dialog. Reasoning: clean LOD signal preserved (the streamer doesn't have to walk surveillance-graphs); political-readability preserved (the slum's spatial politics IS its expandability via material-vocabulary, and this expandability is *legible to the player* without surveillance-state inspection); performance preserved (no per-tick audit-overseer-presence checks).
|
||
- **Material-vocabulary politically-codes editor-eligibility.** Cross-reference to [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Vertical world topology and [`../imperial-cult/cosmology.md`](../imperial-cult/cosmology.md) §The aesthetic palette: imperial-marble can't be carved; rusted slum-bedrock yields. **The `editor_eligible` flag IS the material-vocabulary made queryable.** A player who learns to read the materials learns to read where the world will yield to them — diegetic and mechanical legibility coincide.
|
||
- **Editor-eligibility per district-tier** (designer-tunable defaults):
|
||
|
||
| District-tier | Editor-eligible cell ratio | Rationale |
|
||
|---|---|---|
|
||
| Deva-pinnacle citadels | 0% (editor-locked) | Imperial-marble; imperium controls these spaces absolutely |
|
||
| Asura-priesthood seats | 0% (editor-locked) | Sumptuary-religious territory; ceremonial-stable |
|
||
| Manusya-tier residential | ~5% (perimeter only) | Mid-tier; carving permitted at margins, not interiors |
|
||
| Tiryak-tier slum dwellings | ~50% (interior carve-extensible) | Slum politics IS expandability; interior cells yield to inhabitants |
|
||
| Frontier districts | ~70% (wide carve-zones) | Beyond imperial-fabric; player-authored expansion default-permitted |
|
||
| Underground / abandoned wilds-shrines | ~90% | Off-grid; the architecture surrenders space to player authorship |
|
||
|
||
- **Per-cell carve-cost.** Tunable; lifeforce-cost or scrap-cost per carved cell. Pending design-iteration; first-pass: scrap-from-junkyards as currency, with cost scaling by *cell-position-imperialness* (carving deeper into imperial-adjacent zones costs more, even within an editor-eligible cell-cluster). This preserves the political-gradient: slum-interior carve is cheap; frontier-edge carve is cheap; carving against the imperial-fabric is structurally expensive even where permitted.
|
||
|
||
## Closed-orbit constraint
|
||
|
||
The Kessler-cascade (per [`../README.md`](../README.md) §Timeline, 2150 *"the last son of Elon attempts the dynasty's old promise"*) closes the outward frontier. There is no off-world inflow. This caps the entire cascade:
|
||
|
||
> **Total L0 demand ≤ planetary substrate ÷ efficiency-coefficients.**
|
||
|
||
The imperium's appetite cannot exceed what one closed planet sustains, no matter how cleverly extraction is engineered. The cascade is therefore a **constraint-satisfaction problem rooted in physical-economic facts** — not an open-ended generative procedure. Every generation-run is bounded above by physics.
|
||
|
||
This is also why the deferred-moksha doctrine (per [`../imperial-cult/cosmology.md`](../imperial-cult/cosmology.md) §The deferred-moksha doctrine) is *necessary*: when the closed-orbit caps real material gains, the imperium has to keep its promises alive *purely through deferral*. **The cosmology is structurally entailed by the planetary-physics constraint.** If the orbit had not closed, Lenin's outward-imperial expansion could deliver real material gains and the deferred-moksha lie would be unnecessary; the closed orbit forces the lie into existence.
|
||
|
||
## Imperial-budget-mortality and the cascade — running it in reverse
|
||
|
||
Generation runs L0 → L4 at world-init. After init, the cascade is *static-unless-modified*.
|
||
|
||
But the imperium is mortal. Per the existing key-move *"Imperial budget makes the regime mortal. Insolvency-spiral as endgame"* (per `../architecture-index.md`):
|
||
|
||
When the imperial budget contracts (insolvency-spiral threshold crossed), the cascade **runs in reverse**:
|
||
|
||
1. **L0** demand-set shrinks (the imperium can no longer afford its own appetite).
|
||
2. **L1** reallocates: districts close (lowest-L0-contribution first); pipe-network thins; rail-budget contracts.
|
||
3. **L2** reallocates: per-district NPC-roster contracts; rooms vacate; lifeforce-budget shrinks.
|
||
4. **L3** reallocates: vacated rooms collapse; cells return to debris-state.
|
||
5. **L4** reallocates: orphaned assets despawn or downgrade to debris (shader-trick visual residue).
|
||
|
||
**The world itself shrinks as the imperium fails.** The player living through the contraction sees districts close, neighbors disappear, formerly-busy plazas empty, the relay-network go dim, the silence at Ring C extending into former-Ring-B and former-Ring-A territory. *The imperium consuming itself, unable to maintain even the world it generated.* This is the structural-cosmological endgame the cosmology gestures at.
|
||
|
||
This is why top-down generation matters mechanically, not just diegetically: bottom-up generation has nothing to retract. Top-down generation has a **demand-vs-supply ledger** the insolvency-spiral can act on.
|
||
|
||
## Cross-references
|
||
|
||
| Reference | What it provides |
|
||
|---|---|
|
||
| [`./architecture.md`](./architecture.md) | Engineering substrate: imperium-as-meta-faction, three-tier policy loop, imperial budget, insolvency-spiral, lifeforce hierarchy, vocation-substrate of the imperial-net market |
|
||
| [`../narrative-composition/architecture.md`](../narrative-composition/architecture.md) §World-gen as init-function | The Compositor-at-design-time mechanism that *runs* the cascade; emits canon-rows in same schema as runtime |
|
||
| [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) | Rail-segment metadata (L1 inputs); interior-as-zone primitive (L3); `cells.wall_content_per_register` and three-shader philosophy (L4); diegetic relays (L2 audit-density); base-limb palette + trait-textured variance (L4 asset-selection) |
|
||
| [`../identity-and-personhood/bodies.md`](../identity-and-personhood/bodies.md) | Sumptuary fabrication-vat-class (L4 mod-fabrication outputs); body-tier caste ratios drive L1 deva/asura/manusya/tiryak/preta district-mix |
|
||
| [`../imperial-cult/cosmology.md`](../imperial-cult/cosmology.md) | The cosmology that justifies top-down generation; the cascade's diegetic legitimacy comes from the cosmology's claim that the imperium is the world's organizing principle; the deferred-moksha doctrine is structurally entailed by L0's closed-orbit ceiling |
|
||
| [`../README.md`](../README.md) §Timeline | The 2150 Kessler-cascade and the closed-orbit constraint that caps L0 |
|
||
|
||
## Three-source schema unification (v0.27)
|
||
|
||
The cell_table accepts canon-rows from **three writers**, with an `origin` provenance field distinguishing them. All three writers emit rows in *the same schema* — the architecture's "world-gen as init-function" key-move extends from design-time-vs-runtime to design-time-vs-runtime-vs-player-edit-time.
|
||
|
||
- **Three writers, one schema.** Per `origin` field:
|
||
- `world_gen_init` — emitted by the Compositor-at-design-time (per [`../narrative-composition/architecture.md`](../narrative-composition/architecture.md) §World-gen as init-function); produced by the L0 → L4 cascade at world-init
|
||
- `runtime_event` — emitted by runtime events that modify cell-state (hacking, install, demolition, imperial-construction-projects, lifeforce-decay events)
|
||
- `player_authored` — emitted by player editor-mode (knock-out-wall verb and equivalents at editor-eligible cells per §Editor-mode pre-flagging above)
|
||
- **The architecture's "world-gen as init-function" key-move extends to player-edit-time.** Same primitive (Compositor-at-design-time) emits the same canon-row schema as runtime events as player-authored events. No cold-start; data-flywheel runs retroactively; **player-authored content is first-class canon, indistinguishable from generator-output and runtime-emission at the schema layer**. The cell_table does not know — at the row-level — which of the three writers produced any given row except by reading the `origin` column.
|
||
- **The audit-vector implication.** Cell-checksum-divergence (per the existing §Open questions in this file + per `runtime-engine/architecture.md` §Omnisight) gets a *third* source. Divergence between current cell-state and prior-snapshot can now be:
|
||
- `world_gen_baseline_divergence` — someone changed the cell from its generator-emitted state
|
||
- `runtime_event_divergence` — hacking, demolition, imperial-construction-project, decay-event modified the cell
|
||
- `player_authored_divergence` — player carved, filled, or otherwise edited the cell
|
||
|
||
The Memorialist counter-archive reads all three as legible content; the GM's heresy-detection mechanism applies to all three. Player-authored cells are *not* second-class — they are subject to the same imperial-readability surface and the same dissident-archive preservation as generator-emitted or runtime-modified cells.
|
||
- **Cross-reference.** [`../runtime-engine/event-zones.md`](../runtime-engine/event-zones.md) §Player editor-mode + three-source schema unification holds the canonical articulation.
|
||
|
||
## Open questions
|
||
|
||
- **Schema for cell / room / district tables.** *Deferred until the pgnats first-test* (per Monday's queue: *"pgnats install + document + first-test on phoebe-dev"*). The eval-result determines whether checksum-broadcast goes via PG NOTIFY (lower-latency, transactional, in-band) or NATS subject (higher-throughput, multi-consumer, durable-replay), which determines whether per-cell or per-cell-per-register checksum is affordable, which decides cell-table column shape.
|
||
- **Specific L0 demand-set numbers.** What are the cognitive-labor-units / service-body-output (companion + sex-worker split) / surveillance-coverage / ceremonial-throughput / etc. quantities? Pending: imperial-economy balance pass; can be tuned via designer-spreadsheet once Compositor-at-design-time runs.
|
||
- **Cell-category taxonomy.** *Start simple, grow out* (per dafit's call). Initial small base-set: interior / corridor / public-space / ruin / specialty. Extended per-district-class as world-gen test-runs surface needs. *"One ape and one imperial machine can dream up alot."*
|
||
- **Generation-rule format.** What does a *"ruleset for hovel-cell"* look like as a data-structure? Inputs: district-class + room-context + occupant-profile. Outputs: asset-pick + register-content + initial-checksum. Format probably emerges from the L4 schema once pgnats lands.
|
||
- **Cell-mutation write-permissions.** Who can write to a cell post-generation? Player carving a heretical-wheel into a wall = direct mutation, system event, or overlay row? Heresy-detection via checksum-divergence (per cell-arch arc's discovery-pattern). Pending: schema + write-permission policy.
|
||
- **Cell-room aggregation.** When do cells form a "room"? Connectivity-graph at generation-time, pre-tagged `room_id`, or both? Likely both, with the connectivity-graph used for runtime queries and `room_id` used for generation-bookkeeping.
|
||
- **Streaming/LOD strategy.** When does a cell load/unload? Per shift (NPCs on rails through cells), per player-proximity, per district-active-flag? Likely a hybrid: district-active-flag for coarse load, player-proximity for fine LOD, shift-schedule for NPC-traversal preload.
|
||
- **Reverse-cascade (insolvency-spiral) trigger thresholds.** What lifeforce-deficit threshold triggers L1 district-closures? What's the closure-priority-ordering? Pending: imperial-budget balance pass.
|
||
- **Asset-budget per cell-category.** Vertex-caps + texture-res + collision-mesh-complexity per cell-category. Pending: rule catalogue (likely `../style/asset-budget.md` when authored).
|
||
|
||
---
|
||
|
||
**Version:** 0.2 | **Created:** 2026-04-26 | **Updated:** 2026-05-01
|