IR projection of an input node — a writable Behavior captured at export time.

The §4 two-primitive discipline lives here. What earlier drafts called a "resource" is an IRInput whose value carries the application's ResourceState<T> payload — composition at the application layer, not a separate kind on the wire (iasbuilt/causl#359).

interface IRInput {
    graphId: string;
    id: string;
    kind: "input";
    serializable: boolean;
    value: unknown;
}

Properties

graphId: string

Identifier of the graph instance this node belongs to. Required as of schema 3; sourced from the precedence rule (createCausl({ name }) first, UUID v4 fallback). Same value appears on every node and commit produced by one graph.exportModel() call.

id: string

Identifier of the input node within the source graph.

kind: "input"

Discriminator selecting the input variant of IRNode.

serializable: boolean

Whether value is JSON-serialisable. Non-serialisable inputs are skipped by the checker's state-space enumeration.

value: unknown

Most recent committed value, mirrored verbatim into the IR.