Conflict:
    | ConflictBase<T> & { kind: "open" }
    | ConflictBase<T> & {
        kind: "resolved";
        resolution: unknown;
        resolvedAt: GraphTime;
    }
    | ConflictBase<T> & { ignoredAt: GraphTime; kind: "ignored" }
    | ConflictBase<T> & {
        kind: "superseded";
        supersededAt: GraphTime;
        supersededBy: NodeId;
    }

Public shape of a conflict surfaced by a ConflictRegistry.

Type Parameters

  • T

    Application payload type carried by the conflict.

Type declaration

  • ConflictBase<T> & { kind: "open" }
  • ConflictBase<T> & {
        kind: "resolved";
        resolution: unknown;
        resolvedAt: GraphTime;
    }
    • Readonlykind: "resolved"
    • Readonlyresolution: unknown

      Application-supplied opaque tag committed via ConflictRegistry.resolve.

    • ReadonlyresolvedAt: GraphTime

      GraphTime at which Open → Resolved fired.

  • ConflictBase<T> & { ignoredAt: GraphTime; kind: "ignored" }
    • ReadonlyignoredAt: GraphTime

      GraphTime at which Open → Ignored fired.

    • Readonlykind: "ignored"
  • ConflictBase<T> & {
        kind: "superseded";
        supersededAt: GraphTime;
        supersededBy: NodeId;
    }
    • Readonlykind: "superseded"
    • ReadonlysupersededAt: GraphTime

      GraphTime at which Open → Superseded fired.

    • ReadonlysupersededBy: NodeId

      Conflict id of the entry that subsumed this one.

SPEC §9 discriminated union: every variant carries exactly the fields the statechart guarantees in that state. kind: 'open' has no resolution; kind: 'resolved' carries the application-supplied tag (opaque to the registry, so the resolution slot is unknown) and the GraphTime of the resolution; kind: 'ignored' carries the GraphTime of the suppression; kind: 'superseded' carries the linkage to the subsuming conflict id and the GraphTime of the supersession.

Consumers narrow on c.kind and let tsc enforce that only legal fields are reachable per state. There is no resolution?: unknown optional field — that shape was the §9 violation this union eliminates.