IFClite TypeScript API
    Preparing search index...

    Interface LineageEntry

    One lineage entry. base and head are key lists; exactly one of them has more than one key, and only for split (k heads) or merge (k bases).

    interface LineageEntry {
        base: string[];
        head: string[];
        reason: string;
        relation: LineageRelation;
        shares?: number[];
    }
    Index
    base: string[]
    head: string[]
    reason: string

    Provenance: content-match:<kind> or alias:<reason> for identity, split:<confidence> / merge:<confidence> for those, and successor:<confidence> for replaced.

    Reasons are provenance, not a schema discriminator: an incoming lineage's explicit relation wins on replay. For aliases coming from an identity map (which has no relation field), successor: means replaced; every other reason means identity.

    relation: LineageRelation
    shares?: number[]

    For a split, each head key's share of the pieces' total volume, in the order of head; for a merge, each base key's share, in the order of base. Present only when every piece carried a proved volume (the claim's confidence was not extent). The largest-share rekey policy reads it; without it only copy-to-all and orphan-on-split are safe.