Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

RFC 9880 model assessment inventory

The immutable fine-grained inventory rfc9880.model/1 contains 54 finite model obligations. It covers RFC 9880, including normative Appendices A and C. Appendix B is informative; Appendix D contains examples and Appendix E historical changes. Imported definitions apply only where a clause uses them. Each obligation counts once across the requested model scope, regardless of how many occurrences or supporting citations it has.

The Full request retains assessment and baseline identity rfc9880/base-1. Its area inventory esdieff.full-model/1 has 13 members. Initial retains its eight narrower areas and existing exclusions. Successful Initial assessment always discloses broader partial coverage. These identities follow ADR 0011: Machine-readable report contracts and ADR 0013: Shared workflow and report guarantees.

Completion and applicability

An obligation is assessed only when all applicable occurrences and subdimensions have been assessed, including definite invalidity. Established absence is not applicable. Missing implementation is unassessed; unknown needed meaning, context, knowledge or traversal is undetermined. Joining repeated observations uses undetermined before unassessed, then assessed, then not applicable. One finished occurrence cannot hide an unfinished sibling. Errors, warnings and notices remain independent of completion and of optional detail retention.

Full broader completion describes these54 model obligations. Requested outcome completion describes all13 selected areas, including the separate advisory area. All model work may therefore finish while advice remains incomplete. Assessed errors still constitute completed work; neither completion value certifies validity or universal capability. Full does not emit an optional omitted-areas list whose absence could be mistaken for completion.

Full establishes capability and meaning for the supplied model. Sample admission is a separate operation; a successful sample never completes a model obligation. Device behavior, protocol bindings, conversion, registry administration, operator duties and general satisfiability are outside this model denominator. Unknown extensions are retained without guessing their meaning or universally rejecting them.

Each subclause has one counting owner. The clause ownership table names supporting dependencies separately. The clause-family trace preserves all132 body/grammar/characteristic/process families and the explicit comment obligation with their model owners or excluded roles. These are traceability rows, not another denominator. For example, nullable belongs to M029, special-type selector admission to M025 and Property flags to M031; they do not also earn M022 credit. M022 owns only unit and content-format string shape. Direct-item container shape belongs to M040; Full properties and Choice descendants retain M038 and M030. Grammar family G013 therefore supports M039 for pattern/format/uniqueness shape and M040 for the restricted items container.

Obligations

IDs below expand to rfc9880.model.M001/1 through rfc9880.model.M054/1. The capability column describes current checking and limitations. Runtime status comes from the report, not this table.

The model coverage boundaries collect retained gaps with their current outcomes, reasons and conditions for reconsideration.

