{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "slidetemplate-slot.schema.json",
  "title": "Slide Template Slot",
  "type": "object",
  "description": "The author-fillable descriptor attached to a slide-template element whose type is null. Position lives on the owning element; the slot carries only the label and the element types an author may drop in. Maps 1:1 to the Doolittle slot contract.",
  "required": [ "label", "allowedTypes" ],
  "properties": {
    "label": {
      "type": "string",
      "minLength": 1,
      "description": "Human-readable slot name (e.g. 'Title', 'Activity Icon', 'Body / Instructions')."
    },
    "allowedTypes": {
      "type": "array",
      "minItems": 1,
      "items": { "type": "string" },
      "description": "Element types this slot accepts (e.g. 'richtext', 'image')."
    }
  }
}
