Files
ARCADIA-Studio/harness/experiments/default-admission-20260913/nested-spec-clarification.rst
T

50 lines
2.1 KiB
ReStructuredText

Proposed source-7 clarification — pending integration
===================================================
This is a proposed replacement for the DataTypeDefinition table in
``docs/language.rst`` section 4.5, plus a clarification of the Legacy port
paragraph in section 4. Windows admission-1 passed ten focused tests on
2026-09-13; the linked evidence report defines their limits. Peer integration
and incorporation into the reference remain pending. It changes no parser
behavior.
.. list-table:: Reusable definitions
:header-rows: 1
* - Constructor
- Required fields when this constructor is selected
- Fields permitted to be omitted in source 7
* - Boolean
- None
- None
* - Integer
- None
- ``minimum``, ``maximum``: optional signed 64-bit integers; each defaults to ``none``
* - Real
- None
- ``minimum``, ``maximum``: optional finite IEEE-754 binary64 values; each defaults to ``none``
* - String
- ``minimum_length``: u32
- ``maximum_length``: optional u32; defaults to ``none``
* - Enumeration
- ``literals``: unique nonempty, case-sensitive strings
- None
* - Record
- None
- ``supertype``: same-layer Record ref?; defaults to ``none``
These are selected-constructor contracts. Omitting an entire DataType
``definition`` uses the declaration default, String with minimum length 0 and
no maximum. Selecting ``String {}`` instead MUST reject because its required
``minimum_length`` is absent. Explicit ``none`` remains accepted for nullable
fields. Unknown and duplicate fields still reject. These omission rules do not
make all nullable fields in every constructor omissible.
For a supplied ``legacy`` port record, ``direction`` is required; ``interface``
may be omitted and then means ``none``. For example,
``legacy { direction InOut; };`` and
``legacy { direction InOut; interface none; };`` describe the same legacy record.
``contract Legacy`` remains explicit, and model validation requires the legacy
record for that contract. The omission permission does not supply a missing direction or remove
port ownership and compatibility checks.