IDRFC 9880 citationFinite meaning and applicabilityFull areaCheck and limitation
M0011.2.3;3;7.1;A sdf-syntaxEvery assessed source: one UTF-8 JSON text, root map, JSON structure; supplied serialization onlyfull.document-syntax/1Decode complete supplied JSON while retaining acquisition failures; transport delivery duties are outside model assessment.
M0022.2;2.3.1;3.3-3.4;5.1-5.5;6.3;A named/paedataqualities/thing/object/action/eventAll six group/map/class roles; text named keys, map definitions; Object excludes grouping roles, Thing permits them; Action full input/output and Data, Event full output and Data; root reuse definitions; zero entries permittedfull.document-syntax/1Traverse named definitions and all admitted data-description containers in their actual roles.
M0031.2.3;2.2.2;2.2.5;3.3;4.5Definitions versus declarations and directly containing scope; Data reusable definition, Property state description, root affordance does not instantiate itselffull.model-roles/1Establish declaration classes in the resolved model, including copied declarations at their importing coordinates.
M0042.3.2-2.3.3Given Names are case-sensitive and contain no colon; arbitrary other text retainedfull.document-syntax/1Check case-sensitive definition names and reserved colon use.
M0052.3.3;A quality-nameUnqualified ASCII quality pattern and optional ASCII qualified-prefix pattern; case-sensitive names; registered prefix meaning is M028, registration process excludedfull.document-syntax/1Check ASCII unqualified and qualified spelling in actual Quality Name positions; preserve admitted unfamiliar vocabulary and opaque extension values.
M0062.3.2;4.1-4.3Definition-selecting JSON Pointer and tilde escaping before URI-fragment percent encodingfull.namespace-reference/1Resolve encoded reference names through the established namespace and pointer context.
M0073Absent and empty optional nested blocks equivalentfull.document-syntax/1Check the document envelope and supported top-level definition groups.
M0083.3 versus A sdf-syntaxDocument group-presence obligation: body one-or-more versus all-optional formal groupsfull.document-syntax/1Establish a populated definition group; empty documents retain the unresolved prose and CDDL distinction.
M0093.1;A sdfinfoinfo map and title/version/copyright/license text shapesfull.metadata/1Check the Information Block and its general string-valued metadata.
M0103.1;4.6Ordinary info/common fields optional, no inserted defaults; last pointer token only optional display conventionfull.metadata/1Expose absent Information metadata through the domain defaults without imposing lifecycle advice.
M0112.3.3;4.6 Table3;A optional-commentAt every admitted $comment position, presence/absence has no model meaningfull.metadata/1Preserve the descriptive comment as metadata without treating its text as a semantic command.
M0123.1;A modified-date-time/rfc3339zmodified text ABNF, calendar/date/time/fraction/T/Z and leap-second knowledgefull.metadata/1Check modified dates against the supported calendar, clock and recorded temporal knowledge.
M0133.1;A featuresFeature-list syntax includes framework arbitrary entries; declared critical feature understanding needed by requested semantics, no closed-empty grammarfull.critical-extensions/1Establish the required feature declaration before interpreting model qualities.
M0143.2;A sdf-syntaxnamespace map of text short names to URI textfull.namespace-reference/1Check namespace map shape and URI-valued bindings.
M0153.2;4defaultNamespace selects existing namespace; absent default gives no contribution only under established contextfull.namespace-reference/1Check that the declared default namespace has an established binding.
M0161.2.4;3.2;4.1-4.2;6.1Complete namespace URI plus pointer by concatenation, distinct definitions may share namespace across supplied contributors, no first/last precedencefull.namespace-reference/1Resolve local and cross-document references while retaining missing, ambiguous and unavailable contributors.
M0174.3CURIE resolution/global versus same-document #pointer meaning; outside reference uses declared prefix, no safe-CURIE/direct URI-scheme bypassfull.namespace-reference/1Establish the target role of each model reference.
M0184.3;4.6;A sdf-pointer/pointer-list/referenceable-nameAll sdfRef/sdfRequired occurrences: formal global/short/true union, short-name colon/hash exclusion, list shape including empty; short/true sdfRef meaning unresolvedfull.namespace-reference/1Check reference syntax and referenceable positions in Full and Direct data contexts.
M0194.4-4.4.1;6.2.1Target-root refs processed, copy qualities/children, remove sdfRef, RFC7396 merge/delete/replace, consumer-role result assessed, order-independent; internal copied references relocate; needed cycles scopedfull.composition-requiredness/1Compose inherited qualities and local overrides, relocating internal copied references to the importing definition.
M0204.5;4.6Mandatory grouping/affordance declaration selection: full,short all-matching classes,true carrier; copied pointers relocate by coordinate; data-only meaning unknown explicitlyfull.composition-requiredness/1Resolve grouping-required declarations in the resolved model, relocating copied pointers by coordinate under the existing requiredness policy.
M0213.1;4.6;A sdfinfo/commonqualities/jso-items/optional-commentdescription/label/$comment string shapes at their admitted positions: info description/comment, common all three, Direct description/commentfull.metadata/1Check descriptive metadata string shape in each admitted Full or Direct position.
M0224.7 Table4;A dataqualitiesFull unit and contentFormat string shapes onlyfull.data-grammar/1Check common data-quality admission in its actual data-description role.
M0234.7 note1;7.3-7.4Unit direct-name/URI distinction, forbidden unit URN except colon-name exception; SHOULD registry convention or unit-definition URI; absent dated record not proof unregisteredfull.special-type-unit/1Check unit spelling and recorded registry guidance under the selected knowledge policy.
M0244.7 note2;RFC9193 §6contentFormat text means Content-Format-Spec: code/media type/parameters/coding syntax and available recorded meaningfull.pattern-format/1Establish recorded numeric tuples and supported JSON/CBOR/plain-text parameters with ordered codings; other meaning and missing evidence remain scoped.
M0254.7.1;A sdftype-nameBase byte-string/unix-time or admissible registered/extension [a-z][-a-z0-9]* namefull.critical-extensions/1Recognize the two base special-type selectors; extended-name admission remains unfinished without a closed extension vocabulary.
M0264.7.1 Table5byte-string denotes bytes, conventional JSON unpadded base64url; establish modeled meaning when presentfull.special-type-unit/1Establish the known byte-sequence model interpretation without a value; decoded-byte length remains separately unfinished.
M0274.7.1 Table5unix-time denotes POSIX numerical civil time with leap-instant limitationfull.special-type-unit/1Establish the known POSIX-time model interpretation without assigning an actual value or leap-instant meaning.
M0282.3.3;4.7.1;7.5.2-7.5.3;A extension socketsApplicable registered prefix/type/format/quality description meaning, conventional type/JSON representation consistency where specifiedfull.critical-extensions/1Retain unknown extension meanings as unavailable rather than inferring universal invalidity.
M0294.7 Table4;A dataqualitiesNullable bool shape and default true meaning,distinct presence; constraint interaction uses recorded ADR0005 interpretationfull.scalar-meaning/1Check nullable shape and expose its established domain default.
M0304.7.2;A optional-choice/jsonschema/jso-itemsChoice map and Full branch shapes in Full and Direct positions,shared override semantics; nonempty string enum shape/expansion preserving occurrences; exclusive enum versus choicefull.composition-requiredness/1Check choice and enumeration syntax and establish inherited alternative scope.
M0315.2;A propertyqualitiesreadable,writable,observable booleans and specified true defaults, distinct documentary defaultfull.model-roles/1Check Property flags and expose their established domain defaults.
M0322.2.1;6.3Grouping repetition if minItems/maxItems present; inclusive count meaning onlyfull.formal-numbers/1Establish inclusive base count meaning for admitted uint values; framework fallback retains unavailable extension repetition meaning.
M033A EXTENSION-POINT and $$ quality socketsAdditional quality content admits any JSON at top/info/group/data/items quality sockets,without closed-grammar substitutionfull.document-syntax/1Check admitted extension sockets without claiming unsupported extension meaning.
M034A jsonschema/compound-type/jso-itemsType selector admission: Full six base selectors or extension; Direct base subset including explicit object or extension; type:null not basefull.data-grammar/1Check base-type selector shape separately from model-level type capability.
M035A allowed-types;RFC8610 3.3/D/Econst/default base number,text,bool,null, homogeneous scalar arrays,text-key maps plus allowed-extfull.data-grammar/1Establish base or framework-extension literal admission; extension semantics and needed const meaning remain separately unfinished.
M036A jsonschema/jso-items number;RFC8610 3.3/D/EFormal number admission for all Full numeric parameters and Direct min/max: every JSON number, read as an exact decimalfull.formal-numbers/1Establish formal CDDL number membership for bound parameters from their decoded JSON numbers.
M037A jsonschema/jso-items/arraydefinitionqualities uint;RFC8610 3.3/D/EFormal uint admission for all Full length/item counts,Direct lengths,and Object/Thing repetition countsfull.formal-numbers/1Establish formal CDDL uint membership for counts; exact nonnegative integer decoding alone is insufficient.
M038A compound-typeExplicit object required nonempty string array and properties named Full map; applicability in non-object/wider roles not guessedfull.data-grammar/1Check map-data properties and required syntax in the compound-type context.
M039A jsonschema/jso-itemsFull pattern text,Full six format literals or extension text,Direct format text,Full uniqueItems bool shapesfull.data-grammar/1Check pattern, format and uniqueness parameter shapes in Full and Direct items.
M040A jsonschema items/jso-itemsitems value must be a map in the restricted Direct rolefull.data-grammar/1Check the Direct items container and traverse its admitted Full descendants.
M041A jso-items/items-ext/itemtype-ext;4.4;C.4Wider Direct array/nested items/nullable/default/full import and role-dependent admitted content do not inherit Full meaning solely by spellingfull.critical-extensions/1Establish Direct-item extension meaning; preserved unsupported qualities remain unavailable.
M042C intro;C.1-5Base description type meaning: mathematical integer including10.0, number,Unicode-scalar string,true/false Boolean,array,string-key map; model establishes interpretation/role, not a supplied-value verdictfull.scalar-meaning/1Establish ordinary scalar, array and map type meaning in final effective contexts; unavailable extended meanings remain scoped.
M043C introconst fixes one value under exact adopted equality; applicable literal/type/alternatives meaning must be established; general satisfiability not requiredfull.scalar-meaning/1Establish scalar and compound const meaning under exact contextual equality for the actual final value; unavailable abstract denotation and extension meanings remain scoped.
M044C introdefault is documentary data for absence with no insertion process; permitted literal domain M035; consistency warning optionalfull.scalar-meaning/1Expose default values as optional descriptive metadata without executing them as required characteristics.
M045C.1Inclusive/exclusive mathematical numeric bounds and positive exact integer-multiple step; legacy Boolean exclusive endpoint not basefull.scalar-meaning/1Establish exact inclusive/exclusive bounds and positive-step meaning in an available ordinary effective context.
M046C.2String length constraints count Unicode scalars with inclusive boundsfull.scalar-meaning/1Establish inclusive Unicode-scalar text-length meaning in an available ordinary effective context.
M047C.2pattern syntax is ECMA262 Unicode; suggested portable subset not entire grammarfull.pattern-format/1Check effective pattern syntax within the supported bounded ECMAScript capability.
M048C.2pattern modeled matching meaning is unanchored Unicode substring unless anchorsfull.pattern-format/1Establish bounded Unicode unanchored model matching capability by compilation without a sample or satisfying witness.
M049C.2Base formats date/date-time/time RFC3339, uri/uri-reference RFC3986, uuid RFC9562; recorded representation conventions and external knowledge distinguishedfull.pattern-format/1Establish known civil, URI, URI-reference and UUID model interpretations independently of actual value denotation.
M050C.4When items is present,its established description constrains every array elementfull.compound-meaning/1Establish every final item description recursively in its actual role, independently of samples.
M051C.4Array element-count limits inclusivefull.compound-meaning/1Establish inclusive exact mathematical counts separately from formal uint membership and satisfiability.
M052C.4uniqueItems true uses adopted exact value equality over all elementsfull.compound-meaning/1Establish ordinary contextual equality capability recursively across final alternatives; abstract gaps remain scoped.
M053C.5object properties names identify allowable entries, values use Full description semanticsfull.compound-meaning/1Establish every final property description, including optional entries, under open map semantics.
M054C.5Map entries optional unless required key-name array, independent of affordance requiredness/nullabilityfull.compound-meaning/1Establish decoded mandatory map-entry names independently of property descriptions and grouping declarations.

