Expand description
Canonical-tuple audit identity for fetched papers (ADR-0021 §1, ADR-0024).
Binding spec: docs/DECISIONS/0021-canonical-tuple-identity.md
§1 (NORMATIVE shape + digest algorithm) and
docs/DECISIONS/0024-canonical-ref-impl.md
(implementation supersession).
§Algorithm (NORMATIVE)
canonical_digest := SHA256( source_type | 0x00 | source_id | 0x00
| resolver_profile | 0x00 | version_or_empty )where | is byte concatenation, 0x00 is the single-byte field
separator, and version_or_empty is the literal empty byte sequence
when version is None (ADR-0021 §1 Slice 2 clarification — NO
sentinel like "null" / "none" / "-").
The four source_type wire tokens fed into the digest match the
lowercase variant names used by Ref’s tagged serde encoding:
"doi", "arxiv". Future variants (Pmid, Handle, …) MUST use
their lowercase variant name as the wire token.
Structs§
- Canonical
Ref - Four-tuple audit identity of a fetched paper (ADR-0021 §1).
Enums§
- Source
Type - Identifier-class tag for a
CanonicalRef.