# Seed Presets with Default Blocks

A section preset can pre-populate child blocks so editors see a working layout the moment they add the section. Without preset blocks, a merchant dragging in a slideshow gets an empty stage.

```json
{% schema %}
{
  "name": "Hero banner",
  "blocks": [{ "type": "hero-slide" }],
  "settings": [
    { "type": "checkbox", "id": "autoplay", "label": "Autoplay", "default": true }
  ],
  "presets": [
    {
      "name": "Hero banner",
      "blocks": [
        { "type": "hero-slide" },
        { "type": "hero-slide" }
      ]
    }
  ]
}
{% endschema %}
```

Preset blocks can also set their own default values:

```json
"presets": [
  {
    "name": "3-column features",
    "blocks": [
      { "type": "feature", "settings": { "title": "Free shipping", "icon": "truck" } },
      { "type": "feature", "settings": { "title": "Easy returns", "icon": "refresh" } },
      { "type": "feature", "settings": { "title": "Secure checkout", "icon": "lock" } }
    ]
  }
]
```

Multiple presets can expose layout variants of the same section:

```json
"presets": [
  { "name": "Grid", "settings": { "layout": "grid" } },
  { "name": "Carousel", "settings": { "layout": "carousel" } }
]
```

Rule: if a section requires blocks to render meaningfully, **every preset must seed at least one block**.
