Skip to content

docs(spec): complete type-system sections (S-02 / #19) - #87

Open
dotnetcadet wants to merge 2 commits into
mainfrom
feature/O01.01.01.02-type-system-spec
Open

docs(spec): complete type-system sections (S-02 / #19)#87
dotnetcadet wants to merge 2 commits into
mainfrom
feature/O01.01.01.02-type-system-spec

Conversation

@dotnetcadet

Copy link
Copy Markdown
Contributor

Summary

Completes the type-system specification sections owned by S-02 [O01.01.01.02] in docs/specification.md. These sections were [Owned by S-02] skeletons; they now carry full normative contracts governing the Gdm type-system runtime (G-02). Only S-02-owned sections were touched — every other section (including concurrently edited §4/§5/§6) is byte-identical.

Changes

  • §2.3.4.1 Scalar<PrimitiveType> contract pinned to the four primitive roots (Integer/Float/String/Boolean); <Format> lexical-pattern contract with canonical-serialization rule; <Constraint> facet vocabulary (MinLength/MaxLength/MinValue/MaxValue); coercion and null semantics (no cross-root coercion, validation-not-transformation, IsNullable admissibility).
  • §2.3.4.2 Enum<Member Name/Value> rules: name/value uniqueness, integer underlying space, ordinal auto-assignment, name-based serialization.
  • §2.3.4.3 Complex — completion rules (member-name uniqueness across properties+functions, no <Key>, nesting/cycle rule), read-only and nullable member semantics, and the <Function> computed-member signature contract (<Parameter> governed here, not §3.2).
  • §2.3.4.4 CollectionContainer kinds List/Set/Dictionary; <Item>/<Key>/<Value> rules; duplicate and ordering semantics; reinforcement of container-shape-not-multiplicity (§2.3.1 rule 2 / §3.1.3 rule 2).
  • §2.3.4.5 Entity<Key> rules, Scalar/Enum-only non-nullable keys, composite-key identity tuple, and key immutability independent of IsReadOnly.
  • §2.3.6 / §2.3.6.2 — the closed <Option> name vocabulary (Direction/Nulls/Case) and the pinned type-default effective-capability table, replacing the "implementation-defined until then" hedge. Capability is expressed in classes (equality/ordering/sortable/projectable) so the S-03 operator/function vocabulary maps on without contradiction.

Cross-checked against §2.3.1 (type-reference triple), §2.3.5 (Property), §2.3.6.1, and §3.3.3 (no-broadening / effective-capability intersection) — no contradictions introduced. Only the S-02 portion of the shared §2.3.6 marker was removed; the S-03 portion is preserved.

Work items resolved

Closes #19

Testing & verification

  • Documentation-only change; no code. Verified the diff is confined to owned sections (hunks at §2.3.4.1–.5, §2.3.6, §2.3.6.2) — no renumbering or reformatting of other sections.
  • Confirmed all five [Owned by S-02] markers removed and every other ownership marker (S-03/S-04/S-05/S-10/S-11/G-08) left intact.
  • Rules stated as testable MUST/SHOULD; markdown tables and escaped-pipe convention match existing document style; XML examples grounded in .designing/ograph-modal.xml.

🤖 Generated with Claude Code

dotnetcadet and others added 2 commits July 17, 2026 19:04
…tion/Entity)

Fulfill the S-02 [O01.01.01.02] skeletons in docs/specification.md:
- §2.3.4.1 Scalar: <PrimitiveType>/<Format>/<Constraint> contracts, coercion
  and null semantics.
- §2.3.4.2 Enum: <Member Name/Value> rules, underlying-value assignment.
- §2.3.4.3 Complex: completion rules, read-only/nullable member semantics,
  <Function> computed-member signature contract.
- §2.3.4.4 Collection: List/Set/Dictionary container kinds, <Item>/<Key>/<Value>
  rules, duplicate/ordering semantics.
- §2.3.4.5 Entity: <Key> rules, composite keys, key immutability.
- §2.3.6 Option vocabulary; §2.3.6.2 type-default effective-capability table.

Closes #19

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Resolve four verified findings in the S-02 type-system sections:
- §2.3.4.3/§2.3.4.5: remove the Entity <Key> MUST/MUST-NOT contradiction
  (non-Entity Complex prohibition + explicit Entity override).
- §2.3.6.2 rule 2: scope to projection; filter/sort on structured kinds
  go through members, never the kind as a whole.
- §2.3.4.1 <Format>: mark the Pattern token vocabulary as undefined this
  revision (opaque hint, deferred to a follow-up), softening rules 2-3.
- §2.3.4.1: establish the four primitive roots as implicit built-in
  Scalar Types so bare Type="String" references resolve.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[O01.01.01.02] Complete the type-system specification sections

1 participant