Formal CDDL number membership is separate from mathematical decimal decoding. Appendix A imports the RFC 8610 domains: uint 0 through 2^64−1, nint −2^64 through −1, their int union, and binary16/32/64 floating-point values. Full admits every JSON number as number, following RFC 8610 Appendix E’s description of JSON numbers as decimal and RFC 9880’s own Figure 5, which uses 5e-2. Full checks uint as integral values from 0 through 2^64−1, without rounding. Numeric literals, bound parameters and count parameters have distinct owners M035, M036 and M037. Exact lexemes such as 0.1, 10.0, 18446744073709551616 and 1e400 remain inspectable. Colon entries reject established out-of-domain counts. Grouping counts use no-cut fallback and known literal extension alternatives remain framework-admitted, with their unavailable semantics scoped separately. Initial, expanded and selected-sample contracts remain unchanged. See ADR 0032: Formal model admission and the formal admission contract.

Full area membership

The fixed areas are document syntax, model roles, metadata, namespace/reference, composition/requiredness, critical extensions, data grammar, formal numbers, scalar meaning, pattern/format, compound meaning, special type/unit, and the four advisory classes. Their exact IDs are the distinct area entries in the table above plus advisory-four/1. The advisory area counts once in the 13 areas and contributes no extra RFC obligation to the 54 denominator.

