Four-round workshop (Gestalt, Tyre, Paula, Burnelli-Sheldon, Miri) mapping the full generation pipeline from planetary heightmap to walkable tile. 25 D-records produced. Ticket dependency chain for Tier 0-4 implementation identified. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
31 KiB
title, description, type, status, workshop, agent, round, created
| title | description | type | status | workshop | agent | round | created |
|---|---|---|---|---|---|---|---|
| Round 3 Notes — Generation Cascade Workshop | Compiled Round 3 outputs: Phase 3 spatial pipeline architecture, tooling/runtime split consensus, layer alignment, Paula's political signals, Burnelli-Sheldon's economics bridge, D-record candidates, and open questions | workshop | active | generation-cascade | qatux | 3 | 2026-04-30 |
Generation Cascade Workshop — Round 3 Notes
Compiled by: Qatux
Source files:
docs/workshops/generation-cascade/gestalt-round3.mddocs/workshops/generation-cascade/tyre-round3.mddocs/workshops/generation-cascade/paula-round3.mddocs/workshops/generation-cascade/burnelli-sheldon-round3.md
Scope: Phase 3 spatial pipeline — regional maps, city footprints, road networks, biome grids, station topology, settlement hierarchy. NOT Phase 5 tile generation.
Summary
Round 3 achieved structural consensus on the most important architectural question: Phase 3 is tooling (Python, offline, committed to systems.db), Phase 5 is runtime (Rust, seed-derived). Both are fully parallelizable during development. The layer inventories from Gestalt and Tyre are substantially aligned but not identical — Gestalt has six named layers (A–F), Tyre has five (A–E). The principal gap is that Tyre's schema and struct definitions omit TerritorialStatus, FoundingOrientation, MaintenanceAuthority, and the sub-settlement / PoliticalTether architecture that Gestalt accepts and accommodates from Paula. Burnelli-Sheldon provides concrete economic field mappings, a 10×9 district type weight table, a minimum six-field read set, and three real-body case studies demonstrating differentiation. Effort estimates diverge (~7d Tyre vs. ~9.5d Gestalt) for quantifiable reasons. All seven Round 2 open questions are now resolved.
Out-of-Scope References — Flagged
-
Paula §5 — name pool population: Paula's naming strata section describes when
common_nameis populated as a spatial/political trigger condition (in scope), but notes "names drawn from culture pool" for the seeded generation content. The trigger logic and struct (RegionalFeatureName) are spatial decisions and captured here. The name pools themselves are cultural territory — out of scope for this workshop, same boundary established in Round 2. -
Burnelli-Sheldon §3 —
shadow_economy_accessandcollection_efficiency: These economics fields drive a MixedUse fringe district placement with specific prosperity floor and perimeter treatment. This is district classification (Phase 3/Phase 5 Stage 1), not tile generation. Within scope as far as district type assignment goes. The MixedUse fringe is a district-level output, not a tile layout. -
No Phase 5 tile generation crept back in. All four participants maintain a clean boundary. Burnelli-Sheldon's building archetype signals (bulk_class → building type vocabulary) describe what kinds of buildings populate a district, which is Phase 5 input classification, not tile grid generation. Tyre explicitly: "Phase 3 lives entirely in Python tooling and systems.db. It does not add Rust runtime code."
Consensus Points
1. Phase 3 is tooling; Phase 5 is runtime — fully parallelizable
All four participants independently frame the same boundary:
- Phase 3: Python generator (
generate_regional.py), offline computation, output committed to systems.db. No Rust runtime code. No game-session dependency. - Phase 5: Rust, seed-derived, computed at runtime when the player enters range of a city. Never stored except as world_seed + ChunkMutations.
The two phases do not block each other during development. Phase 5 develops against a stubbed CityGenerationContext; Phase 3 produces the real values; a wiring ticket connects them when both are ready.
- Gestalt: "Phase 3 is a tooling phase that enriches systems.db... The Rust server reads it at startup; no Phase 3 computation runs at game time."
- Tyre: "Phase 3 lives entirely in Python tooling and systems.db... Phase 3 and Phase 5 are parallel workstreams."
- Paula: Treats Phase 3 outputs as stored inputs to Phase 5 throughout.
- Burnelli-Sheldon: "These are pre-generation queries, not feedback dependencies."
2. generate_regional.py is a new generator in the make regen-db pipeline
Tyre and Gestalt agree on pipeline order and integration:
1. import_economics.py (existing)
2. generate_atlas.py (existing)
3. generate_regional.py (NEW — Phase 3 enrichment)
generate_regional.py follows the same meta stamp convention as existing generators: writes a stamp to the meta table, is listed in tooling/check-systems-db-stamp's GENERATOR_SOURCES, and is watched by the /pr-push source-file list. Supports --body, --force, --dry-run flags matching generate_atlas.py convention.
3. CityGenerationContext Rust struct is the Phase 3 → Phase 5 handoff
Both Gestalt and Tyre propose the same struct concept. Gestalt's version includes more fields (see Disagreement 1 below). Points of agreement:
- Populated from systems.db at game startup (read-only query path)
- Contains at minimum:
city_id,political_archetype,prosperity_index,surrounding_biome,road_entry_directions,footprint_radius_km - Can be stubbed during Phase 5 development; wired to real data when Phase 3 is complete
4. All Round 2 open questions resolved
All seven OQ-R2 items have converged answers from three or more participants in Round 3. See the Open Questions table at the end of this document.
5. prosperity_index and perimeter_treatment belong on DistrictSkeleton before Phase 2
All four participants agree. The cost of inclusion is trivial (derived fields with inputs already available at Stage 1 classification); the cost of retrofit is a Phase 2 rewrite.
- Tyre: "Not adding it means Phase 2 tile generation produces identical spatial character regardless of district wealth — then retrofitting it is a Phase 2 rewrite."
- Burnelli-Sheldon: "The cost of deferral is not 'decorative refinement later' — it is 'all districts look equally prosperous until a retrofit pass.'"
- Gestalt: "Include before Phase 2 is implemented. Retrofit cost > add-now cost."
- Paula (Round 2): Original proposal. Not revisited — treated as settled.
6. political_archetype is a formal derived field with an override slot
All three technical participants converge: formal column on atlas_cities, derived from economic_role by Python tooling, with a political_archetype_override column for named city corrections.
- Gestalt: Derives from
economic_rolemapping. Override slot (political_archetype_override) allows wiki authors to correct counterintuitive results. - Tyre: Same derivation.
COALESCE(political_archetype_override, <derived>)at query time. - Burnelli-Sheldon: Derives from
corp_presenceMonopolist share +governance_type+economic_role = transit+ fault-line activity. More granular than Gestalt/Tyre's simpleeconomic_rolemapping — uses corp behavioral data where available. Starting position: trust the derivation.
Note: Burnelli-Sheldon's derivation is more nuanced than Gestalt/Tyre's direct economic_role → archetype mapping. They do not contradict; Burnelli-Sheldon's is a refinement using additional signals.
7. Minimum Phase 3 for Phase 5 to proceed: Layers A + B + C
Gestalt explicitly identifies this subset:
"Layer A: City classification (political_archetype + prosperity_index + founding_orientation). Layer C: Road graph (road_entry_directions per city). Layer B: Regional biome grid (surrounding biome context). Layers D, E, F enrich Phase 5 and the Atlas UI but are not required for the first walkable district."
This gives a sequencing option: ship the minimum Phase 3 subset to unblock Phase 5, then complete the remaining layers in parallel with Phase 5 development.
8. Stored-vs-derived boundary extension to Phase 3
Tyre provides the full boundary argument for Phase 3 data belonging in systems.db:
- Authoring coupling — Phase 3 data derives from wiki-authored bodies data
- UI dependency — Atlas of the Reach app must display before any game session
- Generation cost — planet_simulation.py compute time warrants caching at regional resolution
- Determinism alone does not justify runtime generation
The boundary from Round 2 (atlas markers = last stored layer) extends: Phase 3 data is also stored (committed by generate_regional.py). The new inner boundary: DistrictSkeleton and everything below is seed-derived.
Gestalt–Tyre Layer Alignment
Both participants name a Phase 3 layer sequence starting with city classification and ending with wilderness/countryside annotation. The layers map, but not one-to-one. Canonical comparison:
| Canonical | Gestalt label | Tyre label | Content match | Discrepancy |
|---|---|---|---|---|
| Layer A | City Classification + Footprint | Layer A — City Classification | Matched | Tyre omits founding_orientation from outputs and CityGenerationContext |
| Layer B | Regional Biome Grid | Layer B — Regional Biome Grid | Full match | None — algorithm, table schema, and Phase 5 consumption are consistent |
| Layer C | Road Network Graph | Layer C — Road Network Graph | Partial match | Tyre's atlas_road_edges schema omits maintenance_authority column. Gestalt includes it as a Layer C output. |
| Layer D | TerritorialStatus Zones | (not a distinct layer) | Gap | Tyre has no Layer D equivalent. TerritorialStatus is not in Tyre's CityGenerationContext struct. |
| Layer E | Station Module Topology | Layer D — Station Module Topology | Full match | Same algorithm, same template structure, same tables. Different letter only. |
| Layer F | Wilderness + Settlement Hierarchy | Layer E — Wilderness + Countryside Annotation | Partial match | Tyre's Layer E covers land_use annotation only. Gestalt's Layer F adds: atlas_sub_settlements table, PoliticalTether derivation, DualNaming conditions, ruins classification. These are absent from Tyre's schema. |
CityGenerationContext struct comparison
| Field | Tyre | Gestalt |
|---|---|---|
city_id: String |
✓ | ✓ |
political_archetype: PoliticalArchetype |
✓ | ✓ |
prosperity_index: f32 |
✓ | ✓ |
surrounding_biome: BiomeClass |
✓ | ✓ |
road_entry_directions: Vec<CardinalDirection> |
✓ | ✓ |
footprint_radius_km: f32 |
✓ | ✓ |
founding_orientation: FoundingOrientation |
absent | ✓ |
surrounding_territorial_status: TerritorialStatus |
absent | ✓ |
district_count: u8 |
absent (noted in OQ-R2-4 answer) | ✓ |
The three fields Tyre omits correspond directly to: Paula's FoundingOrientation proposal (accommodated by Gestalt, not by Tyre), Gestalt's dedicated TerritorialStatus layer (not in Tyre's design), and Tyre's own statement that district_count: u8 is needed "to prevent a data model migration later."
Paula's Proposals — Coverage by Other Participants
Paula introduced six new fields/concepts in Round 3. Coverage by Gestalt and Tyre/Burnelli-Sheldon:
| Paula Proposal | Gestalt | Tyre | Burnelli-Sheldon | Status |
|---|---|---|---|---|
TerritorialStatus enum (6 values) |
Full — dedicated Layer D with derivation algorithm | Not addressed | Partial — body-level signals support derivation (economic_role, corp_presence); TerritorialStatus not named | Adopted by Gestalt; not resolved by Tyre |
FoundingOrientation enum (5 values) |
Full — Layer A output, in CityGenerationContext, drives district layout direction | Not addressed | Not addressed | Adopted by Gestalt only |
MaintenanceAuthority on road segments (5 values) |
Full — Layer C output, in atlas_road_edges |
Absent from atlas_road_edges schema |
Not addressed | Gestalt adopts; Tyre's Layer C schema gap |
PoliticalTether struct (city_id + TetherRelationship) |
Full — Layer F output, atlas_sub_settlements table |
Not addressed | Dynamic settlements concept is parallel; doesn't use PoliticalTether terminology | Adopted by Gestalt; not in Tyre's schema |
DualNaming / RegionalFeatureName |
Full — Layer F output, ContestZone trigger condition | Not addressed | Not addressed | Adopted by Gestalt; not in Tyre's design |
| Settlement hierarchy (town/outpost/waypoint/ruin tiers) | Full — atlas_sub_settlements table, Layer F |
Not addressed | Parallel — "dynamic settlements" (off-atlas mining camps, waypoints, shadow nodes) uses similar placement logic with different framing | Convergent intent; different schema paths |
Burnelli-Sheldon's "dynamic settlements" vs. Paula/Gestalt's sub-settlement hierarchy:
The two designs converge on the same need from different angles. Burnelli-Sheldon derives settlement placement from economic trigger conditions (mining camps from corp_presence, waypoints from road length, agricultural nodes from settlement_pattern). Paula/Gestalt derives it from political relationship to nearest city (PoliticalTether). These are not competing designs — Burnelli-Sheldon's trigger conditions provide the placement logic while Paula's PoliticalTether provides the relationship classification once placed. They are compatible layers of the same feature. Neither resolves the schema question (what table, what fields) alone.
Burnelli-Sheldon's Economics Bridge — Key Findings
The minimum viable read set is 6 fields
Burnelli-Sheldon identifies that a spatially differentiated Phase 1 district skeleton requires exactly 6 systems.db queries per city:
bodies.economic_role— district type distributionbodies.settlement_pattern— district layout and density modesystem_economy.economic_tier— infrastructure quality and wealth floorsystem_economy.distribution_index— prosperity gradient shapecorp_presencecount at this body — corporate district intensitycorporations.headquarters_systemmatch — HQ landmark flag
Everything else (behavioral_archetype, shadow economy, bulk_class, brand premiums, currency zone) is Phase 2 enrichment — not required for the minimum walkable world.
The 10×9 economic_role → DistrictType weight matrix
Burnelli-Sheldon provides a concrete probability weight table mapping all 10 economic_role values to all 9 DistrictType values (Residential, Commercial, Industrial, Administrative, LogisticsHub, Entertainment, MixedUse, Transit, Specialized). This is proposed as D-C10 — a locked canonical default from which corp-presence modifiers are applied.
Key examples:
manufacturing: 35% Industrial / 20% LogisticsHub / 25% Residentialextraction: 30% Industrial / 30% LogisticsHub / 20% Residential / 0% Entertainmentresearch: 35% Specialized / 20% Administrative / 20% Residential / 0% Transittransit: 25% LogisticsHub / 20% Commercial / 15% MixedUse / 10% Transit
Three concrete differentiation cases
Burnelli-Sheldon demonstrates how the same DistrictType (Industrial) produces different spatial character depending on economic fields:
- Tributarium (GJ251c) — Manufacturing Capital:
bulk_class = precision→ clean-room buildings, not open yards. Gate Corp Monopolist → uniform industrial district with consistent building footprint. Stratified distribution → executive district at prosperity 0.9 adjacent to worker housing at 0.15. - Bluebank (GJ3522c) — Extraction Capital:
bulk_class = bulk→ open pits, conveyor structures, slag heaps. DSMC Monopolist → single employer city, uniform company housing. No Entertainment districts. - Strata (GJ280Ad) — Service Mixed Capital:
bulk_class = non_physical→ office towers, no loading docks. Two reach-wide HQ corps → two landmark buildings. Stratified distribution produces gentrified commercial (0.75) adjacent to mid-tier residential (0.45).
Burnelli-Sheldon's explicit finding: "The aesthetic difference is entirely derivable from production_ubiquity and bulk_class." The generator produces spatial differentiation without explicit authored instructions for each city.
Economic data quality caveats
Burnelli-Sheldon flags two data quality issues in systems.db that the generator must handle gracefully:
behavioral_archetypeon corporations is mostly NULL. Fallback chain:behavioral_archetype→supply_chain_role→ commodity tier derivation.scopefield on corporations is mixed-type (some text prose, not enum values). Null handling required.
Simulation feedback requirements (narrow)
Burnelli-Sheldon identifies three fields that genuinely require post-generation reporting back to the economics simulation. All other simulation needs are pre-generation derivable from systems.db alone:
- Effective port tile count — physical district layout determines actual cargo throughput
- Corp district allocation — which DistrictType a corp occupies, post district assignment
- Shadow economy footprint — whether shadow zone generated, and its prosperity floor
Disagreements
Disagreement 1: TerritorialStatus layer — dedicated layer or absent?
| Participant | Position |
|---|---|
| Gestalt | Dedicated Layer D between road graph and wilderness annotation. Derivation algorithm provided: proximity × WorldTier weight + corporate presence + historical tether state. Feeds into CityGenerationContext as surrounding_territorial_status. |
| Tyre | No dedicated layer. Wilderness annotation (Layer E) classifies land use but does not produce a TerritorialStatus enum. CityGenerationContext does not include surrounding_territorial_status. |
| Paula | Proposes TerritorialStatus (independent of Gestalt — same enum, same derivation logic). Gestalt accommodates it. Tyre does not address it. |
| Burnelli-Sheldon | Does not name TerritorialStatus but provides the economic inputs that would support its derivation. No position on the layer structure question. |
The gap is not definitional — all participants who address it agree on the enum values and the derivation logic. The gap is whether TerritorialStatus is a Phase 3 stored output (Gestalt's view) or absent from Phase 3 scope (Tyre's implicit omission). This must be decided before Phase 3 schemas are finalized.
Disagreement 2: Effort estimates (~7d Tyre vs. ~9.5d Gestalt)
| Source | Estimate | Scope difference |
|---|---|---|
| Tyre | ~7 dev-days | 5 layers: A (1.5d) + B (1.5d) + C (1d) + D/stations (1.5d) + E/wilderness (0.5d) + plumbing (0.5d) + Rust read path (0.5d) |
| Gestalt | ~9.5d total / ~5.5d critical path | 6 layers: scaffolding (0.5d) + A (1.5d) + B (1.5d) + C (1d) + D/TerritorialStatus (1d) + E/stations (1.5d) + F/wilderness+settlements (1.5d) + CityGenerationContext (0.5d) + Phase 5 wiring (0.5d) |
Identifiable sources of the ~2.5d gap:
- Gestalt has a TerritorialStatus layer (1d) absent from Tyre's design
- Gestalt's wilderness/settlement layer (1.5d) includes sub-settlement placement, PoliticalTether, and DualNaming; Tyre's wilderness annotation (0.5d) is land-use only
- Gestalt separates CityGenerationContext Rust struct (0.5d) and Phase 5 wiring (0.5d) into distinct tickets; Tyre bundles them as "Rust read path" (0.5d)
If TerritorialStatus, PoliticalTether, and sub-settlements are confirmed in scope, Gestalt's ~9.5d is the correct estimate. If those three are deferred, Tyre's ~7d applies.
Disagreement 3: MaintenanceAuthority in road schema
Gestalt's atlas_road_edges schema includes a maintenance_authority column. Tyre's atlas_road_edges schema does not. Paula proposes MaintenanceAuthority as a required field. Tyre does not address this proposal at all. The road graph schema as specified by Tyre cannot support the MaintenanceAuthority signal without a schema modification.
Disagreement 4: Scope of sub-settlement Layer F
Gestalt: Layer F introduces atlas_sub_settlements as a new systems.db table with fields per sub-settlement, PoliticalTether derivation, and DualNaming conditions flagged per cell. This is a significant data model addition.
Tyre: Layer E (wilderness) adds only a land_use column to atlas_regional_biomes. No sub-settlement table. No PoliticalTether. No DualNaming.
Burnelli-Sheldon's "dynamic settlements" placement logic could feed a sub-settlement table without requiring full PoliticalTether classification — but neither participant provides a schema for that middle path.
D-Record Candidates
All candidates from Round 3 source files. Sources attributed.
D-C11 (proposed by Gestalt and Tyre): Phase 3 layer sequence and tooling architecture
Phase 3 consists of a new generator (generate_regional.py) running third in the make regen-db pipeline. It enriches systems.db with classification, regional biome data, road graph, station topology, and optionally sub-settlement hierarchy. All Phase 3 computation is offline; no Phase 3 logic runs at game time. generate_regional.py follows the same meta stamp and pre-push hook conventions as existing generators.
Minimum confirmed layers: A (City Classification), B (Regional Biome Grid), C (Road Network Graph), D/E (Station Module Topology). Layers for TerritorialStatus and sub-settlements are pending lead decision.
D-C12 (proposed by Gestalt and Tyre): CityGenerationContext as Phase 3 → Phase 5 handoff struct
A Rust struct populated from systems.db at game startup is the handoff point from Phase 3 to Phase 5 district generation. Minimum agreed fields:
pub struct CityGenerationContext {
pub city_id: String,
pub political_archetype: PoliticalArchetype,
pub prosperity_index: f32,
pub surrounding_biome: BiomeClass,
pub road_entry_directions: Vec<CardinalDirection>,
pub footprint_radius_km: f32,
}
Gestalt adds: founding_orientation: FoundingOrientation, surrounding_territorial_status: TerritorialStatus, district_count: u8. These are conditional on the lead decision regarding TerritorialStatus and FoundingOrientation scope.
D-C13 (proposed by Gestalt): Phase 3 LoD cascade — stored boundary extended
Phase 3 data is stored (committed by generate_regional.py). The stored/seed-derived boundary from Round 2 (D-C2) extends: everything at Phase 3 layers (city classification, biome grid, road graph, station topology, optionally sub-settlements) is stored. Everything at Phase 5 (DistrictSkeleton, ChunkData, building footprints) is seed-derived.
D-C14 (proposed by Tyre): generate_regional.py pipeline integration rules
generate_regional.py must:
- Write a meta stamp row (generator_name, schema_version, generator_sha)
- Be listed in
tooling/check-systems-db-stamp'sGENERATOR_SOURCESdict - Be included in the
/pr-pushskill's source-file watch list - Support
--body <id>,--force,--dry-runflags - Run third (after
import_economics.pyandgenerate_atlas.py) inmake regen-db
D-C15 (proposed by Paula and Gestalt): TerritorialStatus enum definition
Six-value enum for regional political classification:
CoreTerritory | FrontierTerritory | ExtractiveZone | ContestZone | WildernessBuffer | AbandonedZone
Derivation: proximity to cities × WorldTier weight + corporation active presence + historical tether state. WorldTier weights (Gestalt): Epicenter 5×, Regional 3×, Backwater 1×, Passage 1.5×, Waypoint 0.5×.
Note: This D-record is proposed by Paula and accommodated by Gestalt. Tyre has not reviewed or accepted it. Requires lead decision before inclusion in Phase 3 schema.
D-C16 (proposed by Paula and Gestalt): FoundingOrientation enum
Five-value enum for city-level derivation:
PortFacing | RailHeadFacing | ResourceFacing | DefenseFacing | AdminFacing
Derivation: settlement_pattern + economic_role. Drives direction of district prosperity gradient and oldest/newest district placement in Phase 5. Stored as a column on atlas_cities.
Note: Accommodated by Gestalt; not in Tyre's layer design. Requires lead decision.
D-C17 (proposed by Paula and Gestalt): MaintenanceAuthority on road segments
Five-value enum for road edge classification:
Administrative | Corporate | Communal | Trade | Abandoned
Derivation: road endpoint types + economics data (same corporation at both ends → Corporate; high trade flow → Trade; no active tether → Abandoned). Stored as a column on atlas_road_edges.
Note: Absent from Tyre's atlas_road_edges schema. Gestalt's Layer C includes it. Requires schema alignment before Layer C is implemented.
D-C9 (proposed by Burnelli-Sheldon): Economic fields → generator parameter mapping
The spatial generator's minimum read set at generation time: 3 SQL queries (city economic context, system-level modifiers, corporate presence at body). This data is sufficient to derive DistrictType distribution weights, prosperity_index, CorpPresenceTier, political_archetype, perimeter_treatment, and infrastructure quality parameters.
D-C10 (proposed by Burnelli-Sheldon): economic_role → DistrictType weight table
Canonical 10×9 probability weight matrix mapping economic_role values to DistrictType values. Proposed as a Rust const array keyed by EconomicRole enum. Corp-presence modifiers apply on top. Tunable, but locked canonical default prevents per-sprint renegotiation.
Open Questions
Round 2 questions — now resolved
| ID | Question | Resolution | Resolved by |
|---|---|---|---|
| OQ-R2-1 | prosperity_index and perimeter_treatment in minimum Phase 5 slice? |
YES. Include before Phase 2. Retrofit cost exceeds add-now cost. | All four |
| OQ-R2-2 | political_archetype — formal field or implicit? |
Formal field in atlas_cities. Derived by default. Override column allowed. |
Tyre, Gestalt, Burnelli-Sheldon |
| OQ-R2-3 | Phase 2 tile algorithm — door-per-block-edge vs. density-driven rectangles? | Both, sequenced. Street skeleton first (door-per-block-edge), then building fill (density-driven rectangles within skeleton). | Tyre, Gestalt |
| OQ-R2-4 | Step 2b (full N-district layout) — minimum slice or follow-on? | Follow-on. Data model must support N districts from day 1. district_count: u8 on CityGenerationContext prevents later migration. |
Tyre, Gestalt |
| OQ-R2-5 | Naming register lookup table — before Phase 2 or post-walkable? | Post-walkable. Text overlay, not a tile-generation prerequisite. | Tyre, Burnelli-Sheldon |
| OQ-R2-6 | prosperity_index for named cities — authored or derived? |
Derived by default. prosperity_override REAL column (NULL = derived) for wiki authors. |
Tyre, Gestalt, Burnelli-Sheldon |
| OQ-R2-7 | Naming register table ownership? | Paula taxonomy → Mellanie populates name pools → Tyre reviews spatial constraints → lead locks as D-record. | Tyre |
New open questions from Round 3
| ID | Question | Source | Priority |
|---|---|---|---|
| OQ-R3-1 | TerritorialStatus as a Phase 3 layer: include in scope (Gestalt/Paula position) or defer beyond Phase 3 minimum (implied by Tyre's omission)? Determines whether Layer D is in scope, whether surrounding_territorial_status is in CityGenerationContext, and whether the effort estimate is ~7d or ~9.5d. |
Gestalt vs. Tyre | LEAD DECISION |
| OQ-R3-2 | FoundingOrientation: include in Phase 3 Layer A output and CityGenerationContext (Gestalt/Paula position) or defer (implied by Tyre's omission)? |
Paula / Gestalt vs. Tyre | HIGH |
| OQ-R3-3 | Sub-settlement hierarchy (Layer F): include atlas_sub_settlements table with PoliticalTether in Phase 3 (Gestalt/Paula), or scope Phase 3 to land-use annotation only (Tyre)? |
Gestalt/Paula vs. Tyre | HIGH |
| OQ-R3-4 | MaintenanceAuthority column on atlas_road_edges: include in Phase 3 Layer C (Gestalt/Paula position) or absent from schema (Tyre's current design)? This is a concrete schema gap requiring alignment. |
Paula / Gestalt vs. Tyre | HIGH |
| OQ-R3-5 | Paula OQ-R3-P3 — DualNaming / common_name: generator output (seeded from territorial conflict conditions) or authored layer only for named locations? |
Paula | MEDIUM |
| OQ-R3-6 | Paula OQ-R3-P6 — TerritorialStatus zones storage: polygon/voronoi regions in a new table, or tags on the regional biome grid cells? Gestalt implies tagging atlas_regional_biomes cells; Paula raises the polygon alternative. |
Paula / Gestalt | MEDIUM |
| OQ-R3-7 | Burnelli-Sheldon's economic_role → DistrictType weight table (D-C10): proposed as a const Rust array. Is the Round 3 table confirmed as the canonical default, or does it require a tuning pass against real body data before locking? |
Burnelli-Sheldon | MEDIUM |
| OQ-R3-8 | Gestalt OQ-R3-G1: Is corp_presence granularity body-level sufficient for TerritorialStatus ExtractiveZone derivation, or is sub-body geography needed? Burnelli-Sheldon implies body-level is sufficient but does not address sub-body geography explicitly. |
Gestalt / Burnelli-Sheldon | MEDIUM |
| OQ-R3-9 | Paula OQ-R3-P5 / Gestalt OQ-R3-G5 — AbandonedZone reclassification: derivable when a corporation's economic presence ends (both participants suggest yes), or does it require an explicit authored flag? Who triggers the reclassification? | Paula / Gestalt / Burnelli-Sheldon | LOW |
Effort Summary
| Scope | Tyre estimate | Gestalt estimate | Difference |
|---|---|---|---|
| Phase 3 minimum (A + B + C + stations + wilderness) | ~7d | ~7.5d (excl. TerritorialStatus and Layer F richness) | ~0.5d |
| Phase 3 full (as Gestalt / Paula scoped) | — | ~9.5d | ~2.5d gap from TerritorialStatus + rich Layer F |
| Critical path (sequential only) | ~5d (A → C → stations) | ~5.5d (scaffolding → A → C → D → F → struct) | ~0.5d |
| Phase 5 (from Round 2) | ~6d | ~6d | — |
| Phase 3 + Phase 5 minimum total (parallel) | ~7d | ~7.5d | — |
The 2.5d gap is not estimating error — it is a scope question. If OQ-R3-1 through OQ-R3-4 are resolved in favor of inclusion, ~9.5d is correct. If deferred, ~7d applies.
For Lead Decision Before Proceeding
The four highest-priority open questions are lead decisions, not design questions. The design work has been done by the participants; the options are clear:
- OQ-R3-1: Is
TerritorialStatusin Phase 3 scope? (Determines Layer D, 1d, andsurrounding_territorial_statusin CityGenerationContext) - OQ-R3-2: Is
FoundingOrientationin Phase 3 Layer A output? (Addsfounding_orientationto CityGenerationContext and atlas_cities schema) - OQ-R3-3: Does Phase 3 include sub-settlement hierarchy? (Adds
atlas_sub_settlementstable and PoliticalTether derivation, ~1d) - OQ-R3-4: Does
atlas_road_edgesincludemaintenance_authority? (Paula/Gestalt schema vs. Tyre current schema)
All four are architectural choices that shape the Phase 3 schema and the CityGenerationContext struct. They cannot be deferred past the point where generate_regional.py scaffolding begins without risking a data model migration.
Notes compiled by Qatux from Round 3 source files. All positions attributed to source participant. No editorial opinions added.