pub struct SearchResult {
pub ctx_id: CtxId,
pub lineage_id: LineageId,
pub agent_id: AgentDid,
pub title: String,
pub summary: Option<String>,
pub context_type: ContextType,
pub domain: Option<String>,
pub created_at: DateTime<Utc>,
pub status: Status,
pub visibility: Option<Visibility>,
}Expand description
A single search result — match_summary projection per
acdp-common.schema.json#/$defs/match_summary.
Required fields: ctx_id, lineage_id, type, agent_id, title, created_at, status. Optional: summary, domain, visibility. The full description, tags, etc. are NOT in this projection — fetch the full Body via the registry’s retrieval endpoint to access them.
match_summary is additionalProperties: false; deserialization
rejects unknown fields to keep the projection aligned with the schema.
Fields§
§ctx_id: CtxIdContext identifier.
lineage_id: LineageIdLineage this version belongs to.
agent_id: AgentDidProducer’s signing DID.
title: StringShort human-readable title.
summary: Option<String>Producer-supplied search-summary (≤ 1000 chars). Omitted (never
null) when the context has no summary — match_summary types
it as a bare string; an explicit null is rejected (schema-006).
context_type: ContextTypeStandard or namespaced custom context type.
domain: Option<String>Subject-domain identifier. Omitted (never null) when absent —
match_summary types it as a bare string; an explicit null is
rejected (schema-007).
created_at: DateTime<Utc>Registry-assigned acceptance time.
status: StatusLifecycle status.
visibility: Option<Visibility>Visibility level per RFC-ACDP-0005 §2.2 / RFC-ACDP-0008 §4.5
disclosure rules. Registries SHOULD include Public for public
results; for Restricted / Private results the field MUST only
be present when the requester is authorized. Absence MUST NOT be
interpreted as Public.