pub struct LineageSection {
pub human_root_did: String,
pub creator_did: String,
pub generation: u32,
pub derivation_proof: Option<AgentLineageProof>,
pub human_root_chain: Vec<String>,
pub org_inclusion_proof: Option<OrgInclusionProof>,
pub anchor_refs: Option<Vec<AnchorRef>>,
}Expand description
The lineage section of an OAS Identity Document.
Contains the cryptographic chain linking an entity to its human root. Required for L1+ conformance on non-root entities.
See OAS Specification §8 for the complete structure.
§Examples
use oas_document::lineage_section::LineageSection;
let lineage = LineageSection {
human_root_did: "did:oas:acme:hmr:alice".to_string(),
creator_did: "did:oas:acme:hmr:alice".to_string(),
generation: 0,
derivation_proof: None,
human_root_chain: vec![
"did:oas:acme:ao:research".to_string(),
"did:oas:acme:hmr:alice".to_string(),
],
org_inclusion_proof: None,
anchor_refs: None,
};
assert_eq!(lineage.generation, 0);Fields§
§human_root_did: StringDID of the ultimate human root (HMR, MHR, or ENR).
creator_did: StringDID of the entity that directly created this entity.
generation: u32Number of derivation steps from human root. 0 = created directly by human root.
derivation_proof: Option<AgentLineageProof>AgentLineageProof2025 linking this entity to its creator.
human_root_chain: Vec<String>Ordered array of DIDs from this entity to human root.
org_inclusion_proof: Option<OrgInclusionProof>Optional Merkle inclusion proof binding this entity to the
OrgLineageRoot of its creator (an MHR / ENR org). REQUIRED at
resolution time when the GAL has an OrgLineageRoot for the
creator DID. Verification uses BLAKE3; see
OrgInclusionProof.
anchor_refs: Option<Vec<AnchorRef>>References to on-chain or transparency-log anchors attesting to this lineage section’s registration.
Lineage authority is backend-agnostic (see AnchorRef). An
entity MAY be anchored on multiple backends at once - Sigil and an
EAS attestation and a transparency log - and verifiers consult the
refs for the schemes they trust. A verifier MUST ignore refs whose
scheme it does not support rather than rejecting the document:
unknown schemes are additive, never breaking.