description: a recipe card sections: - header: { pattern: ".+" } description: every recipe needs a non-empty title blocks: - type: paragraph text: { pattern: '^(By|From) .+$' } description: every recipe needs a byline starting with 'By' or 'From' - type: paragraph description: every recipe needs a short description sections: - header: { const: Ingredients } description: every recipe needs an ingredient list maxContains: 1 blocks: - type: bullet-list minItems: 1 additionalBlocks: false - header: { const: Instructions } description: numbered steps, not a bullet list maxContains: 1 blocks: - type: ordered-list minItems: 1 additionalBlocks: false additionalSections: true