# 1.1.0 identifiers and external volume UUID > Version: 1.1.0. Release requirements; implementation and delivery are recorded below. > [Verification status](/Riff/1-1-0/status). ## Universal rule and sole UUID exception Every product entity identifier except Media.ID is 64-bit unseeded XXH3 of explicitly defined significant content. Media.ID retains its existing 128-bit domain-level disambiguation semantics, including low-word presence and short aliases. Do not use random IDs, UUID-derived internal IDs, or arbitrary counters as entity IDs. Generations, transport sequences, profile slots and vector ordinals are quantities/indices, not substitute identities. The sole UUID identity is the externally visible source-volume marker already defined by [Cuetree integration](/Riff/LATEST/cuetree-integration): .riff/riff_root_uuid with its riff_root_uuid.xxh3 eight-byte checksum. Preserve canonical UUIDv4 validation, exact checksum framing and write/sync/read-back admission. Do not invent another marker, alter its bytes or reuse the UUID as an internal queue/store ID. Existing external marker fallback reads are part of that same volume-identity resolver, not permission to create UUIDs elsewhere. Internal snapshot directory UUIDs, default RandomIds and UUID diagnostic filenames are prohibited in the Riff 1.1.0 integration. Adapt the library injection/persistence boundaries accordingly. Provider-issued opaque document IDs are external locators, not first-party entity IDs. ## Catalog wire identity Only MEDIA, FILF and their media references use Media.ID high/nullable-low semantics. Folder, metadata/technical-source, Album, Artist, Genre and Attribute identifiers and all nonmedia reference vectors MUST use 64-bit scalars on the wire, never MediaId tables. Zero is a valid identity; nullable scalar presence, not a zero sentinel, represents absence. In mixed MDIA, kind distinguishes a 64-bit entity ID from a media high word. Only media-bearing records may carry a low word; only a FILF parent may carry a media low word. Physical parents remain Folder.ID. The [Cuetree format](/Cuetree/persistence) owns the exact fields and version fence. Nonmedia namespaces are separate. Scalar record catalogs sort by signed ID; media/source catalogs sort by signed Media.ID high, then absent low before every present signed low. Lookup uses binary bounds/exact lookup; physical copies remain separate occurrences. Alphabetical UI ordering and semantic track/chapter/queue order are independent of storage ID order. No ordinary hash-collision comparison, detection, widening or retry may be reintroduced through validation or interning. ## Canonical hash input Define H(domain, fields) as unseeded XXH3-64 over UTF-8 "riff-id-v1", a length-prefixed UTF-8 domain, and typed fields in the owner's declared order. Use little-endian fixed-width integer bit patterns; one byte 0/1 for booleans; a presence byte for nullable fields; u32 byte lengths before UTF-8 strings; u32 counts before vectors. Encode Media.ID as high i64, low-presence byte and low i64 only when present. No locale formatting, wall time, process address, unordered-map order or raw FlatBuffers allocation layout enters semantic entity hashes. All 64-bit bit patterns, including zero, are valid hash results. Use nullable FBS scalars for absence. No detection or resolution of XXH3 hash collisions is required: no collision registry, canonical-input comparison, random salt/retry or widening of a non-Media ID. File length and XXH3 checksum integrity validation remain required. Media.ID disambiguates domain identity; this is not a generic hash-collision mechanism. ## Identity material - Title/Album/Artist/Genre/Folder IDs hash their canonical identity-defining catalog content under the existing grouping/normalization owner, excluding scan generation, availability and UI labels. The Riff adapter must replace retained random catalog-ID allocation. Source structural keys retain the validated volume identity and canonical relative source identity. - Saved Book queue: profile slot and Title.ID. Dynamic queue: NULL. - Saved Music queue: profile slot and immutable creation-command content ID. The creation command includes initial name, ordered membership and captured delivery provenance. Persist creation_id; later rename, checkpoint or membership edits do not change queue identity. - Occurrence: creation-command ID, its original ordinal and Media.ID. Preserve it through revisions; a new deliberate insertion has its own creation command. Duplicates remain distinguishable. - Queue revision: ordered occurrence IDs and Media.IDs; position, labels, observed durations and Shuffle checkpoint are not revision identity. - Bookmark: profile slot, saved queue ID, exact occurrence ID and local position_us. Label is mutable presentation, not identity. - Attempt: captured writer identity, actual activation/transition provenance, execution revision and occurrence. Existing protocol/transition ordinals distinguish repeated actual attempts; they never become the history age clock. - Writer: admitted root descriptor, prior accepted receipt context and actual OS process incarnation. Hash that meaningful session descriptor; never wrap a freshly generated UUID in XXH3. - Command: writer, file scope, assigned sequence and canonical typed payload. - Configuration snapshot: canonical merged document, with keys sorted for hashing only. - Snapshot object/manifest: complete final immutable bytes, including padding, using raw XXH3. The production Cuetree adapter injects the caller-defined content allocator under [the independent library boundary](/Cuetree/identity-access#caller-defined-admission-identity). Its H domain is `catalog-` followed by the supplied kind domain and its fields are the library's canonical material. New Album IDs hash admission content; existing retained reconciliation preserves them through mutable composition. Genre inference uses the same genre material as normal catalog admission. The adapter changes its metadata fingerprint so older randomly allocated catalogs are recreated under existing catalog policy. This does not reset user state. Mutable state references stable identity material rather than hashing current position into its ID. The exact catalog-domain field lists remain owned by the independent catalog identity contracts; Riff 1.1.0 requires their adapter reconciliation and canonical-identity tests before acceptance.