Contract v0 scope

What @restormel/graph-core guarantees in v0: frozen DTOs in viewModel.ts, contracts-free helpers, and modules deliberately excluded from the canvas contract.

The authoritative checklist for “what is v0” lives in the repo file GRAPH_CORE_V0_SCOPE.md. This page summarizes it for integrators who should not have to diff viewModel.ts on GitHub to understand semver expectations.

In scope (Contract v0)

  • Frozen DTOs in @restormel/graph-core/viewModel: GraphData, GraphNode, GraphEdge, ghost types, viewport commands, semantic style records, and related unions.
  • No @restormel/contracts inside graph-core MVP — canvas types stay portable across hosts that do not ship the reasoning stack.
  • Co-located helpers (still contracts-free today): layout (computeLayout), trace, workspace.

Explicitly out of v0

Compare, lineage, projection, graph diff, evaluation, and summary modules that depend on contracts live in @restormel/graph-reasoning-extensions — not in Contract v0. Do not expect those APIs to ship from graph-core.

Semver expectations (human summary)

  • Patch / minor (canvas): bugfixes, non-breaking additions to optional fields or helpers, docs — as long as published DTOs remain compatible for typical consumers. Follow release notes on npm and Releases & support.
  • Major: breaking changes to GraphData / node-edge shapes, removed exports, or behaviour that forces adapter rewrites. When in doubt, compare viewModel.ts between versions and run your svelte-check / integration tests.

← API reference · Full scope doc (repo)