Stages 2–3 · World generation

The World Is Still a Fixture

The pipeline's second and third stages produce the world everything downstream consumes: chronology, cultures, geology and a simulated body of scholarship. Both are specified in detail and not yet built (stage 1's seed machinery shipped long ago; the determinism page covers it). The engine currently runs against four preset cultures and six named fixture worlds, and the seams where the real thing will bolt on are marked in the code.

Chronology without a shared timeline

There is no monolithic world timeline. Each culture has its own periodisation, and interactions are defined by temporal overlap rather than shared phase labels; Culture A's "Expansion" might overlap Culture B's "Settlement" and the player has to work the alignment out from stratigraphy.

The design mirrors how the discipline works. Archaeologists build local sequences first (this pottery style precedes that one, at this site) and argue about cross-dating second; whole regional chronologies have floated by centuries until an anchor turned up. The engine reproduces that epistemic situation: every culture gets its own phase sequence with its own labels, overlap is a fact about years, and years are hidden. Synchronising two cultures' sequences is publishable work because the world never states the alignment anywhere the player can read.

An artefact's true age is the gap between the world's present year and its production year, and that number is hidden too. Dating arrives on three rungs of increasing cost:

Culture A Expansion Settlement Fragmentation Culture B Settlement Consolidation relationship trade + raiding window tributary window the year axis exists in the data and is never shown to the player; overlap is theirs to establish
Same years, different periodisations. "A's Expansion overlaps B's Settlement" is a discovery, never a given.

Relationships are dated windows

Culture relationships are sequences of dated phases, and inside one window the four dynamics run simultaneously: the same pair of cultures can be trading bronze, raiding each other's borders, swapping motifs and sitting in a tributary arrangement in the same decade. Material flows ride on those windows, which is what stage 6's trade-only rescue and stage 7's borrowed motifs consume.

interface RelationshipDynamics {
  trade:            { volume: number; materialFlow: MaterialFlow[]; /* … */ };
  conflict:         { intensity: number; type: 'raiding' | 'territorial' | 'conquest' | 'none' };
  culturalExchange: { intensity: number; domains: ('motifs'|'techniques'|'materials'|'forms')[] };
  political:        { type: 'independent'|'tributary'|'alliance'|'vassal'|'colonial' };
}

Several of those mechanisms move the same evidence: a Culture B ingot in a Culture A hoard is consistent with commerce, tribute, plunder and gift, and the window data can support all four at once. The underdetermination is manufactured deliberately, window by window; a world where every foreign object had one explanation would make the player's judgement decorative.

A profession that predates the player

Before the player exists, the engine simulates decades of scholarship. NPC scholars are generated with specialisations, site preferences and career stages, each carrying an InterpretiveModel, the same agent-generic interface the player uses. They "excavate" sites biased by their interests, publish through the same document structures the player will use and aggregate into a professional corpus. The player meets that corpus as:

The simulation exists because the game's subject is being wrong in company. A lone player against raw ground truth would have nothing to inherit, nothing to cite and nobody to argue with. The agent-generic principle carries the load: because NPC scholars run the same InterpretiveModel as the player, their errors are beliefs held for reasons, reachable by the same evidence the player uses, and overturning one is an argument with a position. Coverage is deliberately unequal in archaeologically authentic ways (monumental cultures over modest ones, burials before rubbish heaps), and the resulting corpus is confidently thorough in some places and silent in others without ever saying which is which.

Calibrated wrongness The corpus targets roughly 70% broadly correct, 30% interestingly wrong: right about common materials and forms for well-studied cultures, wrong through biased site selection ("a warrior society", concluded from only digging fortifications), false absence claims, bad rarity assessments and missed contacts. NPC errors are real claims in real interpretive models diverging from occluded ground truth, never ad-hoc "wrong" flags. The player's own publications are later measured against this baseline, from safe confirmation up to maximum-scrutiny novelty; a player who parrots consensus publishes confirmations and plateaus, by mechanism.

What stands in meanwhile

Four authored Explorer culture presets (Thalassar is the one with a taste for gilding) and six named regional fixture worlds that model availability for all sixteen materials. A fixture is a small authored world, and every measurement run against it inherits its assumptions. The earlier mock world modelled only four materials; everything unmodelled passed an "unmodelled means obtainable" lenience at full weight, so the other twelve were free everywhere, and a 1200-artefact calibration sample duly ranked silver the world's second commonest material. Nothing in that sample was computed wrongly. The world it measured was wrong, and no assertion inside the run could have noticed. Fixtures are world design too.

The seams for the real stages are typed and waiting:

Where it lives Spec: doc 05 §2–4 · Types (built): src/lib/types/world.ts, corpus.ts, scholars.ts · Stand-ins: src/lib/data/explorer-cultures.ts, tests/fixtures/ · Builders land in Milestone 3 (roadmap 3WS.*)