pub struct CardWire {
pub kind: String,
pub quill: Option<String>,
pub id: Option<String>,
pub ext: Option<Map<String, Value>>,
pub seed: Option<Map<String, Value>>,
pub payload_items: Vec<PayloadItemWire>,
pub body: Value,
}Expand description
Canonical live wire form of a Card. See the module docs.
Serializes to JS-facing camelCase (payloadItems); the snake_case
payload_items is also accepted on input for the Python binding.
deny_unknown_fields makes a stale flat { kind, fields } shape fail
loudly rather than deserialize into an empty card.
Fields§
§kind: StringThe block’s $kind (e.g. "endorsement"); empty string when the block
declares no $kind. Kept non-optional to match the binding read shape.
quill: Option<String>The block’s $quill reference string (name@version), present on the
main card only. Omitted when absent.
id: Option<String>The block’s $id, if any. Omitted when absent.
ext: Option<Map<String, Value>>The block’s opaque $ext map, if declared. Omitted when absent.
seed: Option<Map<String, Value>>The block’s $seed map (keyed by card-kind), if declared. Present on
the main card only. Omitted when absent.
payload_items: Vec<PayloadItemWire>User fields and comments, in source order.
body: ValueThe card body as canonical Content-JSON — the source-of-truth content
model (a content object, {text, lines, marks, islands}). The empty content
when absent. A markdown string is also accepted on input (imported), so an
LLM/markdown writer can still hand a string here.
No body_markdown projection rides this wire: the eager export ∘ body
precompute was dropped (the delimiter-safety fix makes to_markdown
re-parse every rendered line, so it is no longer cheap) in favor of the
on-demand exportMarkdown(body) codec at the binding boundary.