@@ -102,7 +102,7 @@ This schema set governs six JSON Schema Draft 2020-12 resources:
102102| ---| ---|
103103| ` routines/schemas/common.schema.json ` | ` https://open-control-library.example/schemas/routine-common-v1.json ` |
104104| ` routines/schemas/class-manifest.schema.json ` | ` https://open-control-library.example/schemas/routine-class-manifest-v1.json ` |
105- | ` routines/schemas/interface.schema.json ` | ` https://open-control-library.example/schemas/routine-interface-v2 .json ` |
105+ | ` routines/schemas/interface.schema.json ` | ` https://open-control-library.example/schemas/routine-interface-v3 .json ` |
106106| ` routines/schemas/specialization.schema.json ` | ` https://open-control-library.example/schemas/routine-specialization-v1.json ` |
107107| ` routines/schemas/routine-semantic-profile.schema.json ` | ` https://open-control-library.example/schemas/routine-semantic-profile-v1.json ` |
108108| ` routines/schemas/routine-derivation-manifest.schema.json ` | ` https://open-control-library.example/schemas/routine-derivation-manifest-v1.json ` |
@@ -112,8 +112,8 @@ Each resource declares
112112fragments or the six absolute IDs above and resolve from an in-memory registry.
113113Validation performs no network or filesystem retrieval for schema references.
114114Objects are closed unless stated otherwise. Semantic-only definitions belong to
115- the semantic-profile resource; ` routine-common-v1 ` remains the existing routine
116- class/ interface contract .
115+ the semantic-profile resource. ` routine-common-v1 ` retains its unchanged reusable
116+ definitions; the interface v3 resource defines its revised dimension form locally .
117117
118118Canonical class IDs have the form
119119` G36-05-(01..22)-<UPPERCASE-HYPHENATED-CLASS-SLUG> ` . Scope IDs are invalid
@@ -152,7 +152,7 @@ share one non-root class directory and end in `interface.json`,
152152` specialization.schema.json ` , and ` specialization.json ` , respectively. This is
153153an artifact-location contract, not a production source-to-class mapping.
154154
155- #### Interfaces (` cxf-library/routine-interface/v2 ` )
155+ #### Interfaces (` cxf-library/routine-interface/v3 ` )
156156
157157An interface has exactly ` schema ` , ` canonical_id ` , ` revision ` , ` types ` ,
158158` dimensions ` , ` parameters ` , and ` connectors ` . Types and enums are local to that
@@ -167,9 +167,15 @@ values use the stable member IDs; no integer lowering code is assigned.
167167
168168A type use is either primitive or a reference to a local named type. A shape is
169169either scalar or an array with an ordered list of one or two dimension IDs.
170- Dimensions have unique IDs. Their extent is either a positive fixed integer or
171- a reference to a scalar Integer parameter. Rank greater than two, zero extents,
172- ragged matrices, and arithmetic dimension expressions are invalid.
170+ Dimensions have unique IDs. A fixed dimension declares a positive integer
171+ extent and a nonempty ordered ` members ` list whose count MUST equal that extent.
172+ A parameter-driven dimension references a scalar Integer parameter and MUST NOT
173+ declare canonical members; ` routine-specialization/v1 ` owns its member list.
174+ Dimension members are authored stable identities, not identities derived from
175+ array ordinals. Authored list order is contract order. Within one interface and
176+ specialization pair, member IDs MUST be unique across every fixed and
177+ parameter-driven dimension. Rank greater than two, zero extents, ragged
178+ matrices, and arithmetic dimension expressions are invalid.
173179
174180Parameters have unique IDs, a type use, shape, ` fixed ` or ` configurable `
175181configurability, an optional typed default, and optional numeric minimum and
@@ -192,15 +198,17 @@ or resolve optional branches.
192198A specialization input has exactly ` schema ` , ` canonical_id ` , ` revision ` ,
193199` parameters ` , and ` members ` . ` parameters ` is an ordered list of unique parameter
194200IDs and JSON values. ` members ` binds each parameter-driven dimension ID to a
195- nonempty ordered list of globally unique stable member IDs.
201+ nonempty ordered list of stable member IDs. Fixed dimensions are invalid targets.
202+ These IDs MUST be unique across the specialization's member records and against
203+ the canonical members of every fixed dimension in the paired interface.
196204
197205The interface and specialization canonical ID and revision MUST agree with the
198206class manifest. Specialization checks parameter existence, fixed-parameter
199207override rejection, required configurable assignments, primitive and enum
200208value compatibility, numeric bounds, concrete dimension extents, rectangular
201- rank-one and rank-two values, and stable- member count. All numeric values MUST
202- be finite. A parameter-driven dimension resolves only from a positive Integer
203- effective value.
209+ rank-one and rank-two values, and parameter-driven member count. All numeric
210+ values MUST be finite. A parameter-driven dimension resolves only from a
211+ positive Integer effective value, and its member count MUST equal that value.
204212
205213Specialization is input only. It contains no connector bindings, point IDs,
206214resolved connector set, source map, generated CXF, runtime state, engine
0 commit comments