CAUSL_MODEL_SCHEMA: 3 = ...

Schema version of the CauslModel IR.

Bumped on any breaking change to the IR shape. The Rust checker compares this constant against its own compiled-in version and rejects mismatches rather than guessing at a migration.

Schema 3 (current). Adds graphId on every node and commit (the multi-graph foreign key the future cross-graph aggregator depends on); adds the bounded IRCallGraph annotation slot on IRCommit; adds the events: readonly never[] forward-compatibility array on the top-level document. The events array is empty under schema 3 today; future schemas (3.x or 4) widen the array element type to a discriminated union of lifecycle events (IRSubscribe | IRUnsubscribe | IRDispose | IRRead | IRTxSet) once a downstream pass consumes them. Schema 3 is the shape PR-A of EPIC-1 ships per the brutal-critical review's slicing recommendation: bump the wire format once for additive fields, and design the event variants alongside the consuming pass rather than speculatively.

Schema 2 (previous). iasbuilt/causl#359 collapsed the prior optional resources / conflicts / msgs arrays in service of §4's two-primitive discipline — a wire-format break for any consumer that had begun parsing the optional fields.

Schema 1 (initial). The pre-collapse shape with eleven node kind constants. Retired in iasbuilt/causl#359.