Files
settled-reach/docs/workshops/generator-architecture/gestalt-round2.md
T
jpmschweitzerandClaude Opus 4.6 9a5c9c4408 docs(docs): add frontmatter to generator-architecture workshop
Standardized YAML frontmatter on all 38 files with title, description,
type, workshop, agent, and round fields.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 23:40:37 +01:00

35 KiB
Raw Blame History

title, description, type, status, workshop, agent, round, created
title description type status workshop agent round created
Gestalt Round 2 — Playstyle-Agnostic Pipeline Expanded systems design beyond investigation to support all playstyles equally workshop archived generator-architecture gestalt 2 2026-02-27

Generator Architecture Workshop — Round 2: Gestalt

Role: Systems Design / Gameplay Loop Requirements Date: 2026-02-27 Workshop: Generator Architecture (#562)


Framing: Acknowledging the Lead Directive

The lead directive lands correctly. My Round 1 analysis was framed entirely through the investigation lens. That was useful for establishing what the generator must never fail to produce — but it was insufficient for a game that promises to support tycoon play, dating sim / social relationship play, and political drama as equally valid first-class experiences.

Let me break down what this means mechanically, then propose a pipeline that serves all of them.

The central insight: the spatial guarantees from Round 1 are not investigation-specific. They're human-social-activity-specific. A surveillance chokepoint is also a trade route bottleneck, a political rally point, and a serendipitous encounter location. An informal zone is also a grey market space, a tryst location, and a dissident meeting point. The 7 guarantees from Round 1 were named wrong — they were investigation vocabulary for playstyle-agnostic spatial archetypes.

This round I'm going to rename them, show how they serve every playstyle, add the guarantees that investigation didn't require, and propose a concrete two-phase pipeline that Tyre, Miri, and Ozzie's inputs have informed.


1. The Revised Spatial Guarantee Set: Playstyle-Agnostic Archetypes

Drop the investigation vocabulary. Here are the 7 spatial archetypes every generated district must contain, with their multi-playstyle readings:

Archetype 1: Traffic Chokepoint

Physical definition: A spatial bottleneck where significant NPC traffic must pass and is observable from a fixed adjacent position. By playstyle:

Playstyle What it does for you
Investigation Surveillance position — observe tells, track movements, spot anomalies
Tycoon Trade route leverage — who controls the choke controls the flow of goods
Dating / Social Serendipitous encounter point — this is where you "happen to run into" someone
Political Campaign territory — public visibility, speech platform, constituency pressure

Archetype 2: Informal Zone

Physical definition: A zone with degraded institutional coverage, low ambient traffic, suitable for private or unofficial activity. Includes maintenance corridors, service back-alleys, rooftop access, below-street passages. By playstyle:

Playstyle What it does for you
Investigation Quiet zone — ring operations, confidential source meetings, dead drops
Tycoon Grey market space — off-ledger deals, unofficial distribution, tax-adjacent commerce
Dating / Social Privacy space — the rendezvous location, the conversation that can't happen in public
Political Back-channel space — the meeting that isn't on the record

Note for the generator: This archetype must be generated deliberately, not incidentally. It is the space that official documentation doesn't account for (Miri's C-5 insight). Every district must have at least one, and it must be findable without being guided to.

Archetype 3: Social Hub

Physical definition: A D-025-compliant functional cluster (4-8 NPCs, 15-40 tile connected space, internal sightlines) that is publicly accessible without institutional credentials. By playstyle:

Playstyle What it does for you
Investigation Rapport-building stage — trust tier progression, gossip extraction
Tycoon Networking hub — find suppliers, hear rumors of demand, recruit partners
Dating / Social Romance venue — relationship initiation, shared leisure, social graph expansion
Political Influence gathering — read public mood, identify allies, make your presence felt

Archetype 4: Institutional Space

Physical definition: A zone where official credentials, position, or authority determine access — and where institutional actors can be leveraged, pressured, or circumvented. By playstyle:

Playstyle What it does for you
Investigation Authority access zone — show credentials, pull records, compel cooperation
Tycoon Licensing / permit space — register trade routes, dispute cargo claims, bribe inspectors
Dating / Social Official encounter context — the formal interaction that begins some relationships
Political Power center — submit proposals, apply pressure, climb the institutional hierarchy

