Market generations
How one immutable market-data identity keeps analysis, event context and Sports coherent.
Readers must join ordinary markets, multivariate markets, event context, combined state and the Sports projection from one immutable manifest.
Generation identity
Every component carries the same cycle and generation identity. Before accepting it, readers verify the artifact path, hash, count and component timestamp recorded in the immutable manifest.
The active generation changes only after all required components exist and the manifest reads back correctly. A partial upload cannot move the pointer. A later retry can publish a fresh immutable attempt without mutating an earlier artifact.
Carried components
A generation may declare that one component was carried forward from the last verified manifest instead of freshly collected in this cycle. Its artifact bytes are copied into the new generation's own path and re-verified there, so every path, hash and count check above still applies unchanged; nothing is referenced in place across generations. The manifest records which component was carried and the original observation time it carries with it, so a reader can tell a carried component's real age from a freshly collected one's. Carrying a component is a declared, verified exception; an undeclared missing component still blocks activation entirely.
Scope inside a generation
The raw generation preserves broad recall:
- ordinary open non-Sports contracts;
- multivariate contracts classified as non-Sports, Sports-only or mixed;
- normalized event context needed to understand contract legs; and
- a public Sports browse projection derived from Sports-eligible contracts.
Analysis applies a narrower scope. Ordinary business-risk discovery accepts ordinary non-Sports contracts and non-Sports multivariate contracts. Sports-only and mixed multivariate products do not enter that path. The Sports product reads its own projection from the same generation identity.
Why atomic generations matter
Without a generation boundary, an analyst could pair a contract price from one cycle with event metadata or Sports context from another. That cross-generation join is treated as a reliability failure. The reader keeps the prior coherent generation or uses the documented bundled state when activation has not occurred.