# ENC/ASL1-CORE Registry Manifest (draft) This file documents the JSONL rows in `registry/enc-asl1-core.jsonl`. Each line is one entry descriptor for a single encoding profile assignment. The key is the profile ID (a concept); the descriptor is data. ## Field definitions - `registry`: string. Constant `"ENC/ASL1-CORE"`. - `profile_id`: string. Hex `u16` formatted as `0x0000`. - `handle`: string. Stable concept handle for this profile assignment, e.g. `amduat.enc.asl1.core.profile.0001@1`. - `name`: string or null. Profile name if assigned (e.g. `ASL_ENC_CORE_V1`). - `version`: string. Hex `u16` encoded version from the descriptor table. - `status`: string. One of: `mandatory`, `reserved`, `deprecated`, `experimental`. - `spec_ref`: string. Document/version that defines the assignment. - `notes`: string. Short human-readable note. - `descriptor_sha256`: string. Lowercase hex SHA-256 digest of the canonical descriptor (see below). ## Canonical registry key `profile_id` is the registry key. Its key bytes are the big-endian `u16` encoding defined in `ENC/ASL1-CORE` (see `amduat_enc_asl1_core_key`). ## Handle naming scheme Handles are opaque identifiers in the `amduat` namespace: ``` amduat.enc.asl1.core.profile.@1 ``` `hex4` is the 4-digit lowercase hex of the profile ID (zero-padded). ## Descriptor digest rule `descriptor_sha256` is computed as SHA-256 over the UTF-8 bytes of the canonical JSON object with these fields **in order**: ``` registry, profile_id, handle, name, version, status, spec_ref, notes ``` The canonical JSON uses no extra whitespace and does **not** include the `descriptor_sha256` field itself. ## Intended use - Source of truth for codegen (C tables, enums) and documentation tables. - `descriptor_sha256` can be treated as the stable digest for mapping entries into graph references or evidence tables.