# Registry Manifest Schema (core) This file defines the common conventions for registry JSONL manifests in `vendor/amduat/registry/`. Each registry then supplies a registry-specific schema that fixes the key field(s) and the descriptor field ordering used for `descriptor_sha256`. ## JSONL rules - Each line is one JSON object (JSONL). - Fields must match the registry-specific schema. - Required fields must be present even if the value is `null`. ## Handle naming Handles are stable identifiers in the `amduat` namespace: ``` amduat....@ ``` `id` is the canonical key for the registry (usually lowercase, zero-padded hex). `version` increments only if the meaning of the key changes. ## Canonical descriptor digest Each entry includes `descriptor_sha256`, the SHA-256 digest (lowercase hex) of its canonical descriptor JSON object. The canonical descriptor object: - Includes the descriptor fields defined by the registry-specific schema. - Uses the exact field ordering specified by the registry-specific schema. - Excludes the `descriptor_sha256` field itself. - Uses standard JSON encoding with no extra whitespace. - Is hashed over its UTF-8 byte sequence. Registry-specific schema files define the precise field ordering and any additional constraints on descriptor fields. ## Canonical key encoding Each registry defines the byte encoding of its key. The encoding is used when constructing ASL registry artifacts. See the registry-specific schema for the exact key encoding (e.g., big-endian `u16` for `HASH/ASL1`).