Assistant: codex Assistant-Model: gpt-5.6-luna Assistant-Session: 01a087b0-7b1e-7531-8ef3-6525ebaf7ee7
3 KiB
FIAM Migration — v0.1.1 to v0.2
Structural additions
Add information_resources[] and information_shapes[] when the architecture contains independently meaningful information loci or admissible information forms.
Do not add them mechanically to every interface. Incomplete models remain valid.
InformationShape
shape_kind is required for v0.2 shapes. Use fiam.information-shape.object for structured named-member forms; the experimental record term is deprecated.
Keep fine-grained members and constraints in schema/type Artifacts (OpenAPI, JSON Schema, protobuf, GraphQL, DDL, source declarations). FIAM Core identifies and relates the shape; it does not reimplement those schema languages.
Representation
Remove authoritative use of contracts[].representations and contracts[].operations[].representations. These fields remain parseable only to support migration and produce warnings.
Attach representation to the most specific shape-participation relation: Operation for a semantic default only when appropriate, Binding for a realization, Interaction for what actually occurred.
Shape relations
Use:
accepts-shapeproduces-shapeerrors-with-shapeconforms-to-shapeelement-shapeembeds-shape
Binding-level shape participation on a Binding with multiple operations requires facets.operation_ref.
Shape composition
embeds-shape and element-shape may carry facets.slot and facets.role. These are coarse architectural anchors, not a replacement for field-level schema definitions.
Evidence
All v0.2 Assertions require evidence. Preserve conflicting/superseded assertions rather than overwriting discovery history.
Identity
Follow policies/FIAM-ShapeIdentity-v0.2.md. Prefer corresponds-to while two discoveries are only candidate matches. Use same-entity-as only with sufficient evidence. Identity assertions do not delete source records.
Specimen tests
v0.2 tests.expected_properties are executable checks. Move narrative expectations to tests.notes.
draft.1 hardening notes
Family labels
Do not manually carry forward family_labels as authoritative classifications. Either remove them or back each cached label with an inferred fiam.property.family-label assertion produced by a Lens. The validator rejects unproven family-label caches.
Shape refinement
When migrating shape participations, verify Operation → Binding → Interaction refinement. A lower-level Shape must be the same/equivalent Shape or be related by projection-of / version-of to the parent declaration.
Collection coherence
Collection-like InformationResources that use conforms-to-shape should point to a collection Shape. Use a separate element-shape relation for member shape.
Identity
Do not convert similarity heuristics into same-entity-as. Ingest/reconciliation tools should emit corresponds-to until sufficient governed identity evidence exists. Purely inferred same-entity-as is rejected unless the current Canon evidence threshold is met.