pub struct Amendment {
pub agora_governance_amendment: u32,
pub target: GovernanceLogId,
pub target_entry_hash: Sha256Hex,
pub kind: AmendmentKind,
pub authority: Option<GovernanceLogId>,
pub basis: AmendmentText,
pub note: AmendmentText,
pub rationale: Option<AmendmentText>,
pub redaction: Option<Redaction>,
pub revision: Option<Revision>,
}Expand description
The data of an amendment entry: what an earlier entry now means.
The target is never edited — except its data under a Redaction —
so the amendment is the whole record of the change, and both are
signed links of the same chain.
Fields§
§agora_governance_amendment: u32Always AMENDMENT_VERSION
target: GovernanceLogId§target_entry_hash: Sha256HexThe target’s entry_hash — binds this to one exact entry
kind: AmendmentKindThe governance entry that authorizes this, when one does
(e.g. GOV-2026-0005). None for a lawful-deletion redaction.
basis: AmendmentTextSection or legal basis, human-readable: "§1 (Red Team Cases Recharacterized)", "GDPR Art. 17(1)(a)". Never personal data —
and erasable, for the day that rule is broken.
note: AmendmentTextThe label readers and prompts show next to the target
rationale: Option<AmendmentText>Why, at length — note is the label, this is the reasoning.
redaction: Option<Redaction>Present iff kind is AmendmentKind::Redaction
revision: Option<Revision>Present iff kind is AmendmentKind::Revision (0.43)
Implementations§
Source§impl Amendment
impl Amendment
Sourcepub fn validate(&self) -> Result<(), AmendmentError>
pub fn validate(&self) -> Result<(), AmendmentError>
Version, the shape of the texts for that version, and the redaction- and revision-shape invariants — everything checkable without the rest of the chain
Sourcepub fn text_status(
&self,
beside: Option<&AmendmentTexts>,
) -> Result<Option<AmendmentTextStatus>, AmendmentError>
pub fn text_status( &self, beside: Option<&AmendmentTexts>, ) -> Result<Option<AmendmentTextStatus>, AmendmentError>
Where each committed text stands given what is beside the entry;
None for version 1, whose texts are in the signed data.
A text that is beside the entry and is not the one committed to, or that the entry never committed to at all, is an error: someone put words next to a signed entry that the signer did not write.