pub struct Body {Show 26 fields
pub ctx_id: CtxId,
pub lineage_id: LineageId,
pub origin_registry: String,
pub created_at: DateTime<Utc>,
pub content_hash: ContentHash,
pub signature: Signature,
pub version: u32,
pub supersedes: Option<CtxId>,
pub agent_id: AgentDid,
pub contributors: Vec<AgentDid>,
pub title: String,
pub context_type: ContextType,
pub data_refs: Vec<DataRef>,
pub derived_from: Vec<CtxId>,
pub visibility: Visibility,
pub audience: Option<Vec<AgentDid>>,
pub acdp_version: Option<String>,
pub description: Option<String>,
pub summary: Option<String>,
pub tags: Option<Vec<String>>,
pub domain: Option<String>,
pub expires_at: Option<DateTime<Utc>>,
pub data_period: Option<DataPeriod>,
pub metadata: Option<Value>,
pub schema_uri: Option<String>,
pub extensions: Map<String, Value>,
}Expand description
The immutable stored body of an ACDP context (RFC-ACDP-0002).
Contains producer-controlled fields (covered by the producer signature)
plus registry-assigned identity fields (ctx_id, lineage_id,
origin_registry, created_at) which rely on registry honesty in v0.1.0.
The hash/signature preimage is ProducerContent: the Body with
content_hash, signature, and the registry-assigned identity fields
removed. See RFC-ACDP-0001 §5.7.
Fields§
§ctx_id: CtxId§lineage_id: LineageId§origin_registry: String§created_at: DateTime<Utc>§content_hash: ContentHash§signature: Signature§version: u32§supersedes: Option<CtxId>§agent_id: AgentDid§contributors: Vec<AgentDid>§title: String§context_type: ContextType§data_refs: Vec<DataRef>§derived_from: Vec<CtxId>§visibility: Visibility§audience: Option<Vec<AgentDid>>§acdp_version: Option<String>§description: Option<String>§summary: Option<String>Producer-supplied summary for search results (≤ 1000 chars). Part of ProducerContent — included in the content_hash preimage.
domain: Option<String>§expires_at: Option<DateTime<Utc>>§data_period: Option<DataPeriod>§metadata: Option<Value>§schema_uri: Option<String>§extensions: Map<String, Value>Forward-compatible carry-through of unknown producer-controlled
fields (e.g. v0.1’s priority). Including these in the typed
model is required for serde_json::to_value(body) → JCS → SHA-256
to reproduce the original content_hash. Without flatten, a
v0.1.0 consumer reading a v0.1 body would silently drop the new
field and compute a different hash, falsely rejecting the body.