0016: Selected samples with explicit admission and coverage
A sample checks one supplied value against one selected effective data description. The selected description can be a Property, an sdfData definition, an Action input or output, or an Event output. The library owns acquisition, reference composition, applicable constraint interpretation, and scoped limitations; callers do not rebuild these from JSON maps. This follows ADR 0010: Domain-oriented library and caller simplicity.
The result distinguishes admitted, rejected, and undetermined from model findings, requested-work completeness, and the shared report disposition. Admitted establishes that this value satisfies every applicable constraint in the selected effective description under the recorded baseline. Rejected requires an established violated constraint whose meaning is unaffected by outstanding uncertainty. Unavailable needed context, unsupported applicable semantics, and exhausted work do not establish rejection. A definite rejection can coexist with incomplete other requested checks. A sample never establishes that the whole model is valid or that the description admits some other value.
Requests select the declaring effective document and a typed description kind plus its effective definition pointer. They supply conventional JSON bytes or an Esdieff typed JSON value, preserving exact numeric tokens and separate sample identity. Source, effective, and sample locations retain their different meanings. Missing sample input is an invocation error; JSON null is a supplied value. No default is inserted, following ADR 0005: Nullability and presence and ADR 0007: Generated SDF and sample JSON.
The immutable esdieff.sample/1 inventory covers the nine admission areas specified in the selected-sample contract, including recursively applicable constraints, alternatives, and abstract meanings. Its requested unit is a sample area, not a diagnostic, branch, path, or model-assessment area. Applicable unsupported work remains unfinished under that identity; supporting more of it does not redefine the request. Inapplicable work is established as such, rather than inferred from missing implementation. A new semantic scope requires a new inventory identity.
Effective alternatives inherit shared qualities with their explicit overrides, as RFC 9880 Section 4.7.2 specifies. One completely established matching effective alternative supplies an existential admission witness. Checking different constraints in different branches is insufficient. Unresolved potentially matching alternatives prevent rejection unless an independent proof applies to every possible admitting alternative. Admission never chooses an equality interpretation, following ADR 0015: Bounded value equality in a resolved data context.
Ordinary map admission follows RFC 9880 Appendix C.5. An established type: "object" checks the whole required list for presence and checks each described present value. Entries without a description remain unconstrained, and required can name such an entry. An absent optional description requests no value, reference or unsupported child constraint. Null is present and retains its own admission rules. Unknown enclosing map meaning or unavailable member identities cannot prove absence. A missing required entry has the actual containing sample map as its location and the authored required token as its related model location.
Map constraints conjoin their own presence requirements and needed children. A child choice returns its result to that containing map; its witness does not admit the whole map. A potentially admitting unknown choice clears its own tentative rejections while preserving independent outer or sibling findings. A definite missing entry can therefore reject a map whose other applicable child work remains unfinished. The original work and numeric allowances remain shared across all children and branches.
Ordinary arrays follow RFC 9880 Appendix C.4, combining inclusive exact counts with every actual element’s established item description. Direct-item vocabulary retains its restricted role; Full properties and alternatives can describe nested arrays. Element choices conjoin with the containing array, while a whole-array choice needs one whole-array witness. Shared description roots and alternatives retain their identity and origins as actual present interests accumulate. Completed common and applicable family checks are reused even when they found malformed model conditions. An empty outer array requests no item value and grants no capability to its deferred item subtree. Compound const and uniqueness use the common equality contract in ADR0015. Unknown needed item or equality meanings and finite work limits remain explicit, without erasing independent established violations.
Absent authored type alone does not create an unfinished admission obligation. A Full ordinary supplied array or map with established absence of items, properties and required may complete its structural family without a const or active uniqueness quality. Authored child descriptions still need their applicable structure; an unavailable count remains unfinished even when uniqueness establishes an independent result. This fills existing sample areas under the same nine-area inventory rather than changing their membership.
Sample reports use the distinct sample operation in report version 1.1 and retain existing check/inspect meanings and unknown-operation guards. Model conditions, sample constraint conditions, and operation conditions remain distinguishable. Strict warnings can fail shared disposition while sample admission remains admitted. Needed model errors can fail disposition while sample admission is undetermined. No whole-model assessment is requested implicitly.
Selection, ownership, limits, locations, counters, report fields, compatibility, command acquisition, and concrete cases are pinned in the selected-sample contract, extending ADR 0013: Shared workflow and report guarantees. These are toolkit interface decisions; they do not adopt missing format, item, copied-reference, or other standards interpretations.
Considered Options
A Boolean validation result would collapse unavailable semantics into acceptance or rejection. Reusing model-check disposition as admission would make strict warnings and unrelated model failures change the meaning of the sample. An inventory defined as implemented checks would silently turn unfinished constraints into success. Selecting only a JSON pointer without a description kind would confuse map entries, affordances, and Action input/output roles. Inserting defaults or converting numeric values through a machine float would change the supplied sample. Requiring whole-catalogue success would obstruct usable selected descriptions when an unrelated supplied definition is faulty.
Treating properties as a closed list would add an exclusion rule absent from the adopted map semantics. Combining different branch witnesses per entry would fabricate a matching whole alternative. Resolving raw property descriptions before whole branch overrides would activate discarded references and irrelevant constraints.