# ADR-029: Version as a coarse-grained breaking-change signal ## Status Accepted ## Context The `version` integer on `graph_types` could track every schema change or only breaking changes. Tracking every change is noisy; ignoring versioning creates risk. ## Decision The `version` integer tracks **breaking** schema changes. Non-breaking changes (additive) do not require a version bump. The repository layer checks the version before processing and knows to run migration logic when it doesn't match. An even/odd scheme signals migration state: even = stable, odd = migration in progress. ## Consequences - Most schema changes (additive) don't bump the version - Breaking changes bump the version and trigger migration - Odd versions signal incomplete migration for crash recovery - The consumer defines when a version bump occurs via a constant ## References - [schema-evolution.md](../schema-evolution.md)