Both unit subareas join once into M023. Both content-format subareas join once into M024. Modified metadata joins into M012 and pattern syntax into M047. Each resulting obligation joins once into its Full area. Producing condition IDs remain modified-date-time/1, unit-spelling/1, unit-registry-guidance/1, content-format-syntax/1, content-format-registry/1, pattern-syntax/1, inspection for required relationships, or advisory-four/1. Optional coverage_owner identifies their requested Full area without changing the producing assessment_unit. Generic findings use actual field and role context.

Roles outside model assessment

The following audit identities do not enter model counts. They distinguish standards duties from the model obligations above.

IdentityRole, citation and finite dutiesModel boundary
S001-S010Sample C intro/C.1-5/4.7.1: actual type, const equality, numeric bounds/step,Unicode lengths,pattern matching,formats,array elements/count/equality,map entries/required,special-type representation,nullable membershipM026-029,M042-043,M045-046,M048-054 establish modeled meaning; these S duties produce actual supplied-value outcomes only
CV001Converter C.6: legacy draft4 Boolean exclusivity import/exportNo current conversion request
CV002Translator7.3-7.4: unit-URN pchar percent encoding and registry nonoverlapM023 checks supplied unit meaning, does not translate/register
PR001Processor3.1: normally SHOULD NOT dereference feature URISupplied-only API; no network acquisition assertion
PR002Processor4.7 note1: normally SHOULD NOT dereference unit URISupplied-only API
PR003Processor8: robust bounded input/output processing, avoid unpredictable generated JSONOriginal public budgets/encoding; operational safety, not54 semantic duties
PR004Protocol/media7.1-7.2: application/sdf+json, no media parameters,CoAP434/delivery fragmentsM001 supplied UTF-8 JSON only; no device/protocol conformance
RG001Registry7.5.1: quality-name pattern,immutable reviewed reference,frugal allocationsRegistrant/expert duties
RG002Registry7.5.2: prefix pattern,contact,stability/transparency,Expert ReviewM005/M028 supplied usage separate
RG003Registry7.5.3: type pattern,meaningful specification,consistent conventional type/JSON representationM025/M028 relevant modeled meaning separate
RG004Registry7.5.4: feature-name syntax,immutable reviewed reference,frugalityM013 critical understanding separate
OP001Operator8: authenticity,integrity,applicability of each component/module/upgradeSourceId/digest does not authenticate
OP002Operator8: dynamic ecosystem acquisition,confidentiality,access controlNo fabricated trust or mechanism
AD001Author advice2.2.1 Object granularityOptional
AD002Author advice2.3.2-3 simple ASCII namesMandatory colon/name syntax M004 separate
AD003Validator RECOMMENDED3.1 warning absent infometadata.info_absent Advice,not RFC error
AD004Lifecycle RECOMMENDED3.1 lexicographic version increasePrior version absent is external context,not model syntax failure
AD005Author advice3.1 unambiguous license URI/SPDXOptional
AD006URI guidance3.2/4.1 no namespace fragment,https path,no queryOptional,not general URI syntax
AD007Author RECOMMENDED4.7.1 conventional type with sdfTypeOptional advice; M028 consistency meaning remains
AD008Optional6 refinement convention restrict reused setNo universal subset solver duty
AD009C.2 portable regex subset suggestionNo prohibition of broader ECMA syntax
AUTH0011.2.4 I-Regexp textual pattern convention and9.1 dependency importsSupporting M005/M017/M025/etc; no standalone conformance count
AUTH002A/C normative,B informative,D example,E historical authoritySupporting whole ledger; A001/A002 acceptance not RFC obligations

Consumer contract

The mandatory existing request.inventory identifies the immutable area membership. esdieff.full-model/1 also binds the 54-member rfc9880.model/1 inventory, even when every new optional section is absent. Historical Full reports with null inventory and coverage.inventory_unavailable mean unknown membership, never an empty inventory.

The borrowed descriptor and typed status accessors do not render or allocate a report. Full returns all 54 known descriptors and authoritative statuses; an unfamiliar requirement ID is absent. Other operations do not request this inventory. Optional wire aliases, summaries, rows and ownership detail may be omitted under presentation limits. Consumers preserve mandatory aggregates and surviving diagnostic facts, accept unknown additive fields and human wording changes, and validate unique retained identities and linked omission counts. See the report contract.