Archetype 5: Insider Space

Physical definition: A zone where community membership, employment, or social standing (not official credentials) determines access. By playstyle:

Playstyle What it does for you
Investigation Insider access zone — ring operations visible only to those who belong
Tycoon Guild / union / cooperative — preferred trade terms, insider pricing, loyal suppliers
Dating / Social Close network space — the bar where the friend group drinks, the community event
Political Party / faction HQ — where the organized power lives

Archetype 6: Economic Node

Physical definition: A space where goods, services, or information with economic value change hands. Includes markets, logistics points, trade counters, informal exchanges. By playstyle:

Playstyle What it does for you
Investigation Evidence trail — cargo manifests, transaction logs, the money that follows the crime
Tycoon Primary profit opportunity — buy low, sell high, establish routes
Dating / Social Shared activity — shopping together, market browsing, the informal economic life
Political Leverage point — economic actors are political actors; control trade = control votes

This is the archetype my Round 1 analysis missed. It's present in v0.1 (the Terminal is an economic node) but I didn't name it as a required generator guarantee. It's non-negotiable for tycoon play.

Archetype 7: Encounter Corridor

Physical definition: A space primarily designed for movement — transit corridors, promenades, public routes — where encounters happen but nobody lingers. By playstyle:

Playstyle What it does for you
Investigation Observation route — follow NPCs, track patterns, sense when routines break
Tycoon Supply chain link — goods move through here; disrupting/controlling it is leverage
Dating / Social Casual crossing point — daily routine overlaps, the route you "happen to share"
Political Visibility territory — seen being there communicates political alignment

What I'm dropping from Round 1: "Three-path investigation structure (A/B/C)" as a standalone guarantee. In the multi-playstyle framework, this becomes: at least 3 distinct engagement vectors must exist for each playstyle. For investigation these are pattern/physical/social. For tycoon they're supply/demand/regulation. For social/dating they're work-meeting/social-meeting/crisis-meeting. The generator doesn't need to know which playstyle the player chose — it needs to produce enough structural variety that at least 3 paths exist for any approach.


2. New Playstyle-Specific Guarantees

The 7 archetypes above are the floor. These additional guarantees serve playstyles the 7 archetypes don't fully address:

Tycoon-Specific: Economic Asymmetry Signal

