Every registered string now lives in one table (codecs/registry.rs) with its kind, status, media class, registering SPEC section, edition and registration date. `wai registry export` writes registry/capabilities.json, its JSON Schema, the generated table in REGISTRY.md and vocab v2; --check fails on drift. vocab v1 stays stable. A candidate capability (a registered string whose payload format no revision has pinned) must not be emitted. The C packers, the browser writers and `wai wrap` refuse one, and `codecs::is_dispatchable` is the single dispatch and selection predicate (SPEC §4): candidates, companion-only capabilities, records and derivations are not dispatchable, and an unregistered string is decoded only where the sink advertises it. The codec glossary is linked to the registry through a reviewed table and held to its schema by a library test; `org` becomes `body`, from a closed allowlist. The SPEC gains §5 sections on kinds and candidates, a §8 edition rule, corrected citations and rewritten appendices. The quantum-ops vectors are regenerated with neutral device ids. CI declares the feature-gated test targets with required-features, checks the registry export, builds wai-web for wasm32, and runs two public-text checks (comparative prose, and private name patterns) with a self-test. The specification, extensions, research notes, READMEs, glossary and source comments are rewritten to name no company or product and to make no comparisons. Co-Authored-By: Claude Opus 5.5 <[email protected]>
181 lines
4.5 KiB
JSON
181 lines
4.5 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://git.transaction.science/Transaction-Science/open-standards/src/branch/main/wai/registry/capabilities.schema.json",
|
|
"title": "WAI capability registry",
|
|
"description": "Every string SPEC §5 registers, generated by `wai registry export` from the reference implementation's registry (wai-rs/src/codecs/registry.rs). REGISTRY.md states the policy.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema",
|
|
"capabilities",
|
|
"identifiers",
|
|
"unregistered_labels"
|
|
],
|
|
"properties": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"capabilities": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"capability",
|
|
"kind",
|
|
"status",
|
|
"media",
|
|
"role",
|
|
"tier",
|
|
"licence",
|
|
"replicate",
|
|
"sets",
|
|
"spec_section",
|
|
"edition",
|
|
"registered"
|
|
],
|
|
"properties": {
|
|
"capability": {
|
|
"type": "string",
|
|
"pattern": "^wai(\\.[a-z0-9_]+)+$"
|
|
},
|
|
"kind": {
|
|
"enum": [
|
|
"payload",
|
|
"companion",
|
|
"derivation",
|
|
"record"
|
|
]
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"registered",
|
|
"candidate"
|
|
]
|
|
},
|
|
"media": {
|
|
"enum": [
|
|
"image",
|
|
"audio",
|
|
"video",
|
|
"text",
|
|
"volumetric",
|
|
"haptic",
|
|
"metadata",
|
|
"interactive",
|
|
"binary",
|
|
null
|
|
]
|
|
},
|
|
"role": {
|
|
"enum": [
|
|
"standalone",
|
|
"companion",
|
|
"enhancement",
|
|
null
|
|
]
|
|
},
|
|
"tier": {
|
|
"enum": [
|
|
"lossless",
|
|
"lossy",
|
|
"perceptual",
|
|
null
|
|
]
|
|
},
|
|
"licence": {
|
|
"enum": [
|
|
"royalty-free",
|
|
"patent-pool",
|
|
"proprietary",
|
|
"non-commercial",
|
|
null
|
|
]
|
|
},
|
|
"replicate": {
|
|
"enum": [
|
|
"standard-defined",
|
|
"standard-tolerance",
|
|
"standard-unclassified",
|
|
"neural-int-exact",
|
|
"neural-entropy-exact",
|
|
"generative-exact",
|
|
"neural-float",
|
|
"behavioral",
|
|
null
|
|
]
|
|
},
|
|
"sets": {
|
|
"type": "array",
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"enum": [
|
|
"floor",
|
|
"recommended"
|
|
]
|
|
}
|
|
},
|
|
"spec_section": {
|
|
"type": "string"
|
|
},
|
|
"edition": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"description": "The edition the registration names; null means the edition of the named standard current on the date in `registered` (SPEC §8)."
|
|
},
|
|
"registered": {
|
|
"type": "string",
|
|
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
|
|
"description": "The date of the first commit of this repository that registers the string; the specification entered the repository on 2026-06-12."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"identifiers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"identifier",
|
|
"spec_section",
|
|
"meaning"
|
|
],
|
|
"properties": {
|
|
"identifier": {
|
|
"type": "string",
|
|
"pattern": "^wai(\\.[a-z0-9_]+)+$"
|
|
},
|
|
"spec_section": {
|
|
"type": "string"
|
|
},
|
|
"meaning": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"unregistered_labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"label",
|
|
"reason"
|
|
],
|
|
"properties": {
|
|
"label": {
|
|
"type": "string",
|
|
"pattern": "^wai(\\.[a-z0-9_]+)+$"
|
|
},
|
|
"reason": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|