{
  "name": "compose_site",
  "description": "Compose a complete website as a SiteManifest for @bytesbrains/weblocks. Use ONLY the block types in the enum — the engine skips anything unknown. The host validates and renders the result to one self-contained static HTML document.",
  "input_schema": {
    "type": "object",
    "required": [
      "meta",
      "blocks"
    ],
    "properties": {
      "meta": {
        "type": "object",
        "required": [
          "title"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "lang": {
            "type": "string"
          },
          "favicon": {
            "type": "string",
            "description": "A single emoji."
          }
        }
      },
      "design": {
        "type": "object",
        "description": "Optional design tokens; omit for the default palette.",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "light",
              "dark",
              "auto"
            ]
          },
          "palette": {
            "type": "object",
            "properties": {
              "bg": {
                "type": "string"
              },
              "surface": {
                "type": "string"
              },
              "text": {
                "type": "string"
              },
              "muted": {
                "type": "string"
              },
              "primary": {
                "type": "string"
              },
              "accent": {
                "type": "string"
              }
            }
          }
        }
      },
      "blocks": {
        "type": "array",
        "description": "Ordered sections of the page. Each id must be unique.",
        "items": {
          "type": "object",
          "required": [
            "id",
            "type",
            "config"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "type": {
              "type": "string",
              "enum": [
                "app-shell",
                "nav",
                "announcement-bar",
                "install-prompt",
                "sidebar",
                "hero",
                "hero-app",
                "profile-header",
                "experience",
                "skills",
                "features",
                "about",
                "rich-text",
                "split",
                "steps",
                "stats",
                "progress",
                "services-catalogue",
                "menu",
                "product",
                "pricing",
                "logos",
                "team",
                "gallery",
                "carousel",
                "video",
                "video-gallery",
                "map",
                "timeline",
                "tabs",
                "accordion",
                "testimonials",
                "reviews",
                "faq",
                "chat-thread",
                "blog-list",
                "blog-post",
                "feed",
                "booking",
                "contact-form",
                "newsletter",
                "search",
                "auth",
                "cta",
                "social-links",
                "contact-details",
                "hours",
                "directions",
                "legal",
                "divider",
                "spacer",
                "copyright",
                "credit",
                "footer"
              ]
            },
            "visible": {
              "type": "boolean"
            },
            "config": {
              "type": "object",
              "description": "Fields for this block type — see catalog.json."
            }
          }
        }
      }
    }
  },
  "blockSchemas": {
    "app-shell": {
      "type": "object",
      "properties": {
        "brand": {
          "type": "string",
          "maxLength": 60,
          "default": ""
        },
        "tabs": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "href": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "icon": {
                "type": "string",
                "maxLength": 8,
                "default": ""
              }
            },
            "required": [
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 6
        }
      },
      "additionalProperties": false
    },
    "nav": {
      "type": "object",
      "properties": {
        "brand": {
          "type": "string",
          "maxLength": 60,
          "default": "Brand"
        },
        "sticky": {
          "type": "boolean",
          "default": false
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "maxLength": 40,
                "default": "Link"
              },
              "href": {
                "type": "string",
                "maxLength": 300,
                "default": "#"
              }
            },
            "required": [
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 8
        },
        "cta": {
          "type": "object",
          "properties": {
            "label": {
              "type": "string",
              "maxLength": 40,
              "default": ""
            },
            "href": {
              "type": "string",
              "maxLength": 300,
              "default": "#"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "brand"
      ],
      "additionalProperties": false
    },
    "announcement-bar": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        },
        "linkLabel": {
          "type": "string",
          "maxLength": 40,
          "default": ""
        },
        "href": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "tone": {
          "enum": [
            "info",
            "promo",
            "warning"
          ],
          "default": "info"
        },
        "dismissible": {
          "type": "boolean",
          "default": true
        }
      },
      "required": [
        "text"
      ],
      "additionalProperties": false
    },
    "install-prompt": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 60,
          "default": "Install this app"
        },
        "body": {
          "type": "string",
          "maxLength": 160,
          "default": "Add it to your home screen for one-tap access, even offline."
        },
        "actionLabel": {
          "type": "string",
          "maxLength": 30,
          "default": "How?"
        },
        "position": {
          "enum": [
            "bottom",
            "top",
            "bottom-right"
          ],
          "default": "bottom"
        },
        "tone": {
          "enum": [
            "info",
            "promo"
          ],
          "default": "info"
        },
        "delayMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 60000,
          "default": 0
        },
        "dismissible": {
          "type": "boolean",
          "default": true
        },
        "rememberDismiss": {
          "type": "boolean",
          "default": true
        },
        "platforms": {
          "type": "array",
          "items": {
            "enum": [
              "ios-safari",
              "ios-other",
              "android",
              "desktop-chrome",
              "macos-safari",
              "firefox"
            ]
          },
          "maxItems": 6
        }
      },
      "required": [
        "title"
      ],
      "additionalProperties": false
    },
    "sidebar": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 60,
          "default": ""
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "maxLength": 60,
                "default": ""
              },
              "href": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "icon": {
                "type": "string",
                "maxLength": 8,
                "default": ""
              }
            },
            "required": [
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 20
        }
      },
      "additionalProperties": false
    },
    "hero": {
      "type": "object",
      "properties": {
        "eyebrow": {
          "type": "string",
          "maxLength": 80,
          "default": ""
        },
        "headline": {
          "type": "string",
          "maxLength": 160,
          "default": "Your headline here"
        },
        "subhead": {
          "type": "string",
          "maxLength": 320,
          "default": ""
        },
        "align": {
          "enum": [
            "center",
            "left"
          ],
          "default": "center"
        },
        "image": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "overlay": {
          "enum": [
            "scrim",
            "dark",
            "light",
            "none"
          ],
          "default": "scrim"
        },
        "minHeight": {
          "enum": [
            "auto",
            "sm",
            "md",
            "lg",
            "full"
          ],
          "default": "auto"
        },
        "cta": {
          "type": "object",
          "properties": {
            "label": {
              "type": "string",
              "maxLength": 40,
              "default": ""
            },
            "href": {
              "type": "string",
              "maxLength": 500,
              "default": "#"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "headline"
      ],
      "additionalProperties": false
    },
    "hero-app": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subhead": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "installLabel": {
          "type": "string",
          "maxLength": 40,
          "default": "Install app"
        },
        "installHref": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "screenshots": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "src": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "alt": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              }
            },
            "required": [
              "src"
            ],
            "additionalProperties": false
          },
          "maxItems": 6
        }
      },
      "required": [
        "headline"
      ],
      "additionalProperties": false
    },
    "profile-header": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "headline": {
          "type": "string",
          "maxLength": 160,
          "default": ""
        },
        "location": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "avatar": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "summary": {
          "type": "string",
          "maxLength": 400,
          "default": ""
        },
        "contacts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "email",
                  "phone",
                  "website",
                  "location",
                  "linkedin",
                  "github",
                  "twitter",
                  "x",
                  "custom"
                ],
                "default": "custom"
              },
              "value": {
                "type": "string",
                "maxLength": 300,
                "default": ""
              },
              "label": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              }
            },
            "required": [
              "value"
            ],
            "additionalProperties": false
          },
          "maxItems": 10
        },
        "showDownload": {
          "type": "boolean",
          "default": false
        },
        "downloadLabel": {
          "type": "string",
          "maxLength": 40,
          "default": "Download PDF"
        },
        "showShare": {
          "type": "boolean",
          "default": false
        },
        "shareLabel": {
          "type": "string",
          "maxLength": 40,
          "default": "Share"
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    },
    "experience": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Experience"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "role": {
                "type": "string",
                "maxLength": 120,
                "default": ""
              },
              "org": {
                "type": "string",
                "maxLength": 120,
                "default": ""
              },
              "period": {
                "type": "string",
                "maxLength": 60,
                "default": ""
              },
              "location": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              },
              "url": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "summary": {
                "type": "string",
                "maxLength": 300,
                "default": ""
              },
              "bullets": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 300,
                  "default": ""
                },
                "maxItems": 12
              }
            },
            "required": [
              "role"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "skills": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Skills"
        },
        "display": {
          "enum": [
            "tags",
            "bars"
          ],
          "default": "tags"
        },
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 60,
                "default": ""
              },
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "label": {
                      "type": "string",
                      "maxLength": 60,
                      "default": ""
                    },
                    "level": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 5,
                      "default": 0
                    }
                  },
                  "required": [
                    "label"
                  ],
                  "additionalProperties": false
                },
                "maxItems": 40
              }
            },
            "additionalProperties": false
          },
          "maxItems": 10
        }
      },
      "additionalProperties": false
    },
    "features": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "columns": {
          "type": "integer",
          "enum": [
            2,
            3,
            4
          ],
          "default": 3
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "icon": {
                "type": "string",
                "maxLength": 8,
                "default": ""
              },
              "title": {
                "type": "string",
                "maxLength": 80,
                "default": "Feature"
              },
              "text": {
                "type": "string",
                "maxLength": 240,
                "default": ""
              }
            },
            "required": [
              "title"
            ],
            "additionalProperties": false
          },
          "maxItems": 12
        }
      },
      "additionalProperties": false
    },
    "about": {
      "type": "object",
      "properties": {
        "eyebrow": {
          "type": "string",
          "maxLength": 60,
          "default": ""
        },
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "About us"
        },
        "body": {
          "type": "string",
          "maxLength": 1200,
          "default": ""
        },
        "image": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "imageAlt": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        },
        "imageSide": {
          "enum": [
            "left",
            "right"
          ],
          "default": "right"
        }
      },
      "additionalProperties": false
    },
    "rich-text": {
      "type": "object",
      "properties": {
        "blocks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "heading",
                  "subheading",
                  "paragraph",
                  "quote",
                  "bullet",
                  "numbered"
                ],
                "default": "paragraph"
              },
              "text": {
                "type": "string",
                "maxLength": 2000,
                "default": ""
              }
            },
            "required": [
              "text"
            ],
            "additionalProperties": false
          },
          "maxItems": 60
        }
      },
      "additionalProperties": false
    },
    "split": {
      "type": "object",
      "properties": {
        "rows": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "maxLength": 120,
                "default": ""
              },
              "text": {
                "type": "string",
                "maxLength": 600,
                "default": ""
              },
              "image": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "imageAlt": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              }
            },
            "additionalProperties": false
          },
          "maxItems": 8
        }
      },
      "additionalProperties": false
    },
    "steps": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "maxLength": 100,
                "default": "Step"
              },
              "text": {
                "type": "string",
                "maxLength": 300,
                "default": ""
              }
            },
            "required": [
              "title"
            ],
            "additionalProperties": false
          },
          "maxItems": 12
        }
      },
      "additionalProperties": false
    },
    "stats": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "columns": {
          "type": "integer",
          "enum": [
            2,
            3,
            4
          ],
          "default": 4
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "maxLength": 24,
                "default": ""
              },
              "label": {
                "type": "string",
                "maxLength": 60,
                "default": ""
              },
              "prefix": {
                "type": "string",
                "maxLength": 8,
                "default": ""
              },
              "suffix": {
                "type": "string",
                "maxLength": 8,
                "default": ""
              }
            },
            "required": [
              "value",
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 8
        }
      },
      "additionalProperties": false
    },
    "progress": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "display": {
          "enum": [
            "bars",
            "segments",
            "rings",
            "meters"
          ],
          "default": "bars"
        },
        "layout": {
          "enum": [
            "stack",
            "grid",
            "inline"
          ],
          "default": "stack"
        },
        "columns": {
          "type": "integer",
          "enum": [
            1,
            2,
            3,
            4
          ],
          "default": 3
        },
        "size": {
          "enum": [
            "sm",
            "md",
            "lg"
          ],
          "default": "md"
        },
        "showValue": {
          "type": "boolean",
          "default": true
        },
        "animate": {
          "type": "boolean",
          "default": false
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              },
              "value": {
                "type": "integer",
                "minimum": 0,
                "default": 0
              },
              "max": {
                "type": "integer",
                "minimum": 1,
                "default": 100
              },
              "prefix": {
                "type": "string",
                "maxLength": 8,
                "default": ""
              },
              "suffix": {
                "type": "string",
                "maxLength": 16,
                "default": ""
              },
              "caption": {
                "type": "string",
                "maxLength": 160,
                "default": ""
              },
              "threshold": {
                "type": "integer",
                "minimum": 0,
                "default": 0
              },
              "state": {
                "enum": [
                  "default",
                  "accent",
                  "success",
                  "warning",
                  "danger"
                ],
                "default": "default"
              },
              "icon": {
                "type": "string",
                "maxLength": 8,
                "default": ""
              }
            },
            "required": [
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 12
        }
      },
      "additionalProperties": false
    },
    "services-catalogue": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 80,
                "default": "Service"
              },
              "description": {
                "type": "string",
                "maxLength": 300,
                "default": ""
              },
              "price": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "ctaLabel": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "ctaHref": {
                "type": "string",
                "maxLength": 500,
                "default": "#"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "menu": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Menu"
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "sections": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 80,
                "default": "Section"
              },
              "note": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              },
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "maxLength": 100,
                      "default": "Item"
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 300,
                      "default": ""
                    },
                    "price": {
                      "type": "string",
                      "maxLength": 40,
                      "default": ""
                    },
                    "tags": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "maxLength": 12,
                        "default": ""
                      },
                      "maxItems": 8
                    },
                    "spice": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 3,
                      "default": 0
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                },
                "maxItems": 40
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "maxItems": 20
        }
      },
      "additionalProperties": false
    },
    "product": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "columns": {
          "type": "integer",
          "enum": [
            2,
            3,
            4
          ],
          "default": 3
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 100,
                "default": "Product"
              },
              "description": {
                "type": "string",
                "maxLength": 240,
                "default": ""
              },
              "price": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "was": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "image": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "badge": {
                "type": "string",
                "maxLength": 24,
                "default": ""
              },
              "ctaLabel": {
                "type": "string",
                "maxLength": 40,
                "default": "Buy"
              },
              "ctaHref": {
                "type": "string",
                "maxLength": 500,
                "default": "#"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "maxItems": 48
        }
      },
      "additionalProperties": false
    },
    "pricing": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "plans": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 60,
                "default": ""
              },
              "price": {
                "type": "string",
                "maxLength": 24,
                "default": ""
              },
              "period": {
                "type": "string",
                "maxLength": 24,
                "default": ""
              },
              "features": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 120,
                  "default": ""
                },
                "maxItems": 12
              },
              "ctaLabel": {
                "type": "string",
                "maxLength": 40,
                "default": "Choose"
              },
              "ctaHref": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "featured": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "name",
              "price"
            ],
            "additionalProperties": false
          },
          "maxItems": 6
        }
      },
      "additionalProperties": false
    },
    "logos": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Trusted by"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "src": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "alt": {
                "type": "string",
                "maxLength": 120,
                "default": ""
              },
              "href": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              }
            },
            "required": [
              "src"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "team": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "columns": {
          "type": "integer",
          "enum": [
            2,
            3,
            4
          ],
          "default": 3
        },
        "members": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              },
              "role": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              },
              "photo": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "bio": {
                "type": "string",
                "maxLength": 240,
                "default": ""
              },
              "socials": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "label": {
                      "type": "string",
                      "maxLength": 40,
                      "default": ""
                    },
                    "href": {
                      "type": "string",
                      "maxLength": 500,
                      "default": ""
                    }
                  },
                  "required": [
                    "label"
                  ],
                  "additionalProperties": false
                },
                "maxItems": 5
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "gallery": {
      "type": "object",
      "properties": {
        "layout": {
          "enum": [
            "grid",
            "masonry",
            "carousel"
          ],
          "default": "grid"
        },
        "columns": {
          "type": "integer",
          "enum": [
            2,
            3,
            4
          ],
          "default": 3
        },
        "gap": {
          "enum": [
            "sm",
            "md",
            "lg"
          ],
          "default": "md"
        },
        "lightbox": {
          "type": "boolean",
          "default": true
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "src": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "alt": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              },
              "caption": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              }
            },
            "required": [
              "src",
              "alt"
            ],
            "additionalProperties": false
          },
          "maxItems": 60
        }
      },
      "additionalProperties": false
    },
    "carousel": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "src": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "alt": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              },
              "caption": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20
        },
        "autoplay": {
          "type": "boolean",
          "default": false
        }
      },
      "additionalProperties": false
    },
    "video": {
      "type": "object",
      "properties": {
        "provider": {
          "enum": [
            "youtube",
            "vimeo",
            "file"
          ],
          "default": "youtube"
        },
        "src": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Video"
        },
        "poster": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "caption": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        }
      },
      "required": [
        "src"
      ],
      "additionalProperties": false
    },
    "video-gallery": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "layout": {
          "enum": [
            "grid",
            "carousel"
          ],
          "default": "grid"
        },
        "columns": {
          "type": "integer",
          "enum": [
            2,
            3,
            4
          ],
          "default": 3
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "provider": {
                "enum": [
                  "youtube",
                  "vimeo",
                  "file"
                ],
                "default": "youtube"
              },
              "src": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "title": {
                "type": "string",
                "maxLength": 160,
                "default": ""
              },
              "poster": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              }
            },
            "required": [
              "src"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "map": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        },
        "zoom": {
          "type": "integer",
          "minimum": 1,
          "maximum": 20,
          "default": 14
        },
        "height": {
          "type": "integer",
          "minimum": 160,
          "maximum": 800,
          "default": 360
        },
        "label": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        }
      },
      "required": [
        "query"
      ],
      "additionalProperties": false
    },
    "timeline": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "date": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "title": {
                "type": "string",
                "maxLength": 120,
                "default": ""
              },
              "text": {
                "type": "string",
                "maxLength": 400,
                "default": ""
              }
            },
            "required": [
              "title"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "tabs": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "maxLength": 60,
                "default": ""
              },
              "text": {
                "type": "string",
                "maxLength": 2000,
                "default": ""
              }
            },
            "required": [
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 8
        }
      },
      "additionalProperties": false
    },
    "accordion": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "heading": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              },
              "body": {
                "type": "string",
                "maxLength": 1200,
                "default": ""
              }
            },
            "required": [
              "heading"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "testimonials": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "quote": {
                "type": "string",
                "maxLength": 400,
                "default": ""
              },
              "author": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              },
              "role": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              }
            },
            "required": [
              "quote"
            ],
            "additionalProperties": false
          },
          "maxItems": 12
        }
      },
      "additionalProperties": false
    },
    "reviews": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "average": {
          "type": "string",
          "maxLength": 8,
          "default": ""
        },
        "count": {
          "type": "string",
          "maxLength": 24,
          "default": ""
        },
        "source": {
          "type": "string",
          "maxLength": 40,
          "default": ""
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "rating": {
                "type": "integer",
                "minimum": 1,
                "maximum": 5,
                "default": 5
              },
              "quote": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "author": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              },
              "date": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "source": {
                "enum": [
                  "google",
                  "yelp",
                  "facebook",
                  "trustpilot",
                  "tripadvisor",
                  "app-store",
                  "other"
                ],
                "default": "other"
              }
            },
            "required": [
              "quote"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "faq": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Frequently asked questions"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "question": {
                "type": "string",
                "maxLength": 200,
                "default": ""
              },
              "answer": {
                "type": "string",
                "maxLength": 800,
                "default": ""
              }
            },
            "required": [
              "question"
            ],
            "additionalProperties": false
          },
          "maxItems": 20
        }
      },
      "additionalProperties": false
    },
    "chat-thread": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "subtitle": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        },
        "participants": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40,
                "default": ""
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "default": ""
              },
              "role": {
                "enum": [
                  "user",
                  "bot",
                  "agent"
                ],
                "default": "bot"
              },
              "avatar": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false
          },
          "maxItems": 6
        },
        "messages": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "from": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40,
                "default": ""
              },
              "time": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "body": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "enum": [
                        "text",
                        "code",
                        "image",
                        "list",
                        "buttons"
                      ],
                      "default": "text"
                    },
                    "text": {
                      "type": "string",
                      "maxLength": 2000,
                      "default": ""
                    },
                    "lang": {
                      "type": "string",
                      "maxLength": 20,
                      "default": ""
                    },
                    "src": {
                      "type": "string",
                      "maxLength": 500,
                      "default": ""
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 200,
                      "default": ""
                    },
                    "ordered": {
                      "type": "boolean",
                      "default": false
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string",
                            "maxLength": 120,
                            "default": ""
                          },
                          "href": {
                            "type": "string",
                            "maxLength": 500,
                            "default": ""
                          }
                        },
                        "additionalProperties": false
                      },
                      "maxItems": 8
                    }
                  },
                  "additionalProperties": false
                },
                "maxItems": 8
              }
            },
            "required": [
              "from"
            ],
            "additionalProperties": false
          },
          "maxItems": 60
        }
      },
      "additionalProperties": false
    },
    "blog-list": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "columns": {
          "type": "integer",
          "enum": [
            2,
            3
          ],
          "default": 3
        },
        "posts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "maxLength": 160,
                "default": ""
              },
              "excerpt": {
                "type": "string",
                "maxLength": 280,
                "default": ""
              },
              "href": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "image": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "date": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "tag": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              }
            },
            "required": [
              "title"
            ],
            "additionalProperties": false
          },
          "maxItems": 24
        }
      },
      "additionalProperties": false
    },
    "blog-post": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        },
        "date": {
          "type": "string",
          "maxLength": 40,
          "default": ""
        },
        "author": {
          "type": "string",
          "maxLength": 80,
          "default": ""
        },
        "cover": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "coverAlt": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        },
        "body": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "heading",
                  "paragraph",
                  "quote",
                  "bullet"
                ],
                "default": "paragraph"
              },
              "text": {
                "type": "string",
                "maxLength": 2000,
                "default": ""
              }
            },
            "required": [
              "text"
            ],
            "additionalProperties": false
          },
          "maxItems": 120
        }
      },
      "required": [
        "title"
      ],
      "additionalProperties": false
    },
    "feed": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "layout": {
          "enum": [
            "list",
            "cards"
          ],
          "default": "list"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "maxLength": 160,
                "default": ""
              },
              "subtitle": {
                "type": "string",
                "maxLength": 120,
                "default": ""
              },
              "text": {
                "type": "string",
                "maxLength": 280,
                "default": ""
              },
              "href": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "image": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "badge": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              }
            },
            "required": [
              "title"
            ],
            "additionalProperties": false
          },
          "maxItems": 50
        }
      },
      "additionalProperties": false
    },
    "booking": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Book an appointment"
        },
        "intro": {
          "type": "string",
          "maxLength": 280,
          "default": ""
        },
        "submitLabel": {
          "type": "string",
          "maxLength": 40,
          "default": "Request booking"
        },
        "successMessage": {
          "type": "string",
          "maxLength": 200,
          "default": "Thanks — we'll confirm your booking shortly."
        },
        "serviceLabel": {
          "type": "string",
          "maxLength": 60,
          "default": "Service"
        },
        "services": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 80,
                "default": "Service"
              },
              "duration": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "price": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "maxItems": 40
        },
        "askDate": {
          "type": "boolean",
          "default": true
        },
        "askTime": {
          "type": "boolean",
          "default": true
        },
        "askParty": {
          "type": "boolean",
          "default": false
        },
        "askPhone": {
          "type": "boolean",
          "default": true
        },
        "askNotes": {
          "type": "boolean",
          "default": true
        },
        "notesLabel": {
          "type": "string",
          "maxLength": 80,
          "default": "Anything we should know?"
        }
      },
      "additionalProperties": false
    },
    "contact-form": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Get in touch"
        },
        "intro": {
          "type": "string",
          "maxLength": 280,
          "default": ""
        },
        "submitLabel": {
          "type": "string",
          "maxLength": 40,
          "default": "Send"
        },
        "successMessage": {
          "type": "string",
          "maxLength": 200,
          "default": "Thanks — we'll be in touch."
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 40,
                "default": "field"
              },
              "label": {
                "type": "string",
                "maxLength": 80,
                "default": "Field"
              },
              "type": {
                "enum": [
                  "text",
                  "email",
                  "tel",
                  "textarea",
                  "select",
                  "checkbox"
                ],
                "default": "text"
              },
              "placeholder": {
                "type": "string",
                "maxLength": 80,
                "default": ""
              },
              "required": {
                "type": "boolean",
                "default": false
              },
              "options": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 80,
                  "default": ""
                },
                "maxItems": 24
              }
            },
            "required": [
              "name",
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 12
        }
      },
      "additionalProperties": false
    },
    "newsletter": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Subscribe to our newsletter"
        },
        "intro": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "placeholder": {
          "type": "string",
          "maxLength": 80,
          "default": "you@example.com"
        },
        "submitLabel": {
          "type": "string",
          "maxLength": 40,
          "default": "Subscribe"
        },
        "successMessage": {
          "type": "string",
          "maxLength": 200,
          "default": "You're in — check your inbox."
        }
      },
      "additionalProperties": false
    },
    "search": {
      "type": "object",
      "properties": {
        "layout": {
          "enum": [
            "bar",
            "icon"
          ],
          "default": "bar"
        },
        "placeholder": {
          "type": "string",
          "maxLength": 80,
          "default": "Search…"
        },
        "label": {
          "type": "string",
          "maxLength": 60,
          "default": "Search"
        },
        "buttonLabel": {
          "type": "string",
          "maxLength": 40,
          "default": "Search"
        },
        "name": {
          "type": "string",
          "maxLength": 40,
          "default": "q"
        },
        "align": {
          "enum": [
            "start",
            "center",
            "end"
          ],
          "default": "center"
        }
      },
      "additionalProperties": false
    },
    "auth": {
      "type": "object",
      "properties": {
        "mode": {
          "enum": [
            "signin",
            "signup"
          ],
          "default": "signin"
        },
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "providers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              },
              "provider": {
                "type": "string",
                "maxLength": 40,
                "default": ""
              }
            },
            "required": [
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 6
        },
        "showEmail": {
          "type": "boolean",
          "default": true
        }
      },
      "additionalProperties": false
    },
    "cta": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string",
          "maxLength": 160,
          "default": "Ready to start?"
        },
        "subhead": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "background": {
          "enum": [
            "primary",
            "accent",
            "surface"
          ],
          "default": "primary"
        },
        "button": {
          "type": "object",
          "properties": {
            "label": {
              "type": "string",
              "maxLength": 40,
              "default": "Get started"
            },
            "href": {
              "type": "string",
              "maxLength": 300,
              "default": "#"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "headline"
      ],
      "additionalProperties": false
    },
    "social-links": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "layout": {
          "enum": [
            "row",
            "grid"
          ],
          "default": "row"
        },
        "variant": {
          "enum": [
            "labeled",
            "icon"
          ],
          "default": "labeled"
        },
        "align": {
          "enum": [
            "start",
            "center",
            "end"
          ],
          "default": "center"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "platform": {
                "enum": [
                  "x",
                  "twitter",
                  "instagram",
                  "facebook",
                  "linkedin",
                  "youtube",
                  "github",
                  "tiktok",
                  "whatsapp",
                  "telegram",
                  "discord",
                  "mastodon",
                  "rss",
                  "email",
                  "website",
                  "phone",
                  "custom"
                ],
                "default": "custom"
              },
              "href": {
                "type": "string",
                "maxLength": 500,
                "default": ""
              },
              "label": {
                "type": "string",
                "maxLength": 60,
                "default": ""
              },
              "icon": {
                "type": "string",
                "maxLength": 8,
                "default": ""
              }
            },
            "required": [
              "href"
            ],
            "additionalProperties": false
          },
          "maxItems": 20
        }
      },
      "additionalProperties": false
    },
    "contact-details": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Get in touch"
        },
        "address": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        },
        "phone": {
          "type": "string",
          "maxLength": 40,
          "default": ""
        },
        "email": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "hours": {
          "type": "string",
          "maxLength": 160,
          "default": ""
        }
      },
      "additionalProperties": false
    },
    "hours": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": "Opening hours"
        },
        "timezone": {
          "type": "string",
          "maxLength": 60,
          "default": ""
        },
        "note": {
          "type": "string",
          "maxLength": 200,
          "default": ""
        },
        "days": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "day": {
                "enum": [
                  "mon",
                  "tue",
                  "wed",
                  "thu",
                  "fri",
                  "sat",
                  "sun"
                ],
                "default": "mon"
              },
              "open": {
                "type": "string",
                "maxLength": 5,
                "default": ""
              },
              "close": {
                "type": "string",
                "maxLength": 5,
                "default": ""
              },
              "closed": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "day"
            ],
            "additionalProperties": false
          },
          "maxItems": 21
        }
      },
      "additionalProperties": false
    },
    "directions": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "place": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "address": {
          "type": "string",
          "maxLength": 240,
          "default": ""
        },
        "lat": {
          "type": "string",
          "maxLength": 24,
          "default": ""
        },
        "lng": {
          "type": "string",
          "maxLength": 24,
          "default": ""
        },
        "mapUrl": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "directionsLabel": {
          "type": "string",
          "maxLength": 40,
          "default": "Get directions"
        },
        "appleMaps": {
          "type": "boolean",
          "default": true
        }
      },
      "additionalProperties": false
    },
    "legal": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "align": {
          "enum": [
            "start",
            "center",
            "end"
          ],
          "default": "center"
        },
        "separator": {
          "type": "string",
          "maxLength": 4,
          "default": "·"
        },
        "documents": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "maxLength": 60,
                "default": ""
              },
              "title": {
                "type": "string",
                "maxLength": 120,
                "default": ""
              },
              "content": {
                "type": "string",
                "maxLength": 40000,
                "default": ""
              }
            },
            "required": [
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 8
        }
      },
      "additionalProperties": false
    },
    "divider": {
      "type": "object",
      "properties": {
        "style": {
          "enum": [
            "line",
            "dots",
            "gradient"
          ],
          "default": "line"
        }
      },
      "additionalProperties": false
    },
    "spacer": {
      "type": "object",
      "properties": {
        "size": {
          "enum": [
            "sm",
            "md",
            "lg",
            "xl"
          ],
          "default": "md"
        }
      },
      "additionalProperties": false
    },
    "copyright": {
      "type": "object",
      "properties": {
        "holder": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "year": {
          "type": "string",
          "maxLength": 24,
          "default": ""
        },
        "text": {
          "type": "string",
          "maxLength": 160,
          "default": "All rights reserved."
        },
        "showSymbol": {
          "type": "boolean",
          "default": true
        },
        "align": {
          "enum": [
            "start",
            "center",
            "end"
          ],
          "default": "center"
        }
      },
      "additionalProperties": false
    },
    "credit": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 40,
          "default": "Powered by"
        },
        "name": {
          "type": "string",
          "maxLength": 80,
          "default": ""
        },
        "href": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "newTab": {
          "type": "boolean",
          "default": true
        },
        "logo": {
          "type": "string",
          "maxLength": 500,
          "default": ""
        },
        "note": {
          "type": "string",
          "maxLength": 160,
          "default": ""
        },
        "variant": {
          "enum": [
            "bar",
            "badge",
            "inline"
          ],
          "default": "bar"
        },
        "align": {
          "enum": [
            "start",
            "center",
            "end"
          ],
          "default": "center"
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    },
    "footer": {
      "type": "object",
      "properties": {
        "brand": {
          "type": "string",
          "maxLength": 60,
          "default": ""
        },
        "tagline": {
          "type": "string",
          "maxLength": 160,
          "default": ""
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "maxLength": 40,
                "default": "Link"
              },
              "href": {
                "type": "string",
                "maxLength": 300,
                "default": "#"
              }
            },
            "required": [
              "label"
            ],
            "additionalProperties": false
          },
          "maxItems": 12
        },
        "copyright": {
          "type": "string",
          "maxLength": 160,
          "default": ""
        }
      },
      "additionalProperties": false
    }
  }
}
