fromStoredFields

fun fromStoredFields(runRef: ExtractionRunRef, rootRunRef: ExtractionRunRef, parentRunRef: ExtractionRunRef? = null, supersedesRunRef: ExtractionRunRef? = null, passIndex: Int = 0): ExtractionRunLineage

Rebuilds a lineage a store previously wrote, from the columns it wrote it to.

root and childOf are the only ways to mint a new lineage, and they exist so a root cannot be stated independently of the parent it belongs to. A store reading a row back has the opposite problem: it holds five stored values and no parent lineage to derive anything from, and the values it holds are ones this type already accepted on the way in.

The init guards still run, so a row that has become self-referential is rejected here. What this call trusts is the relationship between root and parent, and a backend is expected to have its own check on that: DrivineExtractionRunStore stores a lineage key and compares it with the key of what it just rebuilt, so a row edited underneath it fails to load, and never loads wrong.

For store backends. Application code mints through root and childOf.