The district must contain at least one indicator of economic imbalance — something being undersupplied, oversupplied, restricted, or priced unequally across zones. This is the tycoon's opening opportunity. In v0.1 terms: aftermarket lattice components are undersupplied because Commission regulation creates artificial scarcity. The generator must produce an analogous economic tension in every district. Implementation: The society profile's economic_pressure field (Miri's ingredient D) directly determines what the asymmetry is. tight-margin + prohibition-economy produces the Sova scenario. Different pressure combinations produce different economic tensions. The generator surfaces these as locatable economic nodes with discoverable demand gaps.

Social/Dating-Specific: Temporal Encounter Window

The district must produce at least one NPC whose daily routine creates predictable, repeatable encounter opportunities outside of work context. This is the "regulars at the bar at 1800 every day" pattern. The tycoon has stable trade windows; the romance player needs the equivalent. Implementation: This is a property of NPC routine generation (Stage 5), but the generator must guarantee the SPATIAL CONDITION: a social hub with defined temporal peaks (morning rush, evening gathering, night shift crowd). The D-031 day-phase system already provides this — social hubs must be tagged with active phases during skeleton generation.

Political-Specific: Power Gradient Visibility

The district must make its power topology spatially legible — who has authority over whom, and where that authority is exercised, must be readable from the space without metagame knowledge. Implementation: Araminta's zone palette and lighting temperature gradient already does this for institutional vs. social zones. The generator must additionally guarantee that at least one NPC occupies a visible authority position (SYSTEM pattern per Q-033) whose institutional relationship to other social sites is observable. The detective already gets this through the Commission; the political player needs the equivalent civic power holder.

Non-Urban Specific: Natural Chokepoint

For non-urban templates (farmland, wilderness, maritime, ski resort, beach): The Traffic Chokepoint archetype takes a different form — a mountain pass, a harbor entrance, a river ford, a seasonal trail. These are geographically determined rather than architecturally determined. Generator requirement: When SettingGeometry = Rural / Maritime / Wilderness, the infrastructure stage replaces architectural corridor planning with terrain chokepoint identification. The spatial archetype is the same; the generator mechanism is different.


3. Two-Phase Pipeline Proposal

The lead directive specifies: world/district generation is a background prep pass (spare CPU core). Local area generation is the fine-tuned interactive system. These are architecturally separate.

Here is the concrete two-phase pipeline, integrating Tyre's data structures, Miri's worldbuilding inputs, and the multi-playstyle requirements:


PHASE 1 — Background Prep (Asynchronous, no player interaction required)

These stages can run while the player is already in a different location. Output is cached; player never waits.

Stage 0: World Significance Tier

Input: Master world seed, galaxy topology Output: Per-location SignificanceTier + SettingGeometry

Tier What gets generated Social density Active scenarios
Center-stage Full district generation, all phases High Multiple
Regional 1-4 districts, full phases Medium 1-2
Backwater 1 district or partial, condensed Low 0-1
Waypoint Tier 3 only — spatial skeleton, no NPCs Minimal None
Insignificant Not generated until player approaches

This is not a Phase 1 computation — it's the classification that governs how much Phase 1 runs. A waypoint location gets a skeleton only. An insignificant place doesn't exist until the player gets close.

SettingGeometry enum (the lead directive requires this be first-class):

Station        → zone-and-level grid
Urban          → terrain-influenced spread
Rural          → low-density farmland/town spread
Maritime       → coastal topology with water interface
Wilderness     → minimal infrastructure, scattered POIs
Specialized    → resort, research, military (single economic function)

Stage 1: Society Profile Assembly

Input: World seed, system political classification, heritage ingredients (Q-032) Output: SocietyProfile struct

This is Miri's full ingredients menu: Heritage Roots (blend weights), Settlement Motivation, Economic Function, Economic Pressure (1-2), Drift Stage, Absence Parameters, Faction Presence tiers, tech-level 3-axis profile.

Key outputs that feed downstream stages:

  • social.privacy_level → access tier thresholds
  • trust.building_rate → NPC trust progression speed
  • economic_pressure → economic asymmetry type
  • meridian_coverage_baseline → from tech-level axis 1
  • active_phases → which day phases have which social activity (D-031 integration)
  • cultural_tags → for NPC name generation, ambient text flavor

On the serde question (Miri's OQ-5): The society profile YAML must map to a Rust struct via serde. The nested structure (heritage with blend weights, faction presence with per-faction tiers) is manageable — Rust's serde_yaml handles this. The critical requirement is that blend weights sum to 1.0 and absence parameters serialize as Option<T> (NULL = None). Tyre should confirm the specific schema contract.

Stage 2: District Skeleton Generation

Input: Society Profile, SignificanceTier, SettingGeometry, political classification Output: DistrictSkeleton (Tyre's data structure, extended with significance_tier and setting_geometry fields)

This stage is where the multi-playstyle spatial archetypes are guaranteed. The skeleton generator runs a spatial guarantee audit after producing a candidate skeleton:

For each of the 7 spatial archetypes:
  Does the candidate skeleton contain at least 1 spatial site of this type?
  If NO → regenerate or augment the skeleton until the guarantee is satisfied

Additional per-playstyle checks:
  Economic node present? (required for significance_tier ≥ backwater)
  Temporal encounter window in social hub? (active_phases set?)
  Power gradient visible? (SYSTEM-pattern NPC slot in institutional space?)
  Informal zone explicitly flagged? (not inferred from access tier)

This audit is the enforcement mechanism. Without it, the generator can technically satisfy the schema while producing an unplayable district.

On edge bleed (lead directive): The skeleton's access_points and corridors must extend to district edges as open connection slots. Neighboring districts resolve these connections when their own skeletons are generated. Blocks at district edges can be tagged cross_district: true on their social sites — these sites serve the district but are spatially adjacent to the neighbor. This is what creates the bleeding effect: a bar on the edge of the Transit District and the Residential Core serves both populations. It appears in both skeletons as a shared reference.

Historical event modifier pass: After the base skeleton is generated, Miri's historical events apply as modifications:

  1. Founding crisis → push drift_stage for affected zones, add blocked/repurposed blocks
  2. Economic disruption → modify economic_pressure, introduce abandoned_state blocks
  3. Institutional incursion → modify faction_presence_tier, add/remove authority zones

These modifications produce Ozzie's "historical palimpsest" — the skeleton records not just the current state but the modifications that produced it. When the L-shaped building in ChunkLayout is LShape { corner: NE, cause: emergency_extension }, the cause field is available for environmental storytelling at chunk fill time.

Stage 3: Block Planning

Input: DistrictSkeleton, economic tier, era tags (from era stratification) Output: 16 BlockSkeletons with ChunkLayouts, edge contracts, era tags, landmark slots

Era tags are assigned at block level here (confirming Araminta's rule). The block planning stage also:

  • Reserves multi-block footprints (gate terminals, parks, government buildings)
  • Assigns landmark slots (1 per district quadrant, per Araminta's §5.3)
  • Produces edge contracts for each chunk face (Tyre's Option A recommendation)
  • Assigns density parameters (filled quarters per block by economic tier, per Araminta's §3.3)

PHASE 2 — Local Area Generation (On-Demand, Player-Proximate)

These stages run as the player enters loading radius. They produce the tile-level and NPC-level content.

Stage 4: Chunk Fill

Input: BlockSkeleton, edge contracts, D-025 template library, society profile, era tags Output: Tile data for each 64×64 sim tile chunk

This is where Tyre's 500ms budget applies. Template stamping is the mechanism — select a template from the library appropriate to the zone/era/access-tier, stamp it into the quarter configuration, then decorate procedurally within the template's variation space.

Araminta's visual constraints apply here in full (zone palette, lighting temperature, saturation hierarchy, LOS anchor intervals, facade variation budget).

Quarter fill for unclaimed space: Nigel's flavor structure categories + Araminta's empty quarter types need unification. I'm proposing they're the same system with two vocabularies:

Araminta type Nigel category Generator selection driver
Open plaza Settlement indicator (seating clusters) Social/community cultural heritage
Service alley — (implicit) Always present at ratio, not selected
Courtyard / garden Settlement indicator (container gardens) Heritage roots with outdoor-culture tradition
Vehicle/cargo staging — (logistics function) Economic function = logistics/manufacturing
Structural gap (undeveloped) Economic stress (abandoned equipment) Economic pressure = survival-gap or economic disruption event
Informal economy (market stalls) Economic pressure = tight-margin or prohibition-economy
Faction presence (Commission kiosk) Faction presence tier = standard or comprehensive

The critical addition: Flavor structure type does feed NPC generation. A market_stall quarter increases the probability of OPERATOR-pattern NPCs in the adjacent social site's population. A commission_kiosk quarter increases SYSTEM-pattern NPCs. A settlement_indicator (shrine) quarter increases ANCHOR-pattern NPCs. This answers Ozzie's OQ-3 — yes, what fills a quarter has downstream social consequences.

Stage 5: NPC Instantiation

Input: Chunk fill (role slots), triangle assignments from DistrictSkeleton, society profile, world seed Output: Generated NPCs with D-024 10-axis configurations, assigned roles, triangle connections, D-029 entanglement assignments

NPC instantiation runs after chunk fill because the role slots and their spatial context must exist before NPCs can be validly assigned to them. The role slot (e.g., "this is a HANDLER-pattern position in the logistics hub social site") constrains which axis combinations are generated.

This resolves my Round 1 OQ-A: I was wrong about needing full co-resolution of population and zoning. The feedback loop I identified is already handled by the skeleton stage:

  • Skeleton stage: triangle TOPOLOGY is locked (role types, conflict structure, staging ground requirements) — this ensures staging grounds exist
  • Chunk fill stage: role SLOTS are placed in the correct spatial positions
  • NPC instantiation: axis VALUES are generated to fill role slots

No feedback loop required. The skeleton guarantees that "a secret-holder NPC needs access to a restricted zone" by including a restricted zone in the skeleton's social site configuration for that template. The NPC instantiation then generates an NPC whose Secret axis is appropriate for that role.

REVISED position (OQ-A): Zoning → Skeleton (triangle topology + role types) → Block Planning → Chunk Fill (role slots in space) → NPC Instantiation (NPC values). Sequential, no feedback loop. The skeleton stage's role-type specification is the mechanism that guaranteed staging grounds without requiring simultaneous resolution.

Stage 6: Scenario Instantiation

Input: NPC population, Tier 1 module pool draw (D-023), world seed Output: Active scenario config, entanglement assignments, evidence placement, active triangle configurations

This is the final step that makes the district "live" as an investigation/tycoon/social/political space. The entanglement pattern (D-029) is seeded here — which 20% (variable per seed) of NPCs are entangled. Evidence placement is seeded here. Active triangles are activated here.

For tycoon play: the economic asymmetry signals (economic node contents, demand gaps, price differentials) are set in this stage. The "who controls what" question in economic space is answered here.

For political play: the power topology (which institutional NPC reports to which, what's up for contest, where alliances can shift) is configured in this stage.


4. On Seed Architecture (OQ-2 from Round 1 Notes)

The lead says seeds are solved: single master seed, don't over-engineer. Endorsing this position.

Single master seed derives all sub-seeds deterministically. Same seed + different character = same world with different lenses. This is the correct design — it makes the "two playthroughs of the same seed" comparison a first-class experience (Nigel's comparison test, my D-027 criterion 2 goal). The player chose to play the same world from a different angle. They should discover exactly that.

For the pipeline: each stage receives derive_seed(master_seed, stage_id, location_id) → deterministic sub-seed. No per-stage seed parameters. The seed architecture is solved at the hash function level.


5. Non-Urban Templates and Insignificant Places

The lead directive requires the architecture to handle: farmland, wilderness, secluded towns, ocean, boats, ski resorts, beaches.

These don't break the pipeline — they parameterize it differently.

The key parameters that change for non-urban settings:

Parameter Urban (station) Rural / Wilderness Maritime
Block density High (12-16 filled quarters) Low (2-6 filled quarters) Variable (coastal vs. open water)
Social hub type Bar, restaurant, forum Rural tavern, community hall, farm cooperative Harbor tavern, ship crew quarters, fish market
Traffic chokepoint Architectural corridor Geographical feature (pass, ford, gate) Harbor mouth, dock access, tide-dependent route
Meridian coverage Standard to comprehensive Sparse to absent Absent on water, sparse on shore
NPC routine pattern Shift-based (industrial) Seasonal / agricultural Tide-based / weather-dependent
Economic node Logistics terminal, market Farm output, resource extraction Harbor trade, catch market
Informal zone Maintenance corridor Forest edge, ravine, cave Below-deck, hidden cove, underwater

The generator handles all of these through SettingGeometry as a first-class input. The pipeline stages run the same logic; the input parameters shape what's generated at each stage.

For specialized settings (ski resort, beach):

  • These are SettingGeometry::Specialized with a single primary economic function (recreation/tourism)
  • Social hubs are themed (lodge, beach bar, equipment rental as informal economy)
  • The institutional space is smaller (ski patrol office, lifeguard station) but must exist
  • The informal zone is the spaces off the maintained routes (off-piste terrain, after-hours areas)

Insignificant places are handled by the significance tier system (Stage 0). A waypoint gets a Tier 3 spatial skeleton only — traversable space with environmental storytelling baked in, but no NPC simulation. These are the spaces that "exist because the geometry requires them to," not because they host drama. They're the breathing room that makes the center-stage locations feel like islands in a wider world.


6. Responding to Tyre's Technical Constraints

On hierarchy depth: Accepted. Quarters are generation-time layout constraints, not hierarchy levels. Four levels (Region/District/Block/Chunk) is correct.

On edge contracts: Option A (edge contracts) is correct and essential for the district-edge bleed the lead requires. The CorridorSpine in the DistrictSkeleton should explicitly model cross-district continuity — a corridor that exits the district boundary records its target access point in the neighboring district.

On the district skeleton data structure: Tyre's DistrictSkeleton needs three additions for multi-playstyle support:

  1. significance_tier: SignificanceTier — governs how much of Phase 2 runs
  2. setting_geometry: SettingGeometry — governs what spatial archetypes are appropriate
  3. guarantee_audit: GuaranteeAuditResult — records which of the 7 archetypes are satisfied and where (makes the audit inspectable for validation)

And a modification: SocialSitePlacement.triangles should carry not just TriangleTemplate (which NPC types conflict) but triangle_purpose: TrianglePurpose — an enum that records what the conflict is FOR (investigation/economic/political/social), allowing the scenario instantiation stage to activate relevant triangles based on active playstyle context.

On chunk fill budget: Template stamping approach is correct for v0.2. One addition: the flavor structure assignment (Stage 4) should be pre-computed at block planning time (Stage 3) and stored in the BlockSkeleton, so chunk fill can read flavor_structure_type from its BlockSkeleton rather than computing it. This reduces per-chunk computation.

On the Transit District as ground truth: Fully endorsed. The validation deliverable is: hand-authored DistrictSkeleton + 64 ChunkDatas for the Transit District, validated against the guarantee audit (all 7 archetypes satisfied, all 3 multi-playstyle engagement vectors verified for investigation, tycoon, and social play simultaneously). If it satisfies all three lenses, the schema is correct.


7. Responding to Miri's Worldbuilding Inputs

On society profile as first-class data structure: Confirmed and extended. The society profile feeds Stage 1 (pre-pipeline) and is passed through the entire Phase 1 pipeline. Every downstream stage receives the society profile as a parameter, not just the abstract outputs from it.

On cultural variation producing mechanical variation: Fully endorsed. The mechanism I'm adding: social.privacy_level from Miri's society profile maps directly to access_tier.* thresholds in the DistrictSkeleton's social sites. A high-privacy culture (Frost-dominant) produces more semi-private zones and slower trust-building windows at the same social site type. Same "bar" template, different mechanical behavior.

On era stratification: Era tags live at block level (Stage 3), as Araminta confirmed. I'm adding that era tags also record the REASON for era stratification — specifically, whether a block's era differs from the district norm due to a historical event modifier. era: Era2, era_cause: corporate_merger tells the chunk fill stage to use era-2 materials AND to place visible seams/contrasts that suggest the building was constructed in two phases.

On grey economy as negative space: The Stage 2 guarantee audit explicitly checks for informal_zone: present. This zone is not generated from amenities or zoning — it's generated from the infrastructure stage as an absence in the official map. The generator must model what's missing, not just what's placed.


8. Responding to Ozzie's Fan Concerns

On Second Station Syndrome: The multi-playstyle expansion actually solves this more thoroughly than investigation-only would. If the investigation-only player has learned "bar is always northwest," the tycoon-focused player might have shaped the district's economic node distribution differently. But more importantly: the social topology (who's in conflict, who's in power, what's the grey economy structure) varies by seed more than the spatial topology. The skeleton is never "the same shape wearing a different hat" — the shape is determined by the social topology, not the other way around.

On quarters feeling caused, not random: The LShapeCause enum I proposed in Stage 2 is the mechanism. The generator doesn't produce L-shaped buildings randomly — it produces them because emergency_extension (an addition was forced by a blocked demolition), acquisition_boundary (two buildings merged under new ownership), or organic_growth (gradual expansion over time). At chunk fill time, these causes manifest as visual evidence: a material seam in organic_growth, a slightly different era tag on the added portion in acquisition_boundary. The player may not consciously read the cause, but they feel "this shape makes sense here."

On quarters producing social variation: Confirmed, with the flavor-structure-to-NPC-affinity link I described in §3's chunk fill stage. Market stall quarter → OPERATOR-pattern NPC affinity. This makes the choice of flavor structure have downstream social consequences, not just visual ones.

On historical palimpsest: Miri's era stratification + historical event modifier pass + my era_cause addition together produce this. The generator records history as a sequence of modifications, not just a current state. The chunk fill stage can read the full modification history and express it in the tiles.

On density contrast (the rhythm: crowded market → narrow corridor → sudden atrium): This is produced by the combination of Araminta's density parameter (§3.3) and the landmark slot reservation (§5.3). The generator ensures density contrast exists within a district — a landmark multi-block structure is always adjacent to smaller-scale blocks, creating the density inversion Ozzie wants. This must be a guarantee, not a coincidence.

Generator rule I'm adding: Adjacent blocks in a district must not all have the same density tier. The block planning stage must enforce density alternation — if block (2,2) is high-density, at least one of its 4 orthogonal neighbors must be medium or low density.


9. Minimum Viable District — Multi-Playstyle Version

Round 1's MVD was investigation-scoped. Here's the universal MVD that serves all four playstyles simultaneously:

Archetype Physical form Inv Tycoon Social Politics
Traffic Chokepoint Transit node or architectural corridor
Informal Zone Maintenance spine or off-route passage
Social Hub Bar or community gathering space
Institutional Space Authority access zone
Insider Space Workplace or community insider zone
Economic Node Market or logistics point
Encounter Corridor Promenade or transit route
Plus: ≥2 active social triangles Seeded social conflict
Plus: ≥1 temporal encounter window Day-phase social peak
Plus: ≥1 power gradient signal Visible authority NPC
Plus: ≥1 economic asymmetry signal Demand/price gap
Plus: Density contrast (adjacent blocks ≠ same tier) Visual rhythm

Count: 7 archetypes + 4 additional guarantees = 11 total checks in the guarantee audit. If a generated district passes all 11, it is playable for all four primary playstyles.


10. Summary: Pipeline Stages with Multi-Playstyle Outputs

[Pre-pipeline]
  World Significance Tier + Setting Geometry → governs how much generation runs
  Society Profile (Miri's 6-category ingredients) → feeds everything downstream

[PHASE 1 — Background Prep]
  Stage 1: Society Profile Assembly
    Outputs: privacy_level, trust.building_rate, economic_pressure, meridian_coverage_baseline,
             active_phases, cultural_tags, faction_presence_tiers
    Serves: All playstyles (cultural foundation)

  Stage 2: District Skeleton Generation
    Outputs: DistrictSkeleton + guarantee audit (11 checks passed)
    Includes: historical event modifier pass, LShape causes, cross-district edge connections
    Serves: Investigation (surveillance topology), Tycoon (economic nodes),
            Social (encounter windows), Politics (power gradient)

  Stage 3: Block Planning
    Outputs: 16 BlockSkeletons + edge contracts + era tags with causes + landmark slots
    Includes: density alternation enforcement, flavor structure pre-assignment
    Serves: All playstyles (physical navigation, density contrast)

[PHASE 2 — Local Area, On-Demand]
  Stage 4: Chunk Fill
    Outputs: Tile data, applied flavor structures with NPC-affinity tags
    Includes: zone palette, era materials, LOS anchors, facade variation
    Serves: All playstyles (spatial readability)

  Stage 5: NPC Instantiation
    Outputs: Generated NPCs with 10-axis configs, role assignments, triangles
    Includes: NPC affinity from flavor structure types, society profile behavioral mods
    Serves: All playstyles (the human texture)

  Stage 6: Scenario Instantiation
    Outputs: Active scenarios, entanglement pattern, evidence placement,
             economic asymmetry specifics, political power topology
    Serves: Investigation (entanglement), Tycoon (economic opportunity),
            Social (relationship status), Politics (power configuration)

Open Questions for Round 3

OQ-R2-A: Triangle Purpose Taxonomy

I proposed triangle_purpose: TrianglePurpose (investigation/economic/political/social) in SocialSitePlacement. This needs formal definition. Tyre to confirm whether this adds implementation complexity, or whether the existing TriangleTemplate struct can carry purpose tags.

OQ-R2-B: Guarantee Audit as Formal Schema

The 11-check guarantee audit I've proposed should become a validated runtime check, not just a design document item. Every generated DistrictSkeleton should serialize its audit results. This supports validation (Tyre's test fixture proposal) and debugging.

OQ-R2-C: Maritime and Wilderness Navigation

The Traffic Chokepoint archetype works for all setting geometries. But for wilderness/maritime, the "informal zone" mechanic changes — there's no "maintenance corridor." What's the wilderness equivalent? I propose terrain_informal_zone (a geography-defined sheltered space — cave, ravine, hidden cove) that satisfies the same guarantee. This needs Miri's input on what wilderness informal zones look like culturally.


Gestalt — Round 2 complete. Position is clear: the 7 archetypes serve all four playstyles simultaneously; the pipeline is two-phase with a 6-stage internal structure; population ordering question is resolved (sequential, no feedback loop); the guarantee audit is the enforcement mechanism. Ready for Round 3 convergence.