pub struct Act {
pub act_id: Uuid,
pub actor_lct: Uuid,
pub address: ActAddress,
pub kind: String,
pub consequence: ConsequenceClass,
pub substance: SubstanceRef,
pub witnesses: Vec<WitnessAttestation>,
pub at: DateTime<Utc>,
}Expand description
A thin, witnessed governance record of an entity externalizing work — the unifying primitive behind memory writes, handoffs, and forum posts.
Fields§
§act_id: Uuid§actor_lct: UuidThe acting entity — the from. Rides in the payload; the ledger
envelope’s signer may differ (HUB’s identity bridge: the machine/track
LCT signs the envelope, an arc-LCT is actor_lct here).
address: ActAddressRecipient + MRH relevance horizon, in one field.
kind: StringAct kind — lets a recipient route/filter without opening the
substance. Convention (HUB, hub↔core converged): a bare <verb>
for fleet/peer acts (handoff, memo, sweep, forum); the
notify:<event> namespace for hub→citizen notifications (the
act-reversed case, e.g. notify:intro_accepted). The notify:*
sub-vocabulary is hub-minted; the canonical registry lives in the
society/ledger spec. Open set — extend freely.
consequence: ConsequenceClassHow reversible the act’s effect is.
substance: SubstanceRefPointer to the fat substance this act governs.
witnesses: Vec<WitnessAttestation>Flat witness marks — entities attesting they observed the act.
at: DateTime<Utc>Implementations§
Source§impl Act
impl Act
Sourcepub fn memory(
actor_lct: Uuid,
substance: SubstanceRef,
at: DateTime<Utc>,
) -> Self
pub fn memory( actor_lct: Uuid, substance: SubstanceRef, at: DateTime<Utc>, ) -> Self
A memory write — an act to your future self (temporal MRH).
Default kind "memo".
Sourcepub fn handoff(
actor_lct: Uuid,
peer_lct: Uuid,
substance: SubstanceRef,
at: DateTime<Utc>,
) -> Self
pub fn handoff( actor_lct: Uuid, peer_lct: Uuid, substance: SubstanceRef, at: DateTime<Utc>, ) -> Self
A handoff — an act to a peer (lateral MRH). Default kind "handoff".
Sourcepub fn forum(
actor_lct: Uuid,
society_lct: Uuid,
substance: SubstanceRef,
at: DateTime<Utc>,
) -> Self
pub fn forum( actor_lct: Uuid, society_lct: Uuid, substance: SubstanceRef, at: DateTime<Utc>, ) -> Self
A forum post — an act to the society at large (broad MRH). Default
kind "forum".
Sourcepub fn addressed(
actor_lct: Uuid,
address: ActAddress,
kind: impl Into<String>,
substance: SubstanceRef,
at: DateTime<Utc>,
) -> Self
pub fn addressed( actor_lct: Uuid, address: ActAddress, kind: impl Into<String>, substance: SubstanceRef, at: DateTime<Utc>, ) -> Self
The general constructor — any ActAddress + kind
(incl. the hub→Citizen notify:<event> case and Role fan-out).
Sourcepub fn with_kind(self, kind: impl Into<String>) -> Self
pub fn with_kind(self, kind: impl Into<String>) -> Self
Override the act kind — e.g. a more specific verb than a
constructor’s default, or a notify:<event> on a Citizen-addressed act.
pub fn with_consequence(self, c: ConsequenceClass) -> Self
pub fn witnessed_by(self, attestation: WitnessAttestation) -> Self
Sourcepub fn mrh_direction(&self) -> MrhDirection
pub fn mrh_direction(&self) -> MrhDirection
The coarse MRH axis this act reaches across (derived from its address).
Sourcepub fn requires_atp_stake(&self) -> bool
pub fn requires_atp_stake(&self) -> bool
Whether this act must carry an ATP stake before it’s admissible. The gate is on irreversibility: you stake energy on acts you can’t take back.
Sourcepub fn requires_witness(&self) -> bool
pub fn requires_witness(&self) -> bool
Whether this act must be witnessed to be admissible (irreversibles must).
Sourcepub fn record_outcome(
&self,
trust: &mut TrustValueScore,
outcome: ActOutcome,
) -> (f64, f64)
pub fn record_outcome( &self, trust: &mut TrustValueScore, outcome: ActOutcome, ) -> (f64, f64)
Fold this act’s realized ActOutcome into the actor’s
[EntityTrust] — “EntityTrust fed by act-outcomes”. A fulfilled act
builds Validity/Veracity; a failed one debits them; the consequence
class scales the magnitude (more is staked on irreversibles, so the
trust swing is larger). Returns the realized (validity, veracity) deltas.