# Semantic migrations ## Capability Health V1 to V2 `007_capability_health_v2.sql` assigns existing rows semantic version `1` without inventing an observation time. V2 writers must explicitly provide a positive `observed_at_unix_millis`; unsupported versions are rejected by the owner domain validator. Forward fix: deploy the migration before the V2 runtime, then rebuild `capability.health_projection` through `POST /v1/capabilities/health-projection/rebuild`. Rollback: retain the migrated canonical rows and run the prior runtime only against V1 rows. A V2 row must not be silently read by an older runtime; use a forward-fix deployment to restore a V2-capable reader.