use Builder;
use ;
use ;
/// Technical metadata attached to every [`EventEnvelope`](super::EventEnvelope).
///
/// Where [`EventContext`](super::EventContext) carries *business-level*
/// propagation data (correlation, causation, actor), `Metadata` carries the
/// *technical* facts the persistence layer needs to route and persist an
/// event:
///
/// - which aggregate instance the event belongs to (`aggregate_id`),
/// - what kind of aggregate that is (`aggregate_type`),
/// - when the event happened in wall-clock terms (`occurred_at`).
///
/// Construct instances with [`Metadata::builder`].