- Refusal parity (tests/jpegai_nets_ops.rs):
- every_load_check_of_the_networks_refuses_model_mismatch: 19 breaks of
§13.6.2's load checks in the committed networks (a member missing or of the
other kind, dims, counts, groups other than 4 or 5, a kernel not the
topology's, a bias short, shifts of 128 and -1, a non-integer weight, a
multiplier past i64, three temperatures, ψ of other than 4C channels, a luma
synthesis of two planes, an odd feed-forward width, a mistyped member, a sum
past i64 under A32) are refused model_mismatch from the files' bytes, 15 of
them from the parsed networks too (the rest the direct parser cannot read);
and two members of one name, from the bytes;
- a_value_past_its_range_is_refused_field_range: a residual or a latent one
past A32 at either end is refused field_range at its input by every graph
that reads it; on the test codestream a residual at either end of A32, where
the mean keeps the sum within it, decodes through rec_y and rec_uv as the
direct decode does, and one past it is refused where the direct decode
computed on (integer-operators §15.3 item 4).
- Registry: wai.image.jpegai's ops member is { wai-ops/1, acc64, full,
jpegai-int/1, role_profiles: { hs_y: acc32, hs_uv: acc32 } } (§11); the schema
gains role_profiles (it requires profile); registry/capabilities.json and its
schema regenerated by `wai registry export`.
- SPEC §5 (the row's refusals and its reference implementation), §7
(NeuralEntropyExact names the profiles; the networks lie outside the claim),
§8 (the networks' planned breaks).
- CHANGELOG: a truncated sentence of the WIV1/WIR1 entry completed.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
342 lines
8.9 KiB
JSON
342 lines
8.9 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",
|
|
"wire_identifiers"
|
|
],
|
|
"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",
|
|
"refinement",
|
|
"derivation",
|
|
"record"
|
|
]
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"registered",
|
|
"candidate"
|
|
]
|
|
},
|
|
"media": {
|
|
"enum": [
|
|
"image",
|
|
"audio",
|
|
"video",
|
|
"text",
|
|
"volumetric",
|
|
"haptic",
|
|
"metadata",
|
|
"interactive",
|
|
"binary",
|
|
null
|
|
]
|
|
},
|
|
"role": {
|
|
"enum": [
|
|
"standalone",
|
|
"companion",
|
|
"enhancement",
|
|
"refinement",
|
|
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."
|
|
},
|
|
"ops": {
|
|
"type": "object",
|
|
"description": "The integer operator set the capability decodes through (extensions/integer-operators.md §11). Absent for a capability that does not. A capability whose decode runs no graph, only stage operators (§13.5), has no profile, subset or lowering.",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"set"
|
|
],
|
|
"dependentRequired": {
|
|
"profile": [
|
|
"subset",
|
|
"lowering"
|
|
],
|
|
"subset": [
|
|
"profile",
|
|
"lowering"
|
|
],
|
|
"lowering": [
|
|
"profile",
|
|
"subset"
|
|
],
|
|
"role_profiles": [
|
|
"profile"
|
|
]
|
|
},
|
|
"anyOf": [
|
|
{
|
|
"required": [
|
|
"lowering"
|
|
]
|
|
},
|
|
{
|
|
"required": [
|
|
"stage"
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"set": {
|
|
"const": "wai-ops/1"
|
|
},
|
|
"profile": {
|
|
"enum": [
|
|
"acc32",
|
|
"acc64"
|
|
]
|
|
},
|
|
"subset": {
|
|
"enum": [
|
|
"full",
|
|
"npu"
|
|
]
|
|
},
|
|
"lowering": {
|
|
"type": "string"
|
|
},
|
|
"role_profiles": {
|
|
"type": "object",
|
|
"description": "Roles of the lowering whose graphs every conforming set holds to a stronger profile than `profile`, each with that profile (extensions/integer-operators.md §11).",
|
|
"minProperties": 1,
|
|
"additionalProperties": {
|
|
"enum": [
|
|
"acc32",
|
|
"acc64"
|
|
]
|
|
}
|
|
},
|
|
"stage": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"rans64": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"table",
|
|
"escape",
|
|
"end"
|
|
],
|
|
"properties": {
|
|
"table": {
|
|
"enum": [
|
|
"t4097",
|
|
"t2"
|
|
]
|
|
},
|
|
"escape": {
|
|
"enum": [
|
|
"lenient",
|
|
"strict"
|
|
]
|
|
},
|
|
"end": {
|
|
"enum": [
|
|
"canonical",
|
|
"final_only"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"bucket": {
|
|
"enum": [
|
|
"ceil",
|
|
"floor"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"wire_identifiers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"name",
|
|
"kind",
|
|
"document",
|
|
"section",
|
|
"status"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"enum": [
|
|
"media-type",
|
|
"codecs-prefix",
|
|
"fourcc",
|
|
"magic",
|
|
"data-id",
|
|
"scheme",
|
|
"path",
|
|
"well-known",
|
|
"playlist-tag",
|
|
"playlist-attribute",
|
|
"document-kind",
|
|
"catalog"
|
|
]
|
|
},
|
|
"document": {
|
|
"type": "string"
|
|
},
|
|
"section": {
|
|
"type": "string",
|
|
"pattern": "^(§[0-9]+(\\.[0-9]+)*|Appendix [A-Z])$"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"defined",
|
|
"provisional",
|
|
"proposed"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|