Problem
README.md has grown to ~1900 lines and mixes normative specification content (an RFC-style document) with informative guidance (motivation, use-cases, implementation recommendations). This makes it hard to read, hard to maintain, and hard to reference precisely (e.g. for conformance testing, which only cares about normative parts).
Proposal
Split into two documents plus a thin README. The Specification is treated as the normative RFC; the Guide is informative; the README is just an entry point.
SPECIFICATION.md (normative / RFC)
- Terminology (full version)
- Scope & Non-goals (from current §6)
- Identifier Format (current §2)
- Semantics & Capabilities, including the normative operations catalog OP#1–OP#13 (current §3 + §9.2)
- Versions Compatibility (current §4, kept inside the spec)
- Parsing & Validation (current §8)
- Collecting Identifiers with Wildcards (current §10)
- JSON & JSON Schema Conventions (current §11, consolidated with the
$id/$ref rules currently duplicated in §9.1)
x-gts-* JSON Schema Keywords — normative keyword semantics: x-gts-ref, x-gts-traits-schema / x-gts-traits, x-gts-final / x-gts-abstract (from current §9.6, §9.7, §9.11)
GUIDE.md (informative)
- Motivation (current §1)
- Typical Use-cases (current §5)
- Comparison with other identifiers (current §7)
- Reference Implementation Recommendations (non-normative part of §9): reference libraries, entity registration (§9.3), CLI support (§9.4), web server / OpenAPI (§9.5), YAML support (§9.8), TypeSpec support (§9.9), UUID as object IDs (§9.10)
- Notes & Best Practices (current §12)
README.md (thin entry point)
- Short description of GTS
- Short Terminology (full version lives in the Specification)
- Document Version table
- Testing link (current §13)
- Registered Vendors (current §14)
- Links to
SPECIFICATION.md and GUIDE.md
Notes / things to resolve during the split
- §9 is not monolithic — it currently mixes normative keyword semantics and the OP catalog with genuinely informative implementation recommendations; these go to the Specification and the Guide respectively.
- Duplication §9.1 ↔ §11 — both describe how GTS identifiers are embedded in JSON
$id/$ref/instance fields; consolidate into the Specification to avoid two sources of truth.
- Duplication §3.1 ↔ §9.2 — §3.1 describes operations conceptually while §9.2 lists OP#1–OP#13; decide whether to merge into a single normative Operations section.
- Document Version table — keep in README or move into the Specification (RFC versioning is usually part of the document)?
- Renumber sections within each new file, convert internal "see Section X.Y" references into cross-file links, and re-check relative links to
examples/, adr/, and the test suite.
Problem
README.mdhas grown to ~1900 lines and mixes normative specification content (an RFC-style document) with informative guidance (motivation, use-cases, implementation recommendations). This makes it hard to read, hard to maintain, and hard to reference precisely (e.g. for conformance testing, which only cares about normative parts).Proposal
Split into two documents plus a thin README. The Specification is treated as the normative RFC; the Guide is informative; the README is just an entry point.
SPECIFICATION.md(normative / RFC)$id/$refrules currently duplicated in §9.1)x-gts-*JSON Schema Keywords — normative keyword semantics:x-gts-ref,x-gts-traits-schema/x-gts-traits,x-gts-final/x-gts-abstract(from current §9.6, §9.7, §9.11)GUIDE.md(informative)README.md(thin entry point)SPECIFICATION.mdandGUIDE.mdNotes / things to resolve during the split
$id/$ref/instance fields; consolidate into the Specification to avoid two sources of truth.examples/,adr/, and the test suite.