amduat/registry/hash-asl1.schema.md
2025-12-19 20:55:07 +01:00

1.8 KiB

HASH/ASL1 Registry Manifest (draft)

This file documents the JSONL rows in registry/hash-asl1.jsonl. Each line is one entry descriptor for a single HashId assignment. The key is the HashId itself (a concept); the descriptor is data.

Field definitions

  • registry: string. Constant "HASH/ASL1".
  • hash_id: string. Hex u16 formatted as 0x0000.
  • handle: string. Stable concept handle for this HashId assignment, e.g. amduat.hash.asl1.id.0001@1.
  • name: string or null. Algorithm name if assigned (e.g. HASH-ASL1-256).
  • digest_len: integer or null. Digest length in bytes; null if unknown.
  • 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

hash_id is the registry key. Its key bytes are the big-endian u16 encoding defined in ENC/ASL1-CORE (see amduat_hash_asl1_key).

Handle naming scheme

Handles are opaque identifiers in the amduat namespace:

amduat.hash.asl1.id.<hex4>@1

hex4 is the 4-digit lowercase hex of the HashId (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, hash_id, handle, name, digest_len, 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.