Extraction Run Ref
Names one extraction run.
This is identity and nothing else. It holds no timing, no status, no counts, no lineage — just the id, so a caller can say "this analysis belongs to that run" without DICE having anywhere to store a run yet. Durable extraction runs arrive with DICE #67 and will be keyed by (com.embabel.agent.core.ContextId, ExtractionRunRef); shipping the reference first means the entry points and the run model meet at an opaque string rather than at a type one of them has to import from the other's release.
The id is opaque. DICE compares it and carries it and parses nothing out of it. It also never mints one: a run is something the host (or, later, DICE's own run coordinator) starts. Nothing here checks that the run exists, because there is nowhere yet to check against — carrying a reference is always allowed. What a store does with a reference to a run it has never seen is DICE #67's to decide, and this type makes no promise about it either way.
Run identity is deliberately not part of source-provenance equality. Two runs over the same material still produce one piece of source evidence; what differs is which runs are attributed to it.
A run reference is not an authorization token and must not carry a secret, a direct identifier, or anything a reader could dereference into personal data. Hosts mint it.
EXPERIMENTAL. The shape may still change while extraction runs (DICE #67) land.