Validates the seven top-level fields exactly: schema | time | nodes | commits | events | scopes | bridges. Each field is
checked structurally; failures produce a ParseResult with
a precise JSON path to the offending value.
The validator does NOT semantic-check (e.g., unknown-dep, cycle, monotonic commit times) — those are the linter's job. This is the shape gate before the linter runs.
Runtime structural validator for CauslModel. Used by the IR exporter's round-trip tests, by integration tests that feed hand-rolled IR to the checker, and by the schema-3 acceptance gate (TASK 1.B1.5).