docs(schema): document enum widening — migration step list, OG-MF-106 scope, test map

Same-PR docs for the ExtendEnum step: the supported-steps list in the
schema migration section (with the narrowing/rename/String-conversion
carve-outs and the order-insensitivity note), the OG-MF-106 lint-table
row narrowed to what it still covers, and the schema_apply.rs test-map
row extended with the two new tests.
This commit is contained in:
aaltshuler 2026-07-05 01:16:13 +03:00 committed by Andrew Altshuler
parent cc6f8602a9
commit f7ddabafae
3 changed files with 3 additions and 2 deletions

View file

@ -63,6 +63,7 @@ A migration plan compares the accepted schema against the desired one and report
- Add a property
- Rename a property
- Add a constraint
- Extend an enum (pure widening: add variants to an existing `enum(...)` property — same base type and nullability, every existing value retained; metadata-only at apply time, no table data touched, and the new variants are accepted immediately on every write surface. Narrowing, renaming a variant, or converting between an enum and a free `String` still plan as unsupported, `OG-MF-106`. Value *order* is not significant — the schema IR normalizes enum values, so a reorder is not a change at all.)
- Update type or property metadata (annotations)
- Unsupported change (reports the entity and reason; forces the plan to unsupported)

View file

@ -32,7 +32,7 @@ The chassis defines ten families. Today only DS and MF have emitted codes. The r
| `OG-DS-105` | Destructive | destructive | error | drop populated vector column (reserved) |
| `OG-MF-103` | Maybe-fail | validated | error | add required property without `@default` to populated type |
| `OG-MF-104` | Maybe-fail | validated | error | tighten nullable to non-nullable (reserved) |
| `OG-MF-106` | Maybe-fail | destructive | error | narrowing scalar type |
| `OG-MF-106` | Maybe-fail | destructive | error | property type change (incl. enum narrowing / variant rename / enum↔String; pure enum *widening* plans as a supported `ExtendEnum` step instead) |
## Families