Skip to content

Commit ad7b221

Browse files
committed
docs(spec): bump version to 0.12
BREAKING: subsumes the four normative changes landed in ADR-0001..0004 on this branch: - JSON Schema Dialect framing (ADR-0001): derivation compatibility applies whether the derived schema uses `allOf` + `$ref` or re-declares parent fields directly; finality guard determined from the chained `$id` alone. - `x-gts-traits-schema` as a JSON Schema subschema (ADR-0002): value MAY be object/`true`/`false`; the registry composes all declarations along the `$id` chain via `allOf` into a single effective trait-schema, so descendants no longer need to repeat ancestor trait-schemas. - Trait completeness keyed on `x-gts-abstract` (ADR-0003): completeness is enforced at registration on non-abstract types (not only leaves), against the materialized effective traits object. - Trait-value merge via JSON Merge Patch (RFC 7396) along the `$id` chain (ADR-0004): descendant last-wins, nested objects merge recursively, arrays replace wholesale, `null` deletes; cross-descendant locking moves from a GTS-specific immutability rule to standard JSON Schema `const` in `x-gts-traits-schema`. Conformance tests (in particular `tests/test_op13_schema_traits_validation.py` cases asserting "override MUST fail") and reference implementations must be updated to the new semantics in a follow-up. Signed-off-by: Aviator 5 <ai.agent.tor@gmail.com>
1 parent 708c7b0 commit ad7b221

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
<!-- gts-spec-version: 0.11 -->
2-
> **VERSION**: GTS specification draft, version 0.11
1+
<!-- gts-spec-version: 0.12 -->
2+
> **VERSION**: GTS specification draft, version 0.12
33
44
# Global Type System (GTS) Specification
55

@@ -112,6 +112,7 @@ See the [Practical Benefits for Service and Platform Vendors](#51-practical-bene
112112
| 0.9 | Add `x-gts-final` and `x-gts-abstract` schema modifiers; enforce final/abstract semantics in OP#6 and OP#12 |
113113
| 0.10 | BREAKING: terminology unified around GTS Type / GTS Instance; rename API fields `schema_id``type_id` (also `old_schema_id`/`new_schema_id`/`to_schema_id`/`selected_schema_id_field`); rename API field `is_schema``is_type` (type-definition vs instance discriminator); `type_id` MUST be a GTS Type Identifier or `null` — no longer falls back to JSON Schema dialect URL; rename endpoints `/validate-schema``/validate-type`, `/schemas``/types`; rename OP#12 'Schema vs Schema Validation' → 'Type Derivation Validation'; rename OpenAPI components `ValidateSchemaRequest``ValidateTypeRequest`, `SchemaRegister``TypeRegister`; rename example directories `examples/**/schemas/``examples/**/types/` (file extensions `.schema.json` retained); add Terminology section |
114114
| 0.11 | Introduce term **GTS Type Schema** as the canonical definition of a GTS Type; remove the standalone `Schema` term from Terminology; rewrite `GTS Type` entry to name the abstract registered entity; rename `GTS Type Registry``GTS Registry` (registry now scopes both Type Schemas and well-known Instances). **Conformance tests for reference implementations** also updated: rename API endpoints `/validate-type``/validate-type-schema` and `/types``/type-schemas`; rename OpenAPI components `TypeRegister``TypeSchemaRegister`, `ValidateTypeRequest``ValidateTypeSchemaRequest`; rename request field `TypeSchemaRegister.schema``TypeSchemaRegister.type_schema`; rename helper `validate_type``validate_type_schema`. |
115+
| 0.12 | BREAKING: frame GTS Type Schemas as a **JSON Schema Dialect** over Draft-07 — derivation compatibility (§3.2, OP#12) applies whether the derived schema uses `allOf` + `$ref` or re-declares parent fields directly; finality guard (§9.11) is determined from the chained `$id` alone (ADR-0001). **Reframe `x-gts-traits-schema` as a JSON Schema subschema** (object, `true`, or `false`); the registry composes all `x-gts-traits-schema` declarations along the `$id` chain via `allOf` into a single effective trait-schema — descendants no longer need to repeat ancestor trait-schemas (ADR-0002). **Trait completeness keyed on `x-gts-abstract`**: completeness is enforced at registration on non-abstract types (not only leaves); the materialized effective traits object (defaults applied) is validated against the effective trait-schema (ADR-0003). **Trait-value merge replaced with JSON Merge Patch (RFC 7396)** along the `$id` chain — descendant last-wins at scalar/array/`null` leaves, nested objects merge recursively, arrays replace wholesale, `null` deletes the key (intended fallback to the trait-schema's `default` via materialization); cross-descendant locking moves from a GTS-specific immutability rule to standard JSON Schema `const` in `x-gts-traits-schema` (ADR-0004). |
115116

116117
## Terminology
117118

0 commit comments

Comments
 (0)