pub struct NodeCard {
pub node_id: String,
pub language: String,
pub text: String,
pub source_revision: u64,
pub source_content_hash: String,
pub source_record_digest: String,
pub source_body_bytes: u64,
pub authored_by: String,
pub authored_at: String,
pub card_revision: u64,
}Expand description
A reader-authored compact view of one node body, in one language.
A card is derived, never canonical. It names the exact body version it was written from — revision and content hash — so a later reader can tell whether it still describes what the store holds, without trusting the prose. Nothing here participates in ranking, path selection or proof; deleting every card changes no answer except the cards themselves.
card_revision is the card’s own compare-and-set token, separate from the
node’s revision. Rewriting a card never advances the node.
Fields§
§node_id: String§language: StringLanguage tag the card is written in. Part of the identity: a Spanish and an English card for one node coexist and neither shadows the other.
text: String§source_revision: u64Revision of the node body this card was authored from.
source_content_hash: StringThe public token of that body version, kept for provenance. It is not what validity is decided on: it is derived from the event and the node identity, so a write can change the text without changing it.
source_record_digest: StringDigest over the exact stored record of that body version. This is the identity a card is bound to, and the one a reuse check compares.
source_body_bytes: u64Canonical UTF-8 bytes of the body this card stood in for, recorded at authorship so a reader can see what the card saves without loading it.
Writer name recorded at authorship.
RFC3339 instant stamped by the kernel, not by the caller. A historical read compares against this so a card cannot appear before it existed.
card_revision: u64