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:
- Relative dating comes free from stratigraphy: this layer sits below that one, so it's older, and finds in one layer are roughly contemporaneous.
- Approximate frameworks come from the corpus's received chronologies, presented as established fact, and possibly wrong: the original dating may have been flawed, or extrapolated past its evidence.
- Independent dating (radiocarbon, thermoluminescence) is career-gated, takes time, may consume part of the artefact and can overturn the received framework. "The accepted chronology for Site X is wrong" is a publishable, high-scrutiny claim.
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:
- Reference works summarising what "everyone knows", presented as established fact.
- Active debates where NPCs disagree and the player can eventually weigh in.
- Bibliographies attached to claims, so how well-supported a claim is can be assessed.
- Conspicuous absences a careful player notices: nobody has published on Culture B's burials, or every paper on a region comes from one institution.
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.
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:
- The baseline sampler takes a structural parameter bag rather than a concrete
CulturePhase, so real culture generation slots in without changing it. - The material module documents which of its answers are region-agnostic pending real geology, each with the task id that retires the shortcut.
- MVP scale for the real thing: two cultures with 3–4 phases each, one relationship with two temporal windows, three to four NPC researchers, six to eight simulated campaigns, fifteen to twenty baseline publications.
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.*)