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.