# live-conformance/usage — AI usage preferences and consumption claims The corpus of [`extensions/ai-usage.md`](../../extensions/ai-usage.md) §10, in one file, `vectors.json`. Its `keys` name every key by its role, as 64 lowercase hexadecimal digits; its `revisions` are the vocabulary revisions §3 reads. Each section is a list of cases, each with its `name`, a `description`, its inputs and its `outcome`: - `statements` (§3): `json`, a statement's text. `accept`: the `digest` and the `preferences` of every term it names, by vocabulary (`allow`, `disallow` or `unknown`); or `refuse` and the `reason`. - `publications`: each a group of objects under one key, its `group` receipt ([jwp-receipts](../../extensions/jwp-receipts.md) §2.4.1) and, for a room's media, its `room`. - `objects` (§4.1): `envelope` (hexadecimal) and its object `receipt`, under its publication's group. `held`: the `content_hash`, the `statement`'s digest or `null`, and `t`, the manifest's `live.t` or `null`; or `refuse` and the `reason`. - `rooms` (§4.2, §4.3): `descriptor`, `grants` and usage `records`, each hexadecimal. The outcome holds `grants` and `records`, each `accept` or the `index` and `reason` of the first refused; `terms`, each grant the room accepts with its `principal` and its terms' digest, `null` for none or `grant_usage_malformed`; and, where the records are accepted, `in_effect`: the statements governing an object at each instant `t` (`null` for an object with no time). - `responses` (§4.4): an object of a publication and its response `fields`, each a name and a value. `accept` and the vocabularies the fields state `unsigned`, or `refuse` and the `reason`. - `catalogs` (§4.5): a catalog track `entry` and the `objects` of its track. - `claims` (§6): the claim's `wire` text and its `context`: the `publications` whose held objects the verifier holds, the `room`, and the claim before it of its signer, `previous`, by name, or `null` when the verifier is given none. `accept` and each object's `outcome` (`allowed`, `unknown` or `outside`), in the order of the claim's `objects`; or `refuse`, the jwp-receipts §3.1 `step` and the `reason`. - `gates` (§7): the `policy`, the `agent` by its key's name, the groups `served`, the `claims` given, by name, each verified with its own context, and the group requested. `serve`, or `refuse` and the `reason`. A verifier that reaches another outcome, reason, step, digest, preference, terms or object outcome does not conform. Payloads are opaque test bytes that no case decodes. **Provenance.** Generated here: `wai_ai_usage_vectors gen` writes the file from statements, envelopes, rooms and claims authored in code, from fixed seeds. Each key is SHA-256 of a fixed label and an index; every time is a constant (the room's `t0` is 2026-10-21T00:00:00Z); every origin and URL is an `.example` name (RFC 2606); and Ed25519 signing is deterministic (RFC 8032), so the file is the same bytes on every machine. The generator asserts that each case reaches the outcome it was written to have and that the corpus gives every reason of §9. `ai_usage_verify.py`, beside this directory, is the second implementation.