Skip to content

0.117 → 0.118 — a card kind declares seed:; a document's $seed draws the warnings a card would

The break no type checker reports: a document's $seed warns wherever the card it seeds would. Quill::validate checks each overlay as the card seed_card commits from it, so a key or cell that card would warn on warns at its $seed path. quillmark validate fails a quill whose root example.md carries any warning, so a quill that passed can fail.

Break Surface Action
An undeclared key below a seeded field warns validation::unknown_field, and a cell outside its variant world validation::out_of_variant, at $seed.<kind>.… diagnostics, quillmark validate Remove the key, or nest the cell under its variant
A $seed.<kind>.$body that is not a string, or does not import as markdown, warns validation::seed_overlay_shape diagnostics, quillmark validate Write the body as a markdown string
A seeded array past its field's max: warns validation::cardinality diagnostics, quillmark validate Shorten the seed
A null in $seed.<kind> commits nothing: the new card leaves the field absent, where it carried field: stored markdown None: null ≡ absent, so the render is unchanged
CardSchema has a public seed field Rust Add seed: None to a CardSchema { .. } literal, or build with CardSchema::new

Kind seeds

A card kind may declare seed:, what Add Card writes into a new card of the kind: the $seed.<kind> shape, fields plus an optional $body. A document's $seed.<kind> replaces it whole, and seed_document() carries it. A template repeating one $seed block for every document can move it into the quill and drop its own. See Card-level seed.