{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "CubeSites website",
  "description": "A versioned, JSON-managed CubeSites website draft.",
  "type": "object",
  "properties": {
    "format": {
      "const": "cubesites-site"
    },
    "version": {
      "const": 2
    },
    "name": {
      "type": "string",
      "maxLength": 191
    },
    "theme": {
      "type": "object",
      "properties": {
        "palette": {
          "type": "string",
          "enum": [
            "charcoal",
            "harbour",
            "forest",
            "terracotta",
            "indigo",
            "plum",
            "ocean",
            "sand",
            "midnight"
          ]
        },
        "fontPair": {
          "type": "string",
          "enum": [
            "warm-friendly",
            "modern-clean",
            "editorial",
            "quiet-professional",
            "creative-studio",
            "clear-humanist"
          ]
        },
        "colors": {
          "type": "object",
          "properties": {
            "primary": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "secondary": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "accent": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "background": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "surface": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "text": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "muted": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "border": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "dark": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^#[0-9a-fA-F]{6}$"
            }
          },
          "additionalProperties": false
        },
        "fonts": {
          "type": "object",
          "properties": {
            "heading": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "system",
                    "inter",
                    "space-grotesk",
                    "dm-sans",
                    "manrope",
                    "plus-jakarta-sans",
                    "outfit",
                    "sora",
                    "work-sans",
                    "figtree",
                    "ibm-plex-sans",
                    "archivo",
                    "nunito",
                    "nunito-sans",
                    "playfair-display",
                    "fraunces",
                    "lora",
                    "source-serif-4",
                    "dm-serif-display",
                    "jetbrains-mono",
                    "open-sans",
                    "lato",
                    "montserrat",
                    "poppins",
                    "raleway",
                    "rubik",
                    "josefin-sans",
                    "cormorant-garamond",
                    "eb-garamond",
                    "libre-baskerville",
                    "merriweather",
                    "dancing-script",
                    "great-vibes",
                    "caveat",
                    "pacifico"
                  ]
                },
                {
                  "type": "string",
                  "maxLength": 42,
                  "pattern": "^g:[A-Za-z0-9][A-Za-z0-9 ]{1,39}$"
                },
                {
                  "type": "string",
                  "maxLength": 19,
                  "pattern": "^c:f[a-z0-9]{4,16}$"
                }
              ]
            },
            "body": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "system",
                    "inter",
                    "space-grotesk",
                    "dm-sans",
                    "manrope",
                    "plus-jakarta-sans",
                    "outfit",
                    "sora",
                    "work-sans",
                    "figtree",
                    "ibm-plex-sans",
                    "archivo",
                    "nunito",
                    "nunito-sans",
                    "playfair-display",
                    "fraunces",
                    "lora",
                    "source-serif-4",
                    "dm-serif-display",
                    "jetbrains-mono",
                    "open-sans",
                    "lato",
                    "montserrat",
                    "poppins",
                    "raleway",
                    "rubik",
                    "josefin-sans",
                    "cormorant-garamond",
                    "eb-garamond",
                    "libre-baskerville",
                    "merriweather",
                    "dancing-script",
                    "great-vibes",
                    "caveat",
                    "pacifico"
                  ]
                },
                {
                  "type": "string",
                  "maxLength": 42,
                  "pattern": "^g:[A-Za-z0-9][A-Za-z0-9 ]{1,39}$"
                },
                {
                  "type": "string",
                  "maxLength": 19,
                  "pattern": "^c:f[a-z0-9]{4,16}$"
                }
              ]
            },
            "accent": {
              "anyOf": [
                {
                  "const": ""
                },
                {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "system",
                        "inter",
                        "space-grotesk",
                        "dm-sans",
                        "manrope",
                        "plus-jakarta-sans",
                        "outfit",
                        "sora",
                        "work-sans",
                        "figtree",
                        "ibm-plex-sans",
                        "archivo",
                        "nunito",
                        "nunito-sans",
                        "playfair-display",
                        "fraunces",
                        "lora",
                        "source-serif-4",
                        "dm-serif-display",
                        "jetbrains-mono",
                        "open-sans",
                        "lato",
                        "montserrat",
                        "poppins",
                        "raleway",
                        "rubik",
                        "josefin-sans",
                        "cormorant-garamond",
                        "eb-garamond",
                        "libre-baskerville",
                        "merriweather",
                        "dancing-script",
                        "great-vibes",
                        "caveat",
                        "pacifico"
                      ]
                    },
                    {
                      "type": "string",
                      "maxLength": 42,
                      "pattern": "^g:[A-Za-z0-9][A-Za-z0-9 ]{1,39}$"
                    },
                    {
                      "type": "string",
                      "maxLength": 19,
                      "pattern": "^c:f[a-z0-9]{4,16}$"
                    }
                  ]
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "customFonts": {
          "type": "array",
          "maxItems": 8,
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "maxLength": 17,
                "pattern": "^f[a-z0-9]{4,16}$"
              },
              "family": {
                "type": "string",
                "maxLength": 40
              },
              "fallback": {
                "type": "string",
                "enum": [
                  "sans-serif",
                  "serif",
                  "cursive",
                  "monospace"
                ]
              },
              "files": {
                "type": "array",
                "maxItems": 6,
                "items": {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    },
                    "weight": {
                      "type": "integer",
                      "minimum": 100,
                      "maximum": 900
                    },
                    "style": {
                      "type": "string",
                      "enum": [
                        "normal",
                        "italic"
                      ]
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "id",
              "files"
            ],
            "additionalProperties": false
          }
        },
        "buttonStyle": {
          "type": "string",
          "enum": [
            "solid",
            "outline",
            "soft"
          ]
        },
        "buttonColour": {
          "type": "string",
          "enum": [
            "primary",
            "accent"
          ]
        },
        "onBrand": {
          "type": "string",
          "enum": [
            "auto",
            "white",
            "black"
          ],
          "description": "Words on the main and accent colours (buttons, brand bands): auto picks whichever reads better."
        },
        "headingColour": {
          "type": "string",
          "enum": [
            "text",
            "primary"
          ]
        },
        "radius": {
          "type": "string",
          "enum": [
            "none",
            "sm",
            "md",
            "lg",
            "pill"
          ]
        },
        "density": {
          "type": "string",
          "enum": [
            "compact",
            "comfortable",
            "spacious"
          ]
        },
        "headingWeight": {
          "type": "string",
          "enum": [
            "400",
            "500",
            "600",
            "700",
            "800"
          ]
        },
        "headingSize": {
          "type": "string",
          "enum": [
            "compact",
            "standard",
            "large"
          ]
        },
        "width": {
          "type": "string",
          "enum": [
            "standard",
            "wide"
          ]
        },
        "surface": {
          "type": "string",
          "enum": [
            "outlined",
            "flat",
            "raised",
            "glass",
            "tinted",
            "hard"
          ]
        },
        "headingCase": {
          "type": "string",
          "enum": [
            "normal",
            "upper"
          ]
        },
        "headingTracking": {
          "type": "string",
          "enum": [
            "tight",
            "normal",
            "wide"
          ]
        },
        "buttonShape": {
          "type": "string",
          "enum": [
            "theme",
            "pill",
            "square"
          ]
        },
        "styles": {
          "type": "array",
          "maxItems": 40,
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "maxLength": 16,
                "pattern": "^g[a-z0-9]{4,16}$"
              },
              "name": {
                "type": "string",
                "maxLength": 60
              },
              "kind": {
                "type": "string",
                "enum": [
                  "section",
                  "card",
                  "heading",
                  "button"
                ]
              },
              "props": {
                "type": "object"
              }
            },
            "required": [
              "id",
              "name",
              "kind",
              "props"
            ],
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "globals": {
      "type": "object",
      "properties": {
        "announcement": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "default": false
            },
            "text": {
              "type": "string",
              "maxLength": 200,
              "default": "Add a short message for every visitor."
            },
            "link": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string",
                  "maxLength": 80
                },
                "href": {
                  "type": "string",
                  "maxLength": 255,
                  "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                  "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                },
                "newTab": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            },
            "style": {
              "type": "string",
              "enum": [
                "dark",
                "brand",
                "accent"
              ],
              "default": "dark"
            },
            "sticky": {
              "type": "boolean",
              "default": false
            }
          },
          "additionalProperties": false
        },
        "nav": {
          "type": "object",
          "properties": {
            "logo": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false,
                  "description": "An existing image asset in this workspace."
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 70000000,
                      "contentEncoding": "base64"
                    },
                    "filename": {
                      "type": "string",
                      "maxLength": 255
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "data",
                    "filename"
                  ],
                  "additionalProperties": false,
                  "description": "An image uploaded as base64 data."
                },
                {
                  "type": "object",
                  "properties": {
                    "placeholder": {
                      "const": true
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "placeholder"
                  ],
                  "additionalProperties": false,
                  "description": "An empty image slot. No image is uploaded."
                },
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "const": ""
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "additionalProperties": false,
                  "description": "No image: an empty object, or an empty assetId."
                }
              ]
            },
            "logoText": {
              "type": "string",
              "maxLength": 80,
              "default": "Your Company"
            },
            "autoLinks": {
              "type": "boolean",
              "default": true
            },
            "links": {
              "type": "array",
              "maxItems": 10,
              "items": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "href": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "icon": {
                    "type": "string",
                    "maxLength": 60,
                    "default": ""
                  },
                  "menu": {
                    "type": "string",
                    "enum": [
                      "list",
                      "panel",
                      "catalogue"
                    ],
                    "default": "list"
                  },
                  "children": {
                    "type": "array",
                    "maxItems": 24,
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "href": {
                          "type": "string",
                          "maxLength": 255
                        },
                        "image": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": []
                  },
                  "viewAll": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "href": {
                        "type": "string",
                        "maxLength": 255,
                        "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                        "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                      },
                      "newTab": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false,
                    "default": {
                      "label": "",
                      "href": ""
                    }
                  },
                  "_id": {
                    "type": "string",
                    "maxLength": 40
                  }
                },
                "additionalProperties": false
              },
              "default": []
            },
            "cta": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string",
                  "maxLength": 80
                },
                "href": {
                  "type": "string",
                  "maxLength": 255,
                  "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                  "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                },
                "newTab": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false,
              "default": {
                "label": "Get in touch",
                "href": "/contact"
              }
            },
            "ctaShow": {
              "type": "string",
              "enum": [
                "none",
                "mobile",
                "desktop",
                "tablet",
                "wide",
                "mobile-tablet",
                "mobile-wide"
              ],
              "default": "none"
            },
            "ctaBar": {
              "type": "boolean",
              "default": false
            },
            "style": {
              "type": "string",
              "enum": [
                "light",
                "dark",
                "brand"
              ],
              "default": "light"
            },
            "layout": {
              "type": "string",
              "enum": [
                "inline",
                "stacked",
                "adaptive",
                "centred",
                "sidebar",
                "menu"
              ],
              "default": "inline"
            },
            "ctaColour": {
              "type": "string",
              "enum": [
                "theme",
                "primary",
                "accent"
              ],
              "default": "theme"
            },
            "phone": {
              "type": "string",
              "maxLength": 40,
              "default": ""
            },
            "phoneStyle": {
              "type": "string",
              "enum": [
                "number",
                "icon"
              ],
              "default": "number"
            },
            "phoneShow": {
              "type": "string",
              "enum": [
                "none",
                "mobile",
                "desktop",
                "tablet",
                "wide",
                "mobile-tablet",
                "mobile-wide"
              ],
              "default": "none"
            },
            "email": {
              "type": "string",
              "maxLength": 120,
              "default": ""
            },
            "contactStyle": {
              "type": "string",
              "enum": [
                "inline",
                "lines"
              ],
              "default": "inline"
            },
            "search": {
              "type": "boolean",
              "default": false
            },
            "searchPlaceholder": {
              "type": "string",
              "maxLength": 60,
              "default": "Search products"
            },
            "basket": {
              "type": "boolean",
              "default": true
            },
            "menuBar": {
              "type": "string",
              "enum": [
                "plain",
                "brand",
                "gradient",
                "dark"
              ],
              "default": "plain"
            },
            "menuBarLight": {
              "type": "boolean",
              "default": false
            },
            "highlights": {
              "type": "array",
              "maxItems": 4,
              "items": {
                "type": "object",
                "properties": {
                  "icon": {
                    "type": "string",
                    "maxLength": 60,
                    "default": ""
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "_id": {
                    "type": "string",
                    "maxLength": 40
                  }
                },
                "additionalProperties": false
              },
              "default": []
            },
            "highlightsStyle": {
              "type": "string",
              "enum": [
                "dark",
                "brand",
                "surface"
              ],
              "default": "dark"
            },
            "ctaIcon": {
              "type": "string",
              "maxLength": 60,
              "default": ""
            },
            "languageStyle": {
              "type": "string",
              "enum": [
                "code",
                "name",
                "flag-round",
                "flag-square",
                "flag-rect",
                "flag-code"
              ],
              "default": "code"
            },
            "caps": {
              "type": "boolean",
              "default": false
            },
            "logoSize": {
              "type": "string",
              "enum": [
                "md",
                "lg",
                "xl"
              ],
              "default": "md"
            },
            "float": {
              "type": "string",
              "enum": [
                "none",
                "sticky",
                "floating",
                "pinned",
                "hide"
              ],
              "default": "none"
            },
            "sticky": {
              "type": "boolean",
              "default": true
            },
            "overlay": {
              "type": "boolean",
              "default": false
            },
            "overlayLogo": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false,
                  "description": "An existing image asset in this workspace."
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 70000000,
                      "contentEncoding": "base64"
                    },
                    "filename": {
                      "type": "string",
                      "maxLength": 255
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "data",
                    "filename"
                  ],
                  "additionalProperties": false,
                  "description": "An image uploaded as base64 data."
                },
                {
                  "type": "object",
                  "properties": {
                    "placeholder": {
                      "const": true
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "placeholder"
                  ],
                  "additionalProperties": false,
                  "description": "An empty image slot. No image is uploaded."
                },
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "const": ""
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "additionalProperties": false,
                  "description": "No image: an empty object, or an empty assetId."
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "topbar": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "default": false
            },
            "text": {
              "type": "string",
              "maxLength": 120,
              "default": ""
            },
            "phone": {
              "type": "string",
              "maxLength": 40,
              "default": ""
            },
            "email": {
              "type": "string",
              "maxLength": 120,
              "default": ""
            },
            "links": {
              "type": "array",
              "maxItems": 6,
              "items": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "href": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "icon": {
                    "type": "string",
                    "maxLength": 60,
                    "default": ""
                  },
                  "image": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string",
                            "maxLength": 36,
                            "pattern": "^[0-9a-fA-F-]{36}$"
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "assetId"
                        ],
                        "additionalProperties": false,
                        "description": "An existing image asset in this workspace."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "string",
                            "maxLength": 70000000,
                            "contentEncoding": "base64"
                          },
                          "filename": {
                            "type": "string",
                            "maxLength": 255
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "data",
                          "filename"
                        ],
                        "additionalProperties": false,
                        "description": "An image uploaded as base64 data."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "placeholder": {
                            "const": true
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "placeholder"
                        ],
                        "additionalProperties": false,
                        "description": "An empty image slot. No image is uploaded."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "const": ""
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "additionalProperties": false,
                        "description": "No image: an empty object, or an empty assetId."
                      }
                    ]
                  },
                  "_id": {
                    "type": "string",
                    "maxLength": 40
                  }
                },
                "additionalProperties": false
              },
              "default": []
            },
            "socials": {
              "type": "boolean",
              "default": false
            },
            "languages": {
              "type": "boolean",
              "default": true
            },
            "align": {
              "type": "string",
              "enum": [
                "spread",
                "centre",
                "end"
              ],
              "default": "spread"
            }
          },
          "additionalProperties": false
        },
        "footer": {
          "type": "object",
          "properties": {
            "style": {
              "type": "string",
              "enum": [
                "dark",
                "light"
              ],
              "default": "dark"
            },
            "layout": {
              "type": "string",
              "enum": [
                "columns",
                "minimal",
                "centred",
                "statement"
              ],
              "default": "columns"
            },
            "statement": {
              "type": "string",
              "maxLength": 80,
              "default": "Let's talk"
            },
            "statementLink": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string",
                  "maxLength": 80
                },
                "href": {
                  "type": "string",
                  "maxLength": 255,
                  "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                  "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                },
                "newTab": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false,
              "default": {
                "label": "your@email.com",
                "href": "mailto:your@email.com"
              }
            },
            "headingStyle": {
              "type": "string",
              "enum": [
                "caps",
                "plain"
              ],
              "default": "caps"
            },
            "showBrand": {
              "type": "boolean",
              "default": true
            },
            "logo": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false,
                  "description": "An existing image asset in this workspace."
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 70000000,
                      "contentEncoding": "base64"
                    },
                    "filename": {
                      "type": "string",
                      "maxLength": 255
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "data",
                    "filename"
                  ],
                  "additionalProperties": false,
                  "description": "An image uploaded as base64 data."
                },
                {
                  "type": "object",
                  "properties": {
                    "placeholder": {
                      "const": true
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "placeholder"
                  ],
                  "additionalProperties": false,
                  "description": "An empty image slot. No image is uploaded."
                },
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "const": ""
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "additionalProperties": false,
                  "description": "No image: an empty object, or an empty assetId."
                }
              ]
            },
            "tagline": {
              "type": "string",
              "maxLength": 300,
              "default": "A short line about what you do and where."
            },
            "taglinePlace": {
              "type": "string",
              "enum": [
                "brand",
                "band"
              ],
              "default": "brand"
            },
            "taglineIcon": {
              "type": "string",
              "maxLength": 60,
              "default": ""
            },
            "columns": {
              "type": "array",
              "maxItems": 6,
              "items": {
                "type": "object",
                "properties": {
                  "heading": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 400
                  },
                  "links": {
                    "type": "array",
                    "maxItems": 16,
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "href": {
                          "type": "string",
                          "maxLength": 255
                        },
                        "icon": {
                          "type": "string",
                          "maxLength": 60,
                          "default": ""
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "_id": {
                    "type": "string",
                    "maxLength": 40
                  }
                },
                "additionalProperties": false
              },
              "default": [
                {
                  "heading": "Contact",
                  "links": [
                    {
                      "label": "your@email.com",
                      "href": "mailto:your@email.com"
                    },
                    {
                      "label": "01234 567890",
                      "href": "tel:01234567890"
                    }
                  ]
                }
              ]
            },
            "socials": {
              "type": "array",
              "maxItems": 8,
              "items": {
                "type": "object",
                "properties": {
                  "platform": {
                    "type": "string",
                    "enum": [
                      "linkedin",
                      "instagram",
                      "facebook",
                      "x",
                      "youtube",
                      "tiktok",
                      "whatsapp",
                      "email"
                    ],
                    "default": "linkedin"
                  },
                  "url": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "_id": {
                    "type": "string",
                    "maxLength": 40
                  }
                },
                "additionalProperties": false
              },
              "default": []
            },
            "legal": {
              "type": "string",
              "maxLength": 200,
              "default": "Your Company. Registered in England and Wales."
            },
            "badges": {
              "type": "array",
              "maxItems": 8,
              "items": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "image": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string",
                            "maxLength": 36,
                            "pattern": "^[0-9a-fA-F-]{36}$"
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "assetId"
                        ],
                        "additionalProperties": false,
                        "description": "An existing image asset in this workspace."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "string",
                            "maxLength": 70000000,
                            "contentEncoding": "base64"
                          },
                          "filename": {
                            "type": "string",
                            "maxLength": 255
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "data",
                          "filename"
                        ],
                        "additionalProperties": false,
                        "description": "An image uploaded as base64 data."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "placeholder": {
                            "const": true
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "placeholder"
                        ],
                        "additionalProperties": false,
                        "description": "An empty image slot. No image is uploaded."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "const": ""
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "additionalProperties": false,
                        "description": "No image: an empty object, or an empty assetId."
                      }
                    ]
                  },
                  "href": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "_id": {
                    "type": "string",
                    "maxLength": 40
                  }
                },
                "additionalProperties": false
              },
              "default": []
            },
            "legalLinks": {
              "type": "array",
              "maxItems": 6,
              "items": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "href": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "_id": {
                    "type": "string",
                    "maxLength": 40
                  }
                },
                "additionalProperties": false
              },
              "default": []
            },
            "bottomAlign": {
              "type": "string",
              "enum": [
                "spread",
                "centre"
              ],
              "default": "spread"
            },
            "socialRail": {
              "type": "boolean",
              "default": false
            },
            "socialColumn": {
              "type": "boolean",
              "default": true
            }
          },
          "additionalProperties": false
        },
        "cookie": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "default": false
            },
            "text": {
              "type": "string",
              "maxLength": 400,
              "default": "We use essential cookies to make this site work, and optional analytics cookies to understand how it is used."
            },
            "policyHref": {
              "type": "string",
              "maxLength": 255,
              "default": "/privacy"
            }
          },
          "additionalProperties": false
        },
        "languages": {
          "type": "object",
          "propertyNames": {
            "enum": [
              "en-GB",
              "en",
              "cy",
              "fr",
              "de",
              "es",
              "en-US",
              "en-IE",
              "en-AU",
              "fr-BE",
              "fr-CA",
              "fr-CH",
              "de-AT",
              "de-CH",
              "es-MX",
              "nl",
              "nl-BE",
              "it",
              "pt",
              "pt-BR",
              "ga",
              "gd",
              "lb",
              "da",
              "sv",
              "nb",
              "fi",
              "is",
              "pl",
              "cs",
              "sk",
              "sl",
              "hu",
              "ro",
              "bg",
              "hr",
              "sr",
              "bs",
              "mk",
              "sq",
              "el",
              "mt",
              "et",
              "lv",
              "lt",
              "uk",
              "ru",
              "be",
              "ca",
              "eu",
              "gl",
              "tr",
              "ka",
              "hy",
              "az",
              "ar",
              "he",
              "fa",
              "ur",
              "hi",
              "bn",
              "pa",
              "gu",
              "ta",
              "te",
              "mr",
              "ne",
              "si",
              "zh-Hans",
              "zh-Hant",
              "ja",
              "ko",
              "th",
              "vi",
              "id",
              "ms",
              "fil",
              "km",
              "mn",
              "kk",
              "uz",
              "sw",
              "am",
              "so",
              "yo",
              "zu",
              "af"
            ]
          },
          "additionalProperties": {
            "type": "object",
            "properties": {
              "announcement": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 200,
                    "default": "Add a short message for every visitor."
                  },
                  "link": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "href": {
                        "type": "string",
                        "maxLength": 255,
                        "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                        "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                      },
                      "newTab": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  },
                  "style": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "brand",
                      "accent"
                    ],
                    "default": "dark"
                  },
                  "sticky": {
                    "type": "boolean",
                    "default": false
                  }
                },
                "additionalProperties": false
              },
              "nav": {
                "type": "object",
                "properties": {
                  "logo": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string",
                            "maxLength": 36,
                            "pattern": "^[0-9a-fA-F-]{36}$"
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "assetId"
                        ],
                        "additionalProperties": false,
                        "description": "An existing image asset in this workspace."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "string",
                            "maxLength": 70000000,
                            "contentEncoding": "base64"
                          },
                          "filename": {
                            "type": "string",
                            "maxLength": 255
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "data",
                          "filename"
                        ],
                        "additionalProperties": false,
                        "description": "An image uploaded as base64 data."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "placeholder": {
                            "const": true
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "placeholder"
                        ],
                        "additionalProperties": false,
                        "description": "An empty image slot. No image is uploaded."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "const": ""
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "additionalProperties": false,
                        "description": "No image: an empty object, or an empty assetId."
                      }
                    ]
                  },
                  "logoText": {
                    "type": "string",
                    "maxLength": 80,
                    "default": "Your Company"
                  },
                  "autoLinks": {
                    "type": "boolean",
                    "default": true
                  },
                  "links": {
                    "type": "array",
                    "maxItems": 10,
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "href": {
                          "type": "string",
                          "maxLength": 255
                        },
                        "icon": {
                          "type": "string",
                          "maxLength": 60,
                          "default": ""
                        },
                        "menu": {
                          "type": "string",
                          "enum": [
                            "list",
                            "panel",
                            "catalogue"
                          ],
                          "default": "list"
                        },
                        "children": {
                          "type": "array",
                          "maxItems": 24,
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "maxLength": 60
                              },
                              "href": {
                                "type": "string",
                                "maxLength": 255
                              },
                              "image": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": []
                        },
                        "viewAll": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "",
                            "href": ""
                          }
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": []
                  },
                  "cta": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "href": {
                        "type": "string",
                        "maxLength": 255,
                        "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                        "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                      },
                      "newTab": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false,
                    "default": {
                      "label": "Get in touch",
                      "href": "/contact"
                    }
                  },
                  "ctaShow": {
                    "type": "string",
                    "enum": [
                      "none",
                      "mobile",
                      "desktop",
                      "tablet",
                      "wide",
                      "mobile-tablet",
                      "mobile-wide"
                    ],
                    "default": "none"
                  },
                  "ctaBar": {
                    "type": "boolean",
                    "default": false
                  },
                  "style": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "brand"
                    ],
                    "default": "light"
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "stacked",
                      "adaptive",
                      "centred",
                      "sidebar",
                      "menu"
                    ],
                    "default": "inline"
                  },
                  "ctaColour": {
                    "type": "string",
                    "enum": [
                      "theme",
                      "primary",
                      "accent"
                    ],
                    "default": "theme"
                  },
                  "phone": {
                    "type": "string",
                    "maxLength": 40,
                    "default": ""
                  },
                  "phoneStyle": {
                    "type": "string",
                    "enum": [
                      "number",
                      "icon"
                    ],
                    "default": "number"
                  },
                  "phoneShow": {
                    "type": "string",
                    "enum": [
                      "none",
                      "mobile",
                      "desktop",
                      "tablet",
                      "wide",
                      "mobile-tablet",
                      "mobile-wide"
                    ],
                    "default": "none"
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 120,
                    "default": ""
                  },
                  "contactStyle": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "lines"
                    ],
                    "default": "inline"
                  },
                  "search": {
                    "type": "boolean",
                    "default": false
                  },
                  "searchPlaceholder": {
                    "type": "string",
                    "maxLength": 60,
                    "default": "Search products"
                  },
                  "basket": {
                    "type": "boolean",
                    "default": true
                  },
                  "menuBar": {
                    "type": "string",
                    "enum": [
                      "plain",
                      "brand",
                      "gradient",
                      "dark"
                    ],
                    "default": "plain"
                  },
                  "menuBarLight": {
                    "type": "boolean",
                    "default": false
                  },
                  "highlights": {
                    "type": "array",
                    "maxItems": 4,
                    "items": {
                      "type": "object",
                      "properties": {
                        "icon": {
                          "type": "string",
                          "maxLength": 60,
                          "default": ""
                        },
                        "title": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "text": {
                          "type": "string",
                          "maxLength": 120
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": []
                  },
                  "highlightsStyle": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "brand",
                      "surface"
                    ],
                    "default": "dark"
                  },
                  "ctaIcon": {
                    "type": "string",
                    "maxLength": 60,
                    "default": ""
                  },
                  "languageStyle": {
                    "type": "string",
                    "enum": [
                      "code",
                      "name",
                      "flag-round",
                      "flag-square",
                      "flag-rect",
                      "flag-code"
                    ],
                    "default": "code"
                  },
                  "caps": {
                    "type": "boolean",
                    "default": false
                  },
                  "logoSize": {
                    "type": "string",
                    "enum": [
                      "md",
                      "lg",
                      "xl"
                    ],
                    "default": "md"
                  },
                  "float": {
                    "type": "string",
                    "enum": [
                      "none",
                      "sticky",
                      "floating",
                      "pinned",
                      "hide"
                    ],
                    "default": "none"
                  },
                  "sticky": {
                    "type": "boolean",
                    "default": true
                  },
                  "overlay": {
                    "type": "boolean",
                    "default": false
                  },
                  "overlayLogo": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string",
                            "maxLength": 36,
                            "pattern": "^[0-9a-fA-F-]{36}$"
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "assetId"
                        ],
                        "additionalProperties": false,
                        "description": "An existing image asset in this workspace."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "string",
                            "maxLength": 70000000,
                            "contentEncoding": "base64"
                          },
                          "filename": {
                            "type": "string",
                            "maxLength": 255
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "data",
                          "filename"
                        ],
                        "additionalProperties": false,
                        "description": "An image uploaded as base64 data."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "placeholder": {
                            "const": true
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "placeholder"
                        ],
                        "additionalProperties": false,
                        "description": "An empty image slot. No image is uploaded."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "const": ""
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "additionalProperties": false,
                        "description": "No image: an empty object, or an empty assetId."
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              "topbar": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 120,
                    "default": ""
                  },
                  "phone": {
                    "type": "string",
                    "maxLength": 40,
                    "default": ""
                  },
                  "email": {
                    "type": "string",
                    "maxLength": 120,
                    "default": ""
                  },
                  "links": {
                    "type": "array",
                    "maxItems": 6,
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "href": {
                          "type": "string",
                          "maxLength": 255
                        },
                        "icon": {
                          "type": "string",
                          "maxLength": 60,
                          "default": ""
                        },
                        "image": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": []
                  },
                  "socials": {
                    "type": "boolean",
                    "default": false
                  },
                  "languages": {
                    "type": "boolean",
                    "default": true
                  },
                  "align": {
                    "type": "string",
                    "enum": [
                      "spread",
                      "centre",
                      "end"
                    ],
                    "default": "spread"
                  }
                },
                "additionalProperties": false
              },
              "footer": {
                "type": "object",
                "properties": {
                  "style": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light"
                    ],
                    "default": "dark"
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "columns",
                      "minimal",
                      "centred",
                      "statement"
                    ],
                    "default": "columns"
                  },
                  "statement": {
                    "type": "string",
                    "maxLength": 80,
                    "default": "Let's talk"
                  },
                  "statementLink": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "href": {
                        "type": "string",
                        "maxLength": 255,
                        "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                        "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                      },
                      "newTab": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false,
                    "default": {
                      "label": "your@email.com",
                      "href": "mailto:your@email.com"
                    }
                  },
                  "headingStyle": {
                    "type": "string",
                    "enum": [
                      "caps",
                      "plain"
                    ],
                    "default": "caps"
                  },
                  "showBrand": {
                    "type": "boolean",
                    "default": true
                  },
                  "logo": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string",
                            "maxLength": 36,
                            "pattern": "^[0-9a-fA-F-]{36}$"
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "assetId"
                        ],
                        "additionalProperties": false,
                        "description": "An existing image asset in this workspace."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "string",
                            "maxLength": 70000000,
                            "contentEncoding": "base64"
                          },
                          "filename": {
                            "type": "string",
                            "maxLength": 255
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "data",
                          "filename"
                        ],
                        "additionalProperties": false,
                        "description": "An image uploaded as base64 data."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "placeholder": {
                            "const": true
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "placeholder"
                        ],
                        "additionalProperties": false,
                        "description": "An empty image slot. No image is uploaded."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "const": ""
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "additionalProperties": false,
                        "description": "No image: an empty object, or an empty assetId."
                      }
                    ]
                  },
                  "tagline": {
                    "type": "string",
                    "maxLength": 300,
                    "default": "A short line about what you do and where."
                  },
                  "taglinePlace": {
                    "type": "string",
                    "enum": [
                      "brand",
                      "band"
                    ],
                    "default": "brand"
                  },
                  "taglineIcon": {
                    "type": "string",
                    "maxLength": 60,
                    "default": ""
                  },
                  "columns": {
                    "type": "array",
                    "maxItems": 6,
                    "items": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "text": {
                          "type": "string",
                          "maxLength": 400
                        },
                        "links": {
                          "type": "array",
                          "maxItems": 16,
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "maxLength": 60
                              },
                              "href": {
                                "type": "string",
                                "maxLength": 255
                              },
                              "icon": {
                                "type": "string",
                                "maxLength": 60,
                                "default": ""
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": [
                      {
                        "heading": "Contact",
                        "links": [
                          {
                            "label": "your@email.com",
                            "href": "mailto:your@email.com"
                          },
                          {
                            "label": "01234 567890",
                            "href": "tel:01234567890"
                          }
                        ]
                      }
                    ]
                  },
                  "socials": {
                    "type": "array",
                    "maxItems": 8,
                    "items": {
                      "type": "object",
                      "properties": {
                        "platform": {
                          "type": "string",
                          "enum": [
                            "linkedin",
                            "instagram",
                            "facebook",
                            "x",
                            "youtube",
                            "tiktok",
                            "whatsapp",
                            "email"
                          ],
                          "default": "linkedin"
                        },
                        "url": {
                          "type": "string",
                          "maxLength": 255
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": []
                  },
                  "legal": {
                    "type": "string",
                    "maxLength": 200,
                    "default": "Your Company. Registered in England and Wales."
                  },
                  "badges": {
                    "type": "array",
                    "maxItems": 8,
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "image": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "href": {
                          "type": "string",
                          "maxLength": 255
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": []
                  },
                  "legalLinks": {
                    "type": "array",
                    "maxItems": 6,
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "href": {
                          "type": "string",
                          "maxLength": 255
                        },
                        "_id": {
                          "type": "string",
                          "maxLength": 40
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": []
                  },
                  "bottomAlign": {
                    "type": "string",
                    "enum": [
                      "spread",
                      "centre"
                    ],
                    "default": "spread"
                  },
                  "socialRail": {
                    "type": "boolean",
                    "default": false
                  },
                  "socialColumn": {
                    "type": "boolean",
                    "default": true
                  }
                },
                "additionalProperties": false
              },
              "cookie": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 400,
                    "default": "We use essential cookies to make this site work, and optional analytics cookies to understand how it is used."
                  },
                  "policyHref": {
                    "type": "string",
                    "maxLength": 255,
                    "default": "/privacy"
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "settings": {
      "type": "object",
      "properties": {
        "language": {
          "type": "string",
          "enum": [
            "en-GB",
            "en",
            "cy",
            "fr",
            "de",
            "es",
            "en-US",
            "en-IE",
            "en-AU",
            "fr-BE",
            "fr-CA",
            "fr-CH",
            "de-AT",
            "de-CH",
            "es-MX",
            "nl",
            "nl-BE",
            "it",
            "pt",
            "pt-BR",
            "ga",
            "gd",
            "lb",
            "da",
            "sv",
            "nb",
            "fi",
            "is",
            "pl",
            "cs",
            "sk",
            "sl",
            "hu",
            "ro",
            "bg",
            "hr",
            "sr",
            "bs",
            "mk",
            "sq",
            "el",
            "mt",
            "et",
            "lv",
            "lt",
            "uk",
            "ru",
            "be",
            "ca",
            "eu",
            "gl",
            "tr",
            "ka",
            "hy",
            "az",
            "ar",
            "he",
            "fa",
            "ur",
            "hi",
            "bn",
            "pa",
            "gu",
            "ta",
            "te",
            "mr",
            "ne",
            "si",
            "zh-Hans",
            "zh-Hant",
            "ja",
            "ko",
            "th",
            "vi",
            "id",
            "ms",
            "fil",
            "km",
            "mn",
            "kk",
            "uz",
            "sw",
            "am",
            "so",
            "yo",
            "zu",
            "af"
          ],
          "default": "en-GB"
        },
        "languageAddresses": {
          "type": "string",
          "enum": [
            "subdomain",
            "path"
          ],
          "default": "subdomain"
        },
        "favicon": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "assetId": {
                  "type": "string",
                  "maxLength": 36,
                  "pattern": "^[0-9a-fA-F-]{36}$"
                },
                "alt": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "assetId"
              ],
              "additionalProperties": false,
              "description": "An existing image asset in this workspace."
            },
            {
              "type": "object",
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 70000000,
                  "contentEncoding": "base64"
                },
                "filename": {
                  "type": "string",
                  "maxLength": 255
                },
                "alt": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "data",
                "filename"
              ],
              "additionalProperties": false,
              "description": "An image uploaded as base64 data."
            },
            {
              "type": "object",
              "properties": {
                "placeholder": {
                  "const": true
                },
                "alt": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "placeholder"
              ],
              "additionalProperties": false,
              "description": "An empty image slot. No image is uploaded."
            },
            {
              "type": "object",
              "properties": {
                "assetId": {
                  "const": ""
                },
                "alt": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "additionalProperties": false,
              "description": "No image: an empty object, or an empty assetId."
            }
          ]
        },
        "blogEnabled": {
          "type": "boolean",
          "default": false
        },
        "blogBase": {
          "type": "string",
          "maxLength": 30,
          "default": "blog"
        },
        "blogTitle": {
          "type": "string",
          "maxLength": 60,
          "default": "Blog"
        },
        "blogIntro": {
          "type": "string",
          "maxLength": 300,
          "default": ""
        },
        "blogSeoTitle": {
          "type": "string",
          "maxLength": 120,
          "default": ""
        },
        "blogSeoDescription": {
          "type": "string",
          "maxLength": 300,
          "default": ""
        },
        "postLabel": {
          "type": "string",
          "maxLength": 30,
          "default": "Post"
        },
        "postSidebar": {
          "type": "boolean",
          "default": false
        },
        "blogLayout": {
          "type": "string",
          "enum": [
            "grid",
            "list"
          ],
          "default": "grid"
        },
        "blogDates": {
          "type": "boolean",
          "default": true
        },
        "blogBylines": {
          "type": "string",
          "enum": [
            "post",
            "both",
            "none"
          ],
          "default": "post"
        },
        "blogReadMore": {
          "type": "boolean",
          "default": false
        },
        "blogBreadcrumbs": {
          "type": "boolean",
          "default": false
        },
        "postLead": {
          "type": "boolean",
          "default": true
        },
        "postCover": {
          "type": "boolean",
          "default": true
        },
        "languages": {
          "type": "array",
          "maxItems": 10,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "en-GB",
              "en",
              "cy",
              "fr",
              "de",
              "es",
              "en-US",
              "en-IE",
              "en-AU",
              "fr-BE",
              "fr-CA",
              "fr-CH",
              "de-AT",
              "de-CH",
              "es-MX",
              "nl",
              "nl-BE",
              "it",
              "pt",
              "pt-BR",
              "ga",
              "gd",
              "lb",
              "da",
              "sv",
              "nb",
              "fi",
              "is",
              "pl",
              "cs",
              "sk",
              "sl",
              "hu",
              "ro",
              "bg",
              "hr",
              "sr",
              "bs",
              "mk",
              "sq",
              "el",
              "mt",
              "et",
              "lv",
              "lt",
              "uk",
              "ru",
              "be",
              "ca",
              "eu",
              "gl",
              "tr",
              "ka",
              "hy",
              "az",
              "ar",
              "he",
              "fa",
              "ur",
              "hi",
              "bn",
              "pa",
              "gu",
              "ta",
              "te",
              "mr",
              "ne",
              "si",
              "zh-Hans",
              "zh-Hant",
              "ja",
              "ko",
              "th",
              "vi",
              "id",
              "ms",
              "fil",
              "km",
              "mn",
              "kk",
              "uz",
              "sw",
              "am",
              "so",
              "yo",
              "zu",
              "af"
            ]
          },
          "description": "Languages besides the main one."
        },
        "words": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "maxLength": 200
            }
          },
          "description": "The website's own wording for the words it writes itself (menus, form labels, dates), per language code."
        },
        "flags": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "enum": [
              "",
              "gb",
              "ie",
              "us",
              "fr",
              "be",
              "de",
              "at",
              "ch",
              "nl",
              "lu",
              "es",
              "pt",
              "it",
              "gr",
              "se",
              "no",
              "dk",
              "fi",
              "is",
              "pl",
              "cz",
              "hu",
              "ro",
              "bg",
              "ee",
              "lt",
              "ua",
              "jp"
            ]
          },
          "description": "The flag the language switcher shows for each language, by language code."
        },
        "translations": {
          "type": "object",
          "propertyNames": {
            "enum": [
              "en-GB",
              "en",
              "cy",
              "fr",
              "de",
              "es",
              "en-US",
              "en-IE",
              "en-AU",
              "fr-BE",
              "fr-CA",
              "fr-CH",
              "de-AT",
              "de-CH",
              "es-MX",
              "nl",
              "nl-BE",
              "it",
              "pt",
              "pt-BR",
              "ga",
              "gd",
              "lb",
              "da",
              "sv",
              "nb",
              "fi",
              "is",
              "pl",
              "cs",
              "sk",
              "sl",
              "hu",
              "ro",
              "bg",
              "hr",
              "sr",
              "bs",
              "mk",
              "sq",
              "el",
              "mt",
              "et",
              "lv",
              "lt",
              "uk",
              "ru",
              "be",
              "ca",
              "eu",
              "gl",
              "tr",
              "ka",
              "hy",
              "az",
              "ar",
              "he",
              "fa",
              "ur",
              "hi",
              "bn",
              "pa",
              "gu",
              "ta",
              "te",
              "mr",
              "ne",
              "si",
              "zh-Hans",
              "zh-Hant",
              "ja",
              "ko",
              "th",
              "vi",
              "id",
              "ms",
              "fil",
              "km",
              "mn",
              "kk",
              "uz",
              "sw",
              "am",
              "so",
              "yo",
              "zu",
              "af"
            ]
          },
          "additionalProperties": {
            "type": "object",
            "properties": {
              "blogTitle": {
                "type": "string",
                "maxLength": 60
              },
              "blogIntro": {
                "type": "string",
                "maxLength": 300
              }
            },
            "additionalProperties": false
          }
        },
        "languageAliases": {
          "type": "object",
          "propertyNames": {
            "enum": [
              "en-GB",
              "en",
              "cy",
              "fr",
              "de",
              "es",
              "en-US",
              "en-IE",
              "en-AU",
              "fr-BE",
              "fr-CA",
              "fr-CH",
              "de-AT",
              "de-CH",
              "es-MX",
              "nl",
              "nl-BE",
              "it",
              "pt",
              "pt-BR",
              "ga",
              "gd",
              "lb",
              "da",
              "sv",
              "nb",
              "fi",
              "is",
              "pl",
              "cs",
              "sk",
              "sl",
              "hu",
              "ro",
              "bg",
              "hr",
              "sr",
              "bs",
              "mk",
              "sq",
              "el",
              "mt",
              "et",
              "lv",
              "lt",
              "uk",
              "ru",
              "be",
              "ca",
              "eu",
              "gl",
              "tr",
              "ka",
              "hy",
              "az",
              "ar",
              "he",
              "fa",
              "ur",
              "hi",
              "bn",
              "pa",
              "gu",
              "ta",
              "te",
              "mr",
              "ne",
              "si",
              "zh-Hans",
              "zh-Hant",
              "ja",
              "ko",
              "th",
              "vi",
              "id",
              "ms",
              "fil",
              "km",
              "mn",
              "kk",
              "uz",
              "sw",
              "am",
              "so",
              "yo",
              "zu",
              "af"
            ]
          },
          "additionalProperties": {
            "type": "string",
            "enum": [
              "en-GB",
              "en",
              "cy",
              "fr",
              "de",
              "es",
              "en-US",
              "en-IE",
              "en-AU",
              "fr-BE",
              "fr-CA",
              "fr-CH",
              "de-AT",
              "de-CH",
              "es-MX",
              "nl",
              "nl-BE",
              "it",
              "pt",
              "pt-BR",
              "ga",
              "gd",
              "lb",
              "da",
              "sv",
              "nb",
              "fi",
              "is",
              "pl",
              "cs",
              "sk",
              "sl",
              "hu",
              "ro",
              "bg",
              "hr",
              "sr",
              "bs",
              "mk",
              "sq",
              "el",
              "mt",
              "et",
              "lv",
              "lt",
              "uk",
              "ru",
              "be",
              "ca",
              "eu",
              "gl",
              "tr",
              "ka",
              "hy",
              "az",
              "ar",
              "he",
              "fa",
              "ur",
              "hi",
              "bn",
              "pa",
              "gu",
              "ta",
              "te",
              "mr",
              "ne",
              "si",
              "zh-Hans",
              "zh-Hant",
              "ja",
              "ko",
              "th",
              "vi",
              "id",
              "ms",
              "fil",
              "km",
              "mn",
              "kk",
              "uz",
              "sw",
              "am",
              "so",
              "yo",
              "zu",
              "af"
            ]
          },
          "description": "Languages that show another language's pages from their own address, by language code: { 'fr-BE': 'fr' } puts Belgium at the French pages."
        },
        "catalogue": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "showPrices": {
              "type": "boolean",
              "description": "Whether catalogue pages show prices, even with the shop switched off."
            },
            "base": {
              "type": "string",
              "maxLength": 40,
              "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
            },
            "itemBase": {
              "type": "string",
              "maxLength": 40,
              "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
            },
            "groupLabel": {
              "type": "string",
              "maxLength": 40
            },
            "groupLabelPlural": {
              "type": "string",
              "maxLength": 40
            },
            "leafLabel": {
              "type": "string",
              "maxLength": 40
            },
            "leafLabelPlural": {
              "type": "string",
              "maxLength": 40
            },
            "perPage": {
              "type": "integer",
              "minimum": 6,
              "maximum": 100
            },
            "pagination": {
              "type": "string",
              "enum": [
                "more",
                "pages"
              ]
            },
            "title": {
              "type": "string",
              "maxLength": 120
            },
            "intro": {
              "type": "string",
              "maxLength": 300
            },
            "enquiryEmail": {
              "anyOf": [
                {
                  "const": ""
                },
                {
                  "type": "string",
                  "maxLength": 255,
                  "format": "email"
                }
              ]
            },
            "enquiryPage": {
              "type": "string",
              "maxLength": 40,
              "pattern": "^(?:|[a-z0-9]+(?:-[a-z0-9]+)*)$"
            },
            "cardStyle": {
              "type": "string",
              "enum": [
                "standard",
                "minimal",
                "framed"
              ],
              "description": "How product cards look."
            },
            "imageRatio": {
              "type": "string",
              "enum": [
                "square",
                "portrait",
                "landscape"
              ],
              "description": "The shape of the pictures on product cards."
            },
            "columns": {
              "type": "integer",
              "enum": [
                2,
                3,
                4
              ],
              "description": "Product cards per row on a wide screen."
            },
            "cardSpecs": {
              "type": "boolean",
              "description": "Whether cards show key values or features."
            },
            "cardDetails": {
              "type": "string",
              "enum": [
                "specs",
                "points",
                "none"
              ],
              "description": "Under each card name: key facts (key points when a product has none), key points only, or nothing."
            },
            "cardSummary": {
              "type": "boolean",
              "description": "Whether cards show the summary line."
            },
            "quickAdd": {
              "type": "boolean",
              "description": "Whether cards carry an add to basket button when the shop sells."
            },
            "filterPrice": {
              "type": "boolean"
            },
            "filterStock": {
              "type": "boolean"
            },
            "filterOffers": {
              "type": "boolean"
            },
            "defaultSort": {
              "type": "string",
              "enum": [
                "featured",
                "newest",
                "price-asc",
                "price-desc",
                "name"
              ]
            },
            "categoryTiles": {
              "type": "boolean",
              "description": "Whether listings open with category tiles."
            },
            "offersPage": {
              "type": "boolean",
              "description": "Whether /<base>/offers lists everything on offer."
            },
            "offersTitle": {
              "type": "string",
              "maxLength": 120
            },
            "enquiryButton": {
              "type": "boolean",
              "description": "Whether product pages offer the enquiry button and panel."
            },
            "ctaHeading": {
              "type": "string",
              "maxLength": 120,
              "description": "The enquiry panel heading; {product} is replaced by the product name."
            },
            "ctaText": {
              "type": "string",
              "maxLength": 300
            },
            "itemHeading": {
              "type": "string",
              "enum": [
                "title",
                "code"
              ],
              "description": "What a product page heading shows: the name (title, the default), or the product code with the name under it (code)."
            },
            "shareButtons": {
              "type": "boolean",
              "description": "Whether product pages offer share buttons (copy link, WhatsApp, Facebook, X, Pinterest, email). Defaults to true."
            },
            "tagFilterLabel": {
              "type": "string",
              "maxLength": 40,
              "description": "The heading of the collections filter on listings. Defaults to \"Collections\"."
            },
            "accessoriesHeading": {
              "type": "string",
              "maxLength": 80,
              "description": "The heading over a product page's accessories (spares, fittings and add-ons). Defaults to \"Accessories\"."
            },
            "faqsHeading": {
              "type": "string",
              "maxLength": 80,
              "description": "The heading over a product page's questions and answers. Defaults to \"Frequently asked questions\"."
            }
          },
          "additionalProperties": false
        },
        "icons": {
          "type": "object",
          "properties": {
            "favicon": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "apple": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "icon192": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "icon512": {
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "themeColour": {
              "type": "string",
              "maxLength": 7,
              "pattern": "^(?:|#[0-9a-fA-F]{6})$"
            }
          },
          "additionalProperties": false,
          "description": "Brand icons made from an emblem: a 32px favicon, the Apple touch icon and 192px and 512px app icons (existing pictures), and the browser bar colour."
        }
      },
      "additionalProperties": false
    },
    "seo": {
      "type": "object",
      "properties": {
        "titleTemplate": {
          "type": "string",
          "maxLength": 80
        },
        "defaultShareImage": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "assetId": {
                  "type": "string",
                  "maxLength": 36,
                  "pattern": "^[0-9a-fA-F-]{36}$"
                },
                "alt": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "assetId"
              ],
              "additionalProperties": false,
              "description": "An existing image asset in this workspace."
            },
            {
              "type": "object",
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 70000000,
                  "contentEncoding": "base64"
                },
                "filename": {
                  "type": "string",
                  "maxLength": 255
                },
                "alt": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "data",
                "filename"
              ],
              "additionalProperties": false,
              "description": "An image uploaded as base64 data."
            },
            {
              "type": "object",
              "properties": {
                "placeholder": {
                  "const": true
                },
                "alt": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "placeholder"
              ],
              "additionalProperties": false,
              "description": "An empty image slot. No image is uploaded."
            },
            {
              "type": "object",
              "properties": {
                "assetId": {
                  "const": ""
                },
                "alt": {
                  "type": "string",
                  "maxLength": 300
                }
              },
              "additionalProperties": false,
              "description": "No image: an empty object, or an empty assetId."
            }
          ]
        },
        "aiCrawlers": {
          "type": "boolean",
          "description": "Whether AI assistants may read the website (robots.txt). Defaults to true."
        },
        "brandCustomTitles": {
          "type": "boolean",
          "description": "Whether a page's own search title also goes through the title pattern, unless it already names the website. Defaults to false."
        },
        "business": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "type": {
              "type": "string",
              "enum": [
                "LocalBusiness",
                "ProfessionalService",
                "Restaurant",
                "CafeOrCoffeeShop",
                "Store",
                "HomeAndConstructionBusiness",
                "LegalService",
                "AccountingService",
                "Dentist",
                "MedicalBusiness",
                "Physiotherapy",
                "ExerciseGym",
                "NGO",
                "Organization"
              ]
            },
            "name": {
              "type": "string",
              "maxLength": 120
            },
            "description": {
              "type": "string",
              "maxLength": 500
            },
            "phone": {
              "type": "string",
              "maxLength": 40
            },
            "email": {
              "anyOf": [
                {
                  "const": ""
                },
                {
                  "type": "string",
                  "maxLength": 254,
                  "format": "email"
                }
              ]
            },
            "street": {
              "type": "string",
              "maxLength": 200
            },
            "locality": {
              "type": "string",
              "maxLength": 100
            },
            "region": {
              "type": "string",
              "maxLength": 100
            },
            "postcode": {
              "type": "string",
              "maxLength": 12
            },
            "country": {
              "type": "string",
              "maxLength": 2
            },
            "priceRange": {
              "type": "string",
              "maxLength": 10
            },
            "openingHours": {
              "type": "array",
              "maxItems": 14,
              "items": {
                "type": "object",
                "properties": {
                  "days": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                      "type": "string",
                      "enum": [
                        "Mo",
                        "Tu",
                        "We",
                        "Th",
                        "Fr",
                        "Sa",
                        "Su"
                      ]
                    }
                  },
                  "opens": {
                    "type": "string",
                    "maxLength": 5,
                    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
                  },
                  "closes": {
                    "type": "string",
                    "maxLength": 5,
                    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
                  }
                },
                "required": [
                  "days",
                  "opens",
                  "closes"
                ],
                "additionalProperties": false
              }
            },
            "sameAs": {
              "type": "array",
              "maxItems": 10,
              "items": {
                "type": "string",
                "format": "uri"
              }
            },
            "logo": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "type": "string",
                      "maxLength": 36,
                      "pattern": "^[0-9a-fA-F-]{36}$"
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "assetId"
                  ],
                  "additionalProperties": false,
                  "description": "An existing image asset in this workspace."
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 70000000,
                      "contentEncoding": "base64"
                    },
                    "filename": {
                      "type": "string",
                      "maxLength": 255
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "data",
                    "filename"
                  ],
                  "additionalProperties": false,
                  "description": "An image uploaded as base64 data."
                },
                {
                  "type": "object",
                  "properties": {
                    "placeholder": {
                      "const": true
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "placeholder"
                  ],
                  "additionalProperties": false,
                  "description": "An empty image slot. No image is uploaded."
                },
                {
                  "type": "object",
                  "properties": {
                    "assetId": {
                      "const": ""
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "additionalProperties": false,
                  "description": "No image: an empty object, or an empty assetId."
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "languages": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "properties": {
              "titleTemplate": {
                "type": "string",
                "maxLength": 80
              },
              "defaultShareImage": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "type": "string",
                        "maxLength": 36,
                        "pattern": "^[0-9a-fA-F-]{36}$"
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "assetId"
                    ],
                    "additionalProperties": false,
                    "description": "An existing image asset in this workspace."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 70000000,
                        "contentEncoding": "base64"
                      },
                      "filename": {
                        "type": "string",
                        "maxLength": 255
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "data",
                      "filename"
                    ],
                    "additionalProperties": false,
                    "description": "An image uploaded as base64 data."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "placeholder": {
                        "const": true
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "placeholder"
                    ],
                    "additionalProperties": false,
                    "description": "An empty image slot. No image is uploaded."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "const": ""
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "additionalProperties": false,
                    "description": "No image: an empty object, or an empty assetId."
                  }
                ]
              },
              "verification": {
                "type": "object",
                "properties": {
                  "google": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "bing": {
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "additionalProperties": false
              },
              "business": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "description": "What each other language changes about the site's search settings, by language code: a title pattern, share image, verification codes and business wording. Empty values use the main language's."
        }
      },
      "additionalProperties": false
    },
    "pages": {
      "type": "array",
      "minItems": 1,
      "maxItems": 40,
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 191
          },
          "slug": {
            "type": "string",
            "maxLength": 191
          },
          "language": {
            "type": "string",
            "maxLength": 10,
            "description": "The page's language code; leave it out for the website's main language."
          },
          "navLabel": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 80
          },
          "showInNav": {
            "type": "boolean"
          },
          "purpose": {
            "type": "string",
            "enum": [
              "not-found"
            ],
            "description": "Set to \"not-found\" to make this the page shown for missing addresses in its language."
          },
          "seo": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "maxLength": 120
              },
              "description": {
                "type": "string",
                "maxLength": 300
              },
              "aiSummary": {
                "type": "string",
                "maxLength": 600
              },
              "aiNotes": {
                "type": "string",
                "maxLength": 1200
              },
              "image": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "type": "string",
                        "maxLength": 36,
                        "pattern": "^[0-9a-fA-F-]{36}$"
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "assetId"
                    ],
                    "additionalProperties": false,
                    "description": "An existing image asset in this workspace."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 70000000,
                        "contentEncoding": "base64"
                      },
                      "filename": {
                        "type": "string",
                        "maxLength": 255
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "data",
                      "filename"
                    ],
                    "additionalProperties": false,
                    "description": "An image uploaded as base64 data."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "placeholder": {
                        "const": true
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "placeholder"
                    ],
                    "additionalProperties": false,
                    "description": "An empty image slot. No image is uploaded."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "const": ""
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "additionalProperties": false,
                    "description": "No image: an empty object, or an empty assetId."
                  }
                ]
              },
              "noindex": {
                "type": "boolean",
                "default": false
              }
            },
            "additionalProperties": false
          },
          "sections": {
            "type": "array",
            "maxItems": 60,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "The first thing visitors see: a big heading, a line of supporting text, buttons and an optional image.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "hero"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "A clear promise to the people you serve"
                        },
                        "subheading": {
                          "type": "string",
                          "maxLength": 400,
                          "default": "Say what you do, who it is for and why it matters in one or two short sentences."
                        },
                        "primary": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "Get in touch",
                            "href": "/contact"
                          }
                        },
                        "secondary": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "",
                            "href": ""
                          }
                        },
                        "image": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "video": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "points": {
                          "type": "array",
                          "maxItems": 6,
                          "items": {
                            "type": "object",
                            "properties": {
                              "icon": {
                                "type": "string",
                                "maxLength": 60,
                                "default": "check"
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 80
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": []
                        },
                        "pointsStyle": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "inline",
                            "band"
                          ],
                          "default": "stacked"
                        },
                        "textPosition": {
                          "type": "string",
                          "enum": [
                            "centre",
                            "left",
                            "band"
                          ],
                          "default": "centre"
                        },
                        "shade": {
                          "type": "string",
                          "enum": [
                            "none",
                            "light",
                            "medium",
                            "strong",
                            "darkest"
                          ],
                          "default": "medium"
                        },
                        "imageShape": {
                          "type": "string",
                          "enum": [
                            "rounded",
                            "square",
                            "arch",
                            "circle",
                            "leaf"
                          ],
                          "default": "rounded"
                        },
                        "imageFrame": {
                          "type": "string",
                          "enum": [
                            "none",
                            "block",
                            "outline",
                            "dots"
                          ],
                          "default": "none"
                        },
                        "frameColour": {
                          "type": "string",
                          "enum": [
                            "accent",
                            "primary",
                            "secondary",
                            "surface",
                            "white"
                          ],
                          "default": "accent"
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "centred",
                            "split-right",
                            "split-left"
                          ],
                          "default": "split-right"
                        },
                        "imageSide": {
                          "type": "string",
                          "enum": [
                            "right",
                            "left"
                          ],
                          "default": "right"
                        },
                        "height": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "short",
                            "tall",
                            "screen"
                          ],
                          "default": "auto"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "centred",
                            "split-right",
                            "split-left",
                            "media-top",
                            "media-background",
                            "stacked-left",
                            "split-bleed"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "text",
                              "buttons",
                              "media"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "buttons": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "media": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "const": ""
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "anyOf": [
                            {
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "eyebrow",
                                  "heading",
                                  "text",
                                  "buttons",
                                  "media"
                                ]
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Full-width pictures that take turns, each with a heading, a line or two of text and a link. Good for showing a few offers or services at the top of the home page.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "slideshow"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "slides": {
                          "type": "array",
                          "maxItems": 8,
                          "items": {
                            "type": "object",
                            "properties": {
                              "image": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "heading": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 300
                              },
                              "link": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  "href": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                    "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                  },
                                  "newTab": {
                                    "type": "boolean"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "heading": "Your first offer",
                              "text": "A line about it.",
                              "link": {
                                "label": "",
                                "href": ""
                              }
                            },
                            {
                              "heading": "Your second offer",
                              "text": "A line about it.",
                              "link": {
                                "label": "",
                                "href": ""
                              }
                            }
                          ]
                        },
                        "caption": {
                          "type": "string",
                          "enum": [
                            "band",
                            "centre",
                            "left"
                          ],
                          "default": "band"
                        },
                        "height": {
                          "type": "string",
                          "enum": [
                            "short",
                            "medium",
                            "tall"
                          ],
                          "default": "medium"
                        },
                        "autoplay": {
                          "type": "boolean",
                          "default": true
                        },
                        "interval": {
                          "type": "integer",
                          "minimum": 3,
                          "maximum": 15,
                          "default": 6
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A grid of short points, each with an icon, a title and a sentence. Good for benefits, reasons to choose you or what is included.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "features"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Why people choose us"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "2",
                            "3",
                            "4"
                          ],
                          "default": "3"
                        },
                        "style": {
                          "type": "string",
                          "enum": [
                            "cards",
                            "plain",
                            "rows"
                          ],
                          "default": "cards"
                        },
                        "iconStyle": {
                          "type": "string",
                          "enum": [
                            "badge",
                            "circle",
                            "outline",
                            "large"
                          ],
                          "default": "badge"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 12,
                          "items": {
                            "type": "object",
                            "properties": {
                              "icon": {
                                "type": "string",
                                "maxLength": 60,
                                "default": "check"
                              },
                              "title": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 400
                              },
                              "link": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  "href": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                    "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                  },
                                  "newTab": {
                                    "type": "boolean"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "title": "Straightforward",
                              "text": "Plain answers and a clear plan before any work starts.",
                              "icon": "check"
                            },
                            {
                              "title": "Reliable",
                              "text": "We turn up when we say we will and finish what we start.",
                              "icon": "clock"
                            },
                            {
                              "title": "Local",
                              "text": "Based nearby, so help is never far away.",
                              "icon": "map-pin"
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "cards",
                            "plain",
                            "rows"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "icon",
                              "title",
                              "text",
                              "link"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "icon": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "title": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "link": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        },
                        "columnsMobile": {
                          "type": "string",
                          "enum": [
                            "1",
                            "2"
                          ]
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "An image beside a block of text, with optional ticked points and a button. Good for \"about us\" and explaining one idea in depth.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "media-text"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "About Your Company"
                        },
                        "body": {
                          "oneOf": [
                            {
                              "type": "string",
                              "maxLength": 20000,
                              "description": "Plain text convenience form; converted to Tiptap JSON."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "doc"
                                },
                                "content": {
                                  "type": "array",
                                  "maxItems": 500,
                                  "items": {
                                    "$ref": "#/$defs/richNode"
                                  }
                                }
                              },
                              "required": [
                                "type"
                              ],
                              "additionalProperties": false
                            }
                          ],
                          "default": {
                            "type": "doc",
                            "content": [
                              {
                                "type": "paragraph",
                                "content": [
                                  {
                                    "type": "text",
                                    "text": "Tell your story in a few short paragraphs: how you started, what you care about and what working with you is like."
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        "bullets": {
                          "type": "array",
                          "maxItems": 8,
                          "items": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "maxLength": 160
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": []
                        },
                        "primary": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "",
                            "href": ""
                          }
                        },
                        "image": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "imageSide": {
                          "type": "string",
                          "enum": [
                            "left",
                            "right"
                          ],
                          "default": "left"
                        },
                        "imageBleed": {
                          "type": "boolean",
                          "default": false
                        },
                        "imageShape": {
                          "type": "string",
                          "enum": [
                            "rounded",
                            "square",
                            "arch",
                            "circle",
                            "leaf"
                          ],
                          "default": "rounded"
                        },
                        "imageFrame": {
                          "type": "string",
                          "enum": [
                            "none",
                            "block",
                            "outline",
                            "dots"
                          ],
                          "default": "none"
                        },
                        "frameColour": {
                          "type": "string",
                          "enum": [
                            "accent",
                            "primary",
                            "secondary",
                            "surface",
                            "white"
                          ],
                          "default": "accent"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "image-left",
                            "image-right",
                            "image-top"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "body",
                              "bullets",
                              "button",
                              "media"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "body": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "bullets": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "button": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "media": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "const": ""
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "anyOf": [
                            {
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "eyebrow",
                                  "heading",
                                  "body",
                                  "bullets",
                                  "button",
                                  "media"
                                ]
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Cards for each service you offer, with an optional image, a guide price and a link to more detail.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "services"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "What we do"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "2",
                            "3",
                            "4"
                          ],
                          "default": "3"
                        },
                        "showFilters": {
                          "type": "boolean",
                          "default": false
                        },
                        "fillRow": {
                          "type": "boolean",
                          "default": false
                        },
                        "imageFit": {
                          "type": "string",
                          "enum": [
                            "cover",
                            "contain"
                          ],
                          "default": "cover"
                        },
                        "imageEdge": {
                          "type": "boolean",
                          "default": false
                        },
                        "linkStyle": {
                          "type": "string",
                          "enum": [
                            "link",
                            "button"
                          ],
                          "default": "link"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 12,
                          "items": {
                            "type": "object",
                            "properties": {
                              "icon": {
                                "type": "string",
                                "maxLength": 60,
                                "default": "briefcase"
                              },
                              "image": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "title": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "price": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "tags": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "link": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  "href": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                    "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                  },
                                  "newTab": {
                                    "type": "boolean"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "title": "Service one",
                              "text": "A short description of the service and who it helps.",
                              "icon": "briefcase"
                            },
                            {
                              "title": "Service two",
                              "text": "A short description of the service and who it helps.",
                              "icon": "wrench"
                            },
                            {
                              "title": "Service three",
                              "text": "A short description of the service and who it helps.",
                              "icon": "chart"
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "cards",
                            "plain",
                            "overlay"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "media",
                              "tags",
                              "title",
                              "text",
                              "price",
                              "link"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "media": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "tags": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "title": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "price": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "link": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        },
                        "columnsMobile": {
                          "type": "string",
                          "enum": [
                            "1",
                            "2"
                          ]
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A world map with a pin for each place, linking to its page, and a list of the places for everyone who cannot see the map. Shown as a dotted illustration or as a street map you can zoom, with buttons to switch between groups of places.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "places-map"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Where we go"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "dotted",
                            "street"
                          ],
                          "default": "dotted"
                        },
                        "height": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "container",
                            "full"
                          ],
                          "default": "container"
                        },
                        "mapStyle": {
                          "type": "string",
                          "enum": [
                            "light",
                            "bright",
                            "liberty",
                            "mapbox-streets",
                            "mapbox-outdoors",
                            "mapbox-light",
                            "mapbox-dark",
                            "mapbox-navigation-day",
                            "mapbox-navigation-night",
                            "mapbox-satellite",
                            "mapbox-satellite-plain",
                            "mapbox-custom"
                          ],
                          "default": "light"
                        },
                        "mapboxStyle": {
                          "type": "string",
                          "maxLength": 200,
                          "default": ""
                        },
                        "pinStyle": {
                          "type": "string",
                          "enum": [
                            "label",
                            "dot",
                            "drop"
                          ],
                          "default": "label"
                        },
                        "controls": {
                          "type": "boolean",
                          "default": true
                        },
                        "scrollZoom": {
                          "type": "boolean",
                          "default": false
                        },
                        "pinColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "accent",
                            "primary",
                            "secondary",
                            "dark",
                            "custom"
                          ],
                          "default": "auto"
                        },
                        "pinCustom": {
                          "type": "string",
                          "maxLength": 7,
                          "pattern": "^(?:|#[0-9a-fA-F]{6})$",
                          "default": ""
                        },
                        "mapColour": {
                          "type": "string",
                          "enum": [
                            "natural",
                            "muted",
                            "greyscale",
                            "brand"
                          ],
                          "default": "natural"
                        },
                        "zoom": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18,
                          "default": 0
                        },
                        "pitch": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 60,
                          "default": 0
                        },
                        "bearing": {
                          "type": "integer",
                          "minimum": -180,
                          "maximum": 180,
                          "default": 0
                        },
                        "region": {
                          "type": "string",
                          "enum": [
                            "fit",
                            "world",
                            "europe",
                            "northern-europe",
                            "mediterranean",
                            "caribbean",
                            "north-america",
                            "south-america",
                            "africa",
                            "asia",
                            "oceania",
                            "polar-south"
                          ],
                          "default": "fit"
                        },
                        "showNames": {
                          "type": "boolean",
                          "default": true
                        },
                        "showList": {
                          "type": "boolean",
                          "default": true
                        },
                        "places": {
                          "type": "array",
                          "maxItems": 60,
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "maxLength": 60
                              },
                              "lat": {
                                "type": "number",
                                "minimum": -90,
                                "maximum": 90,
                                "default": 0
                              },
                              "lng": {
                                "type": "number",
                                "minimum": -180,
                                "maximum": 180,
                                "default": 0
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "group": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "image": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "marker": {
                                "type": "string",
                                "enum": [
                                  "standard",
                                  "main",
                                  "quiet"
                                ],
                                "default": "standard"
                              },
                              "link": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  "href": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                    "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                  },
                                  "newTab": {
                                    "type": "boolean"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "name": "Place one",
                              "lat": 60.4,
                              "lng": 5.3
                            },
                            {
                              "name": "Place two",
                              "lat": 41.9,
                              "lng": 12.5
                            },
                            {
                              "name": "Place three",
                              "lat": 37.9,
                              "lng": 23.7
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "map",
                              "list"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "map": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "list": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A trail of links to the pages above this one, worked out from its address.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "breadcrumbs"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "showHome": {
                          "type": "boolean",
                          "default": true
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Cards for the pages under an address, such as every destination under /destinations, using each page's search description and share image.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "page-list"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Explore"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "parent": {
                          "type": "string",
                          "maxLength": 191,
                          "default": ""
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "2",
                            "3",
                            "4"
                          ],
                          "default": "3"
                        },
                        "showImages": {
                          "type": "boolean",
                          "default": true
                        },
                        "showDescriptions": {
                          "type": "boolean",
                          "default": true
                        },
                        "cardStyle": {
                          "type": "string",
                          "enum": [
                            "cards",
                            "overlay"
                          ],
                          "default": "cards"
                        },
                        "linkLabel": {
                          "type": "string",
                          "maxLength": 40,
                          "default": ""
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A row of figures with labels. Only for real figures the business gives you; never invent numbers.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "stats"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": ""
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "animate": {
                          "type": "boolean",
                          "default": false
                        },
                        "look": {
                          "type": "string",
                          "enum": [
                            "plain",
                            "divided",
                            "cards"
                          ],
                          "default": "plain"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 6,
                          "items": {
                            "type": "object",
                            "properties": {
                              "value": {
                                "type": "string",
                                "maxLength": 20
                              },
                              "label": {
                                "type": "string",
                                "maxLength": 80
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "value": "00",
                              "label": "Years in business"
                            },
                            {
                              "value": "00",
                              "label": "Projects finished"
                            },
                            {
                              "value": "00",
                              "label": "People on the team"
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "value",
                              "label"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "value": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "label": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Quotes from customers with their name and role. Only use real quotes the business supplies; leave placeholders otherwise.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "testimonials"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "What our customers say"
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "single"
                          ],
                          "default": "grid"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 9,
                          "items": {
                            "type": "object",
                            "properties": {
                              "quote": {
                                "type": "string",
                                "maxLength": 600
                              },
                              "name": {
                                "type": "string",
                                "maxLength": 80
                              },
                              "role": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "rating": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 5,
                                "default": 5
                              },
                              "photo": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "quote": "Add a quote from a real customer here.",
                              "name": "Customer A",
                              "role": "Company A",
                              "rating": 5
                            },
                            {
                              "quote": "Add a quote from a real customer here.",
                              "name": "Customer B",
                              "role": "Company B",
                              "rating": 5
                            },
                            {
                              "quote": "Add a quote from a real customer here.",
                              "name": "Customer C",
                              "role": "Company C",
                              "rating": 5
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "single",
                            "featured-plus-grid"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "rating",
                              "quote",
                              "person"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "rating": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "quote": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "person": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Photos, names and roles of the people on the Team page. People are managed in Team, or synced from CubeHR when it is connected.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "team"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Meet the team"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "3",
                            "4"
                          ],
                          "default": "4"
                        },
                        "department": {
                          "type": "string",
                          "maxLength": 80
                        },
                        "showBio": {
                          "type": "boolean",
                          "default": false
                        },
                        "showSocial": {
                          "type": "boolean",
                          "default": true
                        },
                        "limit": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 100,
                          "default": 0
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "photo",
                              "name",
                              "role",
                              "bio",
                              "social"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "photo": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "const": ""
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "name": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "role": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "bio": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "social": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A grid of photos that open larger when clicked.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "gallery"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": ""
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "masonry"
                          ],
                          "default": "grid"
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "2",
                            "3",
                            "4"
                          ],
                          "default": "3"
                        },
                        "lightbox": {
                          "type": "boolean",
                          "default": true
                        },
                        "showFilters": {
                          "type": "boolean",
                          "default": false
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 48,
                          "items": {
                            "type": "object",
                            "properties": {
                              "image": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "caption": {
                                "type": "string",
                                "maxLength": 160
                              },
                              "category": {
                                "type": "string",
                                "maxLength": 60
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {},
                            {},
                            {},
                            {},
                            {},
                            {}
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "masonry"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "filters",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "photo",
                              "caption"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "filters": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "photo": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "caption": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "One image with an optional caption.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "image"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "image": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "caption": {
                          "type": "string",
                          "maxLength": 200
                        },
                        "href": {
                          "type": "string",
                          "maxLength": 255
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A YouTube or Vimeo video, played without tracking cookies until the visitor presses play.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "video"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": ""
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "url": {
                          "type": "string",
                          "maxLength": 255
                        },
                        "caption": {
                          "type": "string",
                          "maxLength": 200
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "player"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "player": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A map of an address or postcode with a link to directions.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "map"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Find us"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "query": {
                          "type": "string",
                          "maxLength": 200,
                          "default": ""
                        },
                        "height": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "provider": {
                          "type": "string",
                          "enum": [
                            "google",
                            "street"
                          ],
                          "default": "google"
                        },
                        "lat": {
                          "type": "number",
                          "minimum": -90,
                          "maximum": 90,
                          "default": 0
                        },
                        "lng": {
                          "type": "number",
                          "minimum": -180,
                          "maximum": 180,
                          "default": 0
                        },
                        "placeName": {
                          "type": "string",
                          "maxLength": 60,
                          "default": ""
                        },
                        "mapStyle": {
                          "type": "string",
                          "enum": [
                            "light",
                            "bright",
                            "liberty",
                            "mapbox-streets",
                            "mapbox-outdoors",
                            "mapbox-light",
                            "mapbox-dark",
                            "mapbox-navigation-day",
                            "mapbox-navigation-night",
                            "mapbox-satellite",
                            "mapbox-satellite-plain",
                            "mapbox-custom"
                          ],
                          "default": "light"
                        },
                        "mapboxStyle": {
                          "type": "string",
                          "maxLength": 200,
                          "default": ""
                        },
                        "pinStyle": {
                          "type": "string",
                          "enum": [
                            "label",
                            "dot"
                          ],
                          "default": "label"
                        },
                        "pinColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "accent",
                            "primary",
                            "secondary",
                            "dark",
                            "custom"
                          ],
                          "default": "auto"
                        },
                        "pinCustom": {
                          "type": "string",
                          "maxLength": 7,
                          "pattern": "^(?:|#[0-9a-fA-F]{6})$",
                          "default": ""
                        },
                        "pinImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "mapColour": {
                          "type": "string",
                          "enum": [
                            "natural",
                            "muted",
                            "greyscale",
                            "brand"
                          ],
                          "default": "natural"
                        },
                        "zoom": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18,
                          "default": 0
                        },
                        "pitch": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 60,
                          "default": 0
                        },
                        "bearing": {
                          "type": "integer",
                          "minimum": -180,
                          "maximum": 180,
                          "default": 0
                        },
                        "controls": {
                          "type": "boolean",
                          "default": true
                        },
                        "scrollZoom": {
                          "type": "boolean",
                          "default": false
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "map",
                              "directions"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "map": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "directions": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Packages or plans side by side with what each includes. Only real prices the business gives you.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "pricing"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Simple, honest prices"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 4,
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "maxLength": 60
                              },
                              "price": {
                                "type": "string",
                                "maxLength": 30
                              },
                              "annualPrice": {
                                "type": "string",
                                "maxLength": 30
                              },
                              "period": {
                                "type": "string",
                                "maxLength": 30
                              },
                              "description": {
                                "type": "string",
                                "maxLength": 300
                              },
                              "features": {
                                "type": "string",
                                "maxLength": 1500
                              },
                              "cta": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  "href": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                    "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                  },
                                  "newTab": {
                                    "type": "boolean"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "featured": {
                                "type": "boolean",
                                "default": false
                              },
                              "badge": {
                                "type": "string",
                                "maxLength": 30,
                                "default": "Most popular"
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "name": "Essential",
                              "price": "£0",
                              "period": "per month",
                              "description": "For getting started.",
                              "features": "Something included\nSomething else included",
                              "cta": {
                                "label": "Choose Essential",
                                "href": "/contact"
                              }
                            },
                            {
                              "name": "Standard",
                              "price": "£0",
                              "period": "per month",
                              "description": "The one most people choose.",
                              "features": "Everything in Essential\nSomething more",
                              "cta": {
                                "label": "Choose Standard",
                                "href": "/contact"
                              },
                              "featured": true
                            },
                            {
                              "name": "Complete",
                              "price": "£0",
                              "period": "per month",
                              "description": "For the full service.",
                              "features": "Everything in Standard\nThe extras",
                              "cta": {
                                "label": "Choose Complete",
                                "href": "/contact"
                              }
                            }
                          ]
                        },
                        "billingToggle": {
                          "type": "boolean",
                          "default": false
                        },
                        "monthlyLabel": {
                          "type": "string",
                          "maxLength": 30,
                          "default": "Monthly"
                        },
                        "annualLabel": {
                          "type": "string",
                          "maxLength": 30,
                          "default": "Annual"
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 200,
                          "default": "Prices include VAT."
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items",
                              "note"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "name",
                              "price",
                              "description",
                              "features",
                              "button"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "note": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "name": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "price": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "description": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "features": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "button": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Frequently asked questions that open and close. Also tells search engines about the questions.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "faq"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Questions people ask"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 30,
                          "items": {
                            "type": "object",
                            "properties": {
                              "question": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "answer": {
                                "type": "string",
                                "maxLength": 1500
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "question": "How do I get started?",
                              "answer": "Get in touch and we will arrange a short call to understand what you need."
                            },
                            {
                              "question": "Which areas do you cover?",
                              "answer": "Say where you work and how far you travel."
                            },
                            {
                              "question": "How much does it cost?",
                              "answer": "Explain how you price your work, or point people to your prices page."
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "list",
                            "two-columns",
                            "intro-aside"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "question",
                              "answer"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "question": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "answer": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A contact form that emails the business, with spam protection, plus contact details alongside.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "contact"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Get in touch"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": "Tell us a little about what you need and we will get back to you."
                        },
                        "showPhone": {
                          "type": "boolean",
                          "default": true
                        },
                        "showCompany": {
                          "type": "boolean",
                          "default": false
                        },
                        "showMessage": {
                          "type": "boolean",
                          "default": true
                        },
                        "messageLabel": {
                          "type": "string",
                          "maxLength": 60,
                          "default": ""
                        },
                        "questions": {
                          "type": "array",
                          "maxItems": 15,
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "text",
                                  "textarea",
                                  "number",
                                  "date",
                                  "tel",
                                  "choice",
                                  "choices",
                                  "select"
                                ],
                                "default": "text"
                              },
                              "options": {
                                "type": "string",
                                "maxLength": 1500
                              },
                              "dates": {
                                "type": "string",
                                "enum": [
                                  "any",
                                  "today",
                                  "after",
                                  "weekdays"
                                ],
                                "default": "any"
                              },
                              "required": {
                                "type": "boolean",
                                "default": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": []
                        },
                        "formName": {
                          "type": "string",
                          "maxLength": 80,
                          "default": ""
                        },
                        "submitLabel": {
                          "type": "string",
                          "maxLength": 40,
                          "default": "Send message"
                        },
                        "successMessage": {
                          "type": "string",
                          "maxLength": 200,
                          "default": "Thank you. We will be in touch soon."
                        },
                        "consentText": {
                          "type": "string",
                          "maxLength": 400,
                          "default": "We only use your details to reply to your message."
                        },
                        "consentLink": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "Read our privacy policy",
                            "href": "/privacy"
                          }
                        },
                        "acknowledge": {
                          "type": "boolean",
                          "default": false
                        },
                        "consentRequired": {
                          "type": "boolean",
                          "default": false
                        },
                        "formColumns": {
                          "type": "string",
                          "enum": [
                            "1",
                            "2"
                          ],
                          "default": "1"
                        },
                        "showDetails": {
                          "type": "boolean",
                          "default": true
                        },
                        "image": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "email": {
                          "type": "string",
                          "maxLength": 255,
                          "default": "your@email.com"
                        },
                        "phone": {
                          "type": "string",
                          "maxLength": 40,
                          "default": "01234 567890"
                        },
                        "address": {
                          "type": "string",
                          "maxLength": 300,
                          "default": "1 Example Street, Anytown, AB1 2CD"
                        },
                        "hours": {
                          "type": "string",
                          "maxLength": 300,
                          "default": ""
                        },
                        "createTask": {
                          "type": "boolean",
                          "default": false
                        },
                        "taskProject": {
                          "type": "string",
                          "maxLength": 64,
                          "pattern": "^(?:|[\\w-]{1,64})$"
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "aside-right",
                            "aside-left",
                            "stacked"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "body"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "body": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A short, bold prompt to take the next step, with one or two buttons. Often the last section on a page.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "cta"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Ready when you are"
                        },
                        "text": {
                          "type": "string",
                          "maxLength": 400,
                          "default": "Tell us what you need and we will come back to you within one working day."
                        },
                        "primary": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "Get in touch",
                            "href": "/contact"
                          }
                        },
                        "secondary": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "",
                            "href": ""
                          }
                        },
                        "style": {
                          "type": "string",
                          "enum": [
                            "card",
                            "band",
                            "split"
                          ],
                          "default": "card"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "card",
                            "band",
                            "split"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "heading",
                              "text",
                              "buttons"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "buttons": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "anyOf": [
                            {
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "heading",
                                  "text",
                                  "buttons"
                                ]
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A row of client, partner or accreditation logos.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "logo-bar"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 120,
                          "default": "Trusted by"
                        },
                        "mono": {
                          "type": "boolean",
                          "default": true
                        },
                        "scroll": {
                          "type": "boolean",
                          "default": false
                        },
                        "style": {
                          "type": "string",
                          "enum": [
                            "row",
                            "tiles"
                          ],
                          "default": "row"
                        },
                        "tileColumns": {
                          "type": "string",
                          "enum": [
                            "4",
                            "5",
                            "6"
                          ],
                          "default": "6"
                        },
                        "fade": {
                          "type": "boolean",
                          "default": false
                        },
                        "link": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 48,
                          "items": {
                            "type": "object",
                            "properties": {
                              "image": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "name": {
                                "type": "string",
                                "maxLength": 80
                              },
                              "href": {
                                "type": "string",
                                "maxLength": 255
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "name": "Company A"
                            },
                            {
                              "name": "Company B"
                            },
                            {
                              "name": "Company C"
                            },
                            {
                              "name": "Company D"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "heading",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "logo"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "logo": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A numbered process: how working with the business goes, from first contact to finish.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "steps"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "How it works"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 6,
                          "items": {
                            "type": "object",
                            "properties": {
                              "title": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 400
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "title": "Get in touch",
                              "text": "Tell us what you need."
                            },
                            {
                              "title": "Agree a plan",
                              "text": "We confirm the work, the price and the dates."
                            },
                            {
                              "title": "Job done",
                              "text": "We do the work and check you are happy."
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "columns",
                            "list"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "title",
                              "text"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "title": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "The page’s name as a plain heading, with an optional line under it. For pages that open without a picture.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "page-title"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Page title"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 400,
                          "default": ""
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Free-form text with headings, lists, quotes and links. Use for policies, longer explanations and anything that does not fit another block.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "rich-text"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "content": {
                          "oneOf": [
                            {
                              "type": "string",
                              "maxLength": 20000,
                              "description": "Plain text convenience form; converted to Tiptap JSON."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "doc"
                                },
                                "content": {
                                  "type": "array",
                                  "maxItems": 500,
                                  "items": {
                                    "$ref": "#/$defs/richNode"
                                  }
                                }
                              },
                              "required": [
                                "type"
                              ],
                              "additionalProperties": false
                            }
                          ],
                          "default": {
                            "type": "doc",
                            "content": [
                              {
                                "type": "heading",
                                "attrs": {
                                  "level": 2
                                },
                                "content": [
                                  {
                                    "type": "text",
                                    "text": "A heading"
                                  }
                                ]
                              },
                              {
                                "type": "paragraph",
                                "content": [
                                  {
                                    "type": "text",
                                    "text": "Write as much or as little as you need here."
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        "docStyle": {
                          "type": "string",
                          "enum": [
                            "plain",
                            "card",
                            "contents",
                            "numbered",
                            "accordion"
                          ],
                          "default": "plain"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "The newest posts from the site blog (or news page), updating by itself as posts are published.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "blog-latest"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Latest news"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "count": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 12,
                          "default": 3
                        },
                        "showExcerpt": {
                          "type": "boolean",
                          "default": true
                        },
                        "linkLabel": {
                          "type": "string",
                          "maxLength": 60,
                          "default": "See all posts"
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "featured"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items",
                              "all"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "media",
                              "meta",
                              "title",
                              "excerpt"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "all": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "media": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "meta": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "title": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "excerpt": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A live countdown to a launch, sale or event.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "countdown"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Something is coming"
                        },
                        "text": {
                          "type": "string",
                          "maxLength": 300,
                          "default": ""
                        },
                        "target": {
                          "anyOf": [
                            {
                              "const": ""
                            },
                            {
                              "type": "string",
                              "format": "date-time"
                            }
                          ]
                        },
                        "finishedText": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "It is here."
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "One large quotation with who said it. Good for a founder statement or a standout line from a customer.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "quote"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "quote": {
                          "type": "string",
                          "maxLength": 600,
                          "default": "Add a line worth reading twice."
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 80,
                          "default": "User A"
                        },
                        "role": {
                          "type": "string",
                          "maxLength": 100,
                          "default": "Founder, Your Company"
                        },
                        "photo": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "size": {
                          "type": "string",
                          "enum": [
                            "medium",
                            "large"
                          ],
                          "default": "large"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "quote",
                              "person"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "quote": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "person": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Moments in order, each with a date, a title and a sentence. Good for your history or how a project runs.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "timeline"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Our story so far"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 16,
                          "items": {
                            "type": "object",
                            "properties": {
                              "date": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "title": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "date": "Year one",
                              "title": "Where it started",
                              "text": "Say how the business began."
                            },
                            {
                              "date": "Year two",
                              "title": "A milestone",
                              "text": "Something that changed things."
                            },
                            {
                              "date": "Today",
                              "title": "Where we are now",
                              "text": "What you do and who for."
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "date",
                              "title",
                              "text"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "date": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "title": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Your opening times day by day, with a note for holidays and optional address and phone number.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "hours"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Opening hours"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 14,
                          "items": {
                            "type": "object",
                            "properties": {
                              "day": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "hours": {
                                "type": "string",
                                "maxLength": 60
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "day": "Monday to Friday",
                              "hours": "09:00 to 17:30"
                            },
                            {
                              "day": "Saturday",
                              "hours": "10:00 to 16:00"
                            },
                            {
                              "day": "Sunday",
                              "hours": "Closed"
                            }
                          ]
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 300,
                          "default": "Bank holiday hours may differ."
                        },
                        "address": {
                          "type": "string",
                          "maxLength": 300,
                          "default": ""
                        },
                        "phone": {
                          "type": "string",
                          "maxLength": 40,
                          "default": ""
                        },
                        "liveStatus": {
                          "type": "boolean",
                          "default": false
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "card",
                              "details"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "heading",
                              "days",
                              "note"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "card": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "details": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "days": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "note": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A weekly schedule of sessions, such as classes, clinics, surgery hours or course times, by day with times, filters by category and today marked.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "timetable"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Timetable"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "list",
                            "agenda"
                          ],
                          "default": "grid"
                        },
                        "showFilters": {
                          "type": "boolean",
                          "default": false
                        },
                        "highlightToday": {
                          "type": "boolean",
                          "default": true
                        },
                        "sessions": {
                          "type": "array",
                          "maxItems": 80,
                          "items": {
                            "type": "object",
                            "properties": {
                              "day": {
                                "type": "string",
                                "enum": [
                                  "mon",
                                  "tue",
                                  "wed",
                                  "thu",
                                  "fri",
                                  "sat",
                                  "sun"
                                ],
                                "default": "mon"
                              },
                              "start": {
                                "type": "string",
                                "maxLength": 5
                              },
                              "end": {
                                "type": "string",
                                "maxLength": 5
                              },
                              "title": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "detail": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "category": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "link": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  "href": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                    "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                  },
                                  "newTab": {
                                    "type": "boolean"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "day": "mon",
                              "start": "09:00",
                              "end": "10:00",
                              "title": "Session A",
                              "detail": "Room 1",
                              "category": "Category A"
                            },
                            {
                              "day": "mon",
                              "start": "18:00",
                              "end": "19:00",
                              "title": "Session B",
                              "detail": "Room 2",
                              "category": "Category B"
                            },
                            {
                              "day": "tue",
                              "start": "07:00",
                              "end": "08:00",
                              "title": "Session C",
                              "detail": "Room 1",
                              "category": "Category A"
                            },
                            {
                              "day": "wed",
                              "start": "12:30",
                              "end": "13:15",
                              "title": "Session A",
                              "detail": "Room 1",
                              "category": "Category A"
                            },
                            {
                              "day": "thu",
                              "start": "18:00",
                              "end": "19:00",
                              "title": "Session B",
                              "detail": "Room 2",
                              "category": "Category B"
                            },
                            {
                              "day": "fri",
                              "start": "09:00",
                              "end": "10:00",
                              "title": "Session C",
                              "detail": "Room 1",
                              "category": "Category A"
                            },
                            {
                              "day": "sat",
                              "start": "10:00",
                              "end": "11:00",
                              "title": "Session A",
                              "detail": "Room 2",
                              "category": "Category A"
                            }
                          ]
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 300,
                          "default": "Times may change on bank holidays."
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "list",
                            "agenda"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "filters",
                              "items",
                              "note"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "filters": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "note": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Items with a short description and a price, like a menu or a list of treatments. Prices come from the business, never from AI.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "price-list"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Prices"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "1",
                            "2"
                          ],
                          "default": "1"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 40,
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "description": {
                                "type": "string",
                                "maxLength": 300
                              },
                              "price": {
                                "type": "string",
                                "maxLength": 30
                              },
                              "tag": {
                                "type": "string",
                                "maxLength": 30
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "name": "Item one",
                              "description": "A short description.",
                              "price": "£00"
                            },
                            {
                              "name": "Item two",
                              "description": "A short description.",
                              "price": "£00"
                            },
                            {
                              "name": "Item three",
                              "description": "A short description.",
                              "price": "£00"
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "name",
                              "tag",
                              "price",
                              "description"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "name": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "tag": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "price": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "description": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Features down the side and two or three options across the top, with ticks, crosses or short text.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "comparison"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Compare the options"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "colA": {
                          "type": "string",
                          "maxLength": 40,
                          "default": "Option A"
                        },
                        "colB": {
                          "type": "string",
                          "maxLength": 40,
                          "default": "Option B"
                        },
                        "colC": {
                          "type": "string",
                          "maxLength": 40,
                          "default": ""
                        },
                        "highlight": {
                          "type": "string",
                          "enum": [
                            "none",
                            "a",
                            "b",
                            "c"
                          ],
                          "default": "b"
                        },
                        "rows": {
                          "type": "array",
                          "maxItems": 30,
                          "items": {
                            "type": "object",
                            "properties": {
                              "feature": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "a": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "b": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "c": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "feature": "Something included",
                              "a": "yes",
                              "b": "yes",
                              "c": ""
                            },
                            {
                              "feature": "Something extra",
                              "a": "no",
                              "b": "yes",
                              "c": ""
                            },
                            {
                              "feature": "How often",
                              "a": "Monthly",
                              "b": "Weekly",
                              "c": ""
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "feature",
                              "a",
                              "b",
                              "c"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "feature": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "a": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "b": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "c": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A tidy list of ticked points in one or two columns. Good for what is included or who you work with.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "checklist"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "What is included"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "1",
                            "2",
                            "3"
                          ],
                          "default": "2"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 30,
                          "items": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "maxLength": 160
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "text": "A first point"
                            },
                            {
                              "text": "A second point"
                            },
                            {
                              "text": "A third point"
                            },
                            {
                              "text": "A fourth point"
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "icon",
                              "text"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "icon": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "An important message in a coloured box: a closure, a new service or what to do in an emergency.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "notice"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "info",
                            "success",
                            "warning",
                            "urgent"
                          ],
                          "default": "info"
                        },
                        "icon": {
                          "type": "string",
                          "maxLength": 60,
                          "default": "info"
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "An important notice"
                        },
                        "text": {
                          "type": "string",
                          "maxLength": 600,
                          "default": "Add the details here, such as the dates and what visitors should do."
                        },
                        "link": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "Find out more",
                            "href": "/contact"
                          }
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "card",
                            "band"
                          ],
                          "default": "card"
                        },
                        "dismissible": {
                          "type": "boolean",
                          "default": false
                        },
                        "showFrom": {
                          "anyOf": [
                            {
                              "const": ""
                            },
                            {
                              "type": "string",
                              "format": "date-time"
                            }
                          ]
                        },
                        "showUntil": {
                          "anyOf": [
                            {
                              "const": ""
                            },
                            {
                              "type": "string",
                              "format": "date-time"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "card",
                            "band"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "icon",
                              "heading",
                              "text",
                              "link"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "icon": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "const": ""
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "link": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A slim strip with one line of text and a button. Good for an offer, an event or news.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "banner"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "text": {
                          "type": "string",
                          "maxLength": 200,
                          "default": "Booking now for the spring. Places are limited."
                        },
                        "primary": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "Book now",
                            "href": "/contact"
                          }
                        },
                        "icon": {
                          "type": "string",
                          "maxLength": 60,
                          "default": "sparkles"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "inline",
                            "centred",
                            "stacked"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "icon",
                              "text",
                              "button"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "icon": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "const": ""
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "text": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "button": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "const": ""
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "anyOf": [
                            {
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "icon",
                                  "text",
                                  "button"
                                ]
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Buttons to your social profiles, so visitors can follow you.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "social"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Follow us"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 10,
                          "items": {
                            "type": "object",
                            "properties": {
                              "network": {
                                "type": "string",
                                "enum": [
                                  "Instagram",
                                  "Facebook",
                                  "LinkedIn",
                                  "X",
                                  "YouTube",
                                  "TikTok",
                                  "Pinterest",
                                  "Threads",
                                  "Bluesky",
                                  "Website"
                                ],
                                "default": "Instagram"
                              },
                              "url": {
                                "type": "string",
                                "maxLength": 255
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "network": "Instagram",
                              "url": ""
                            },
                            {
                              "network": "Facebook",
                              "url": ""
                            },
                            {
                              "network": "LinkedIn",
                              "url": ""
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "itemOrder": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "profile"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            },
                            "profile": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A short form that collects email addresses for your mailing list, with spam protection. Sign-ups are kept under Subscribers, ready to export.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "signup"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Hear from us"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": "News and offers, now and then. Never shared."
                        },
                        "askName": {
                          "type": "boolean",
                          "default": false
                        },
                        "formName": {
                          "type": "string",
                          "maxLength": 80,
                          "default": ""
                        },
                        "submitLabel": {
                          "type": "string",
                          "maxLength": 40,
                          "default": "Sign up"
                        },
                        "successMessage": {
                          "type": "string",
                          "maxLength": 200,
                          "default": "Thank you. You are on the list."
                        },
                        "consentText": {
                          "type": "string",
                          "maxLength": 400,
                          "default": "We will only email you about Your Company. Unsubscribe at any time."
                        },
                        "consentLink": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "Read our privacy policy",
                            "href": "/privacy"
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "split"
                          ]
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "heading",
                              "intro",
                              "form"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "form": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Tabbed panels, each with a heading, text, ticked points, a picture and a button. Good for kinds of customer, treatment areas or levels of service side by side.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "tabs"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Find what fits you"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "style": {
                          "type": "string",
                          "enum": [
                            "underline",
                            "pills",
                            "vertical"
                          ],
                          "default": "underline"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 8,
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "maxLength": 40
                              },
                              "icon": {
                                "type": "string",
                                "maxLength": 60,
                                "default": ""
                              },
                              "heading": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "body": {
                                "oneOf": [
                                  {
                                    "type": "string",
                                    "maxLength": 20000,
                                    "description": "Plain text convenience form; converted to Tiptap JSON."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "const": "doc"
                                      },
                                      "content": {
                                        "type": "array",
                                        "maxItems": 500,
                                        "items": {
                                          "$ref": "#/$defs/richNode"
                                        }
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "points": {
                                "type": "string",
                                "maxLength": 1200
                              },
                              "image": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "link": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  "href": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                    "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                  },
                                  "newTab": {
                                    "type": "boolean"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "label": "First group",
                              "heading": "For your first kind of customer",
                              "body": {
                                "type": "doc",
                                "content": [
                                  {
                                    "type": "paragraph",
                                    "content": [
                                      {
                                        "type": "text",
                                        "text": "Say who this is for and what you do for them."
                                      }
                                    ]
                                  }
                                ]
                              },
                              "points": "Something included\nSomething else included",
                              "link": {
                                "label": "Ask about this",
                                "href": "/contact"
                              }
                            },
                            {
                              "label": "Second group",
                              "heading": "For your second kind of customer",
                              "body": {
                                "type": "doc",
                                "content": [
                                  {
                                    "type": "paragraph",
                                    "content": [
                                      {
                                        "type": "text",
                                        "text": "Say who this is for and what you do for them."
                                      }
                                    ]
                                  }
                                ]
                              },
                              "points": "Something included\nSomething else included",
                              "link": {
                                "label": "Ask about this",
                                "href": "/contact"
                              }
                            },
                            {
                              "label": "Third group",
                              "heading": "For your third kind of customer",
                              "body": {
                                "type": "doc",
                                "content": [
                                  {
                                    "type": "paragraph",
                                    "content": [
                                      {
                                        "type": "text",
                                        "text": "Say who this is for and what you do for them."
                                      }
                                    ]
                                  }
                                ]
                              },
                              "points": "Something included\nSomething else included",
                              "link": {
                                "label": "Ask about this",
                                "href": "/contact"
                              }
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A price estimator: visitors choose options, see a running total and send it with an enquiry. Only real prices the business gives you.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "calculator"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Work out a price"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": "Choose what you need to see an estimate."
                        },
                        "baseLabel": {
                          "type": "string",
                          "maxLength": 80,
                          "default": "Starting price"
                        },
                        "baseAmount": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1000000,
                          "default": 0
                        },
                        "period": {
                          "type": "string",
                          "enum": [
                            "one-off",
                            "month",
                            "year"
                          ],
                          "default": "one-off"
                        },
                        "groups": {
                          "type": "array",
                          "maxItems": 8,
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "one",
                                  "several",
                                  "quantity"
                                ],
                                "default": "one"
                              },
                              "options": {
                                "type": "string",
                                "maxLength": 2000
                              },
                              "required": {
                                "type": "boolean",
                                "default": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "label": "First question",
                              "kind": "one",
                              "options": "Option A | 00\nOption B | 00\nOption C | 00",
                              "required": true
                            },
                            {
                              "label": "Extras",
                              "kind": "several",
                              "options": "Extra A | 00\nExtra B | 00"
                            },
                            {
                              "label": "How many",
                              "kind": "quantity",
                              "options": "Item A | 00"
                            }
                          ]
                        },
                        "vatNote": {
                          "type": "string",
                          "maxLength": 120,
                          "default": "Prices include VAT."
                        },
                        "disclaimer": {
                          "type": "string",
                          "maxLength": 300,
                          "default": "An estimate only. We confirm the price before any work starts."
                        },
                        "cta": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "Send me this estimate",
                            "href": "/contact"
                          }
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A grid of mixed-size cards: words, pictures, a big figure or an icon. Good for an overview of what you offer at a glance.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "bento"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Everything in one place"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "gap": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 12,
                          "items": {
                            "type": "object",
                            "properties": {
                              "size": {
                                "type": "string",
                                "enum": [
                                  "small",
                                  "wide",
                                  "tall",
                                  "large"
                                ],
                                "default": "small"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "text",
                                  "image",
                                  "stat",
                                  "icon"
                                ],
                                "default": "text"
                              },
                              "tone": {
                                "type": "string",
                                "enum": [
                                  "surface",
                                  "primary",
                                  "accent",
                                  "dark",
                                  "image"
                                ],
                                "default": "surface"
                              },
                              "icon": {
                                "type": "string",
                                "maxLength": 60,
                                "default": "sparkles"
                              },
                              "title": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 300
                              },
                              "image": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "type": "string",
                                        "maxLength": 36,
                                        "pattern": "^[0-9a-fA-F-]{36}$"
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "assetId"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An existing image asset in this workspace."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "data": {
                                        "type": "string",
                                        "maxLength": 70000000,
                                        "contentEncoding": "base64"
                                      },
                                      "filename": {
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "data",
                                      "filename"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An image uploaded as base64 data."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "placeholder": {
                                        "const": true
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "placeholder"
                                    ],
                                    "additionalProperties": false,
                                    "description": "An empty image slot. No image is uploaded."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "assetId": {
                                        "const": ""
                                      },
                                      "alt": {
                                        "type": "string",
                                        "maxLength": 300
                                      }
                                    },
                                    "additionalProperties": false,
                                    "description": "No image: an empty object, or an empty assetId."
                                  }
                                ]
                              },
                              "link": {
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  "href": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                    "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                  },
                                  "newTab": {
                                    "type": "boolean"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "size": "large",
                              "kind": "text",
                              "tone": "primary",
                              "title": "The main thing you do",
                              "text": "A sentence or two about the service most people come to you for.",
                              "link": {
                                "label": "Find out more",
                                "href": "/contact"
                              }
                            },
                            {
                              "size": "small",
                              "kind": "stat",
                              "tone": "surface",
                              "title": "00",
                              "text": "A figure worth knowing"
                            },
                            {
                              "size": "tall",
                              "kind": "image",
                              "tone": "image",
                              "title": "A picture of your work",
                              "text": ""
                            },
                            {
                              "size": "small",
                              "kind": "icon",
                              "tone": "accent",
                              "icon": "clock",
                              "title": "Something useful",
                              "text": "A short line about it."
                            },
                            {
                              "size": "wide",
                              "kind": "text",
                              "tone": "dark",
                              "title": "Another reason to choose you",
                              "text": "Keep each card to one idea."
                            },
                            {
                              "size": "wide",
                              "kind": "icon",
                              "tone": "surface",
                              "icon": "phone",
                              "title": "Get in touch",
                              "text": "Say how people can reach you.",
                              "link": {
                                "label": "Contact us",
                                "href": "/contact"
                              }
                            }
                          ]
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "eyebrow",
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "eyebrow": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A slowly scrolling strip of short words or phrases, such as what a studio offers.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "marquee"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "maxItems": 16,
                          "items": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "maxLength": 60
                              },
                              "icon": {
                                "type": "string",
                                "maxLength": 60,
                                "default": ""
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "text": "First thing"
                            },
                            {
                              "text": "Second thing"
                            },
                            {
                              "text": "Third thing"
                            },
                            {
                              "text": "Fourth thing"
                            }
                          ]
                        },
                        "size": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "lg"
                        },
                        "speed": {
                          "type": "string",
                          "enum": [
                            "slow",
                            "medium",
                            "fast"
                          ],
                          "default": "slow"
                        },
                        "direction": {
                          "type": "string",
                          "enum": [
                            "left",
                            "right"
                          ],
                          "default": "left"
                        },
                        "separator": {
                          "type": "string",
                          "enum": [
                            "dot",
                            "star",
                            "slash",
                            "icon",
                            "none"
                          ],
                          "default": "dot"
                        },
                        "pauseOnHover": {
                          "type": "boolean",
                          "default": true
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Documents visitors can download, such as a price list, a brochure or a form, each with its type and size.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "downloads"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Downloads"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "list",
                            "cards"
                          ],
                          "default": "list"
                        },
                        "showDetails": {
                          "type": "boolean",
                          "default": true
                        },
                        "buttonLabel": {
                          "type": "string",
                          "maxLength": 40,
                          "default": "Download"
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 30,
                          "items": {
                            "type": "object",
                            "properties": {
                              "file": {
                                "type": "string",
                                "maxLength": 41,
                                "pattern": "^(?:|file:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                "description": "file:<id> of a document (PDF, Word, Excel, PowerPoint, ZIP, CSV or text) in this workspace's media library, or empty."
                              },
                              "label": {
                                "type": "string",
                                "maxLength": 120
                              },
                              "description": {
                                "type": "string",
                                "maxLength": 300
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": []
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "heading",
                              "intro",
                              "items"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "heading": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            },
                            "intro": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "items": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "const": ""
                                },
                                "size": {
                                  "const": ""
                                },
                                "tone": {
                                  "const": ""
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "const": ""
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Your own HTML, such as a booking widget or a third-party embed. It runs in a sealed frame so it cannot reach the rest of the page.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "custom-code"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": "string",
                          "maxLength": 120,
                          "default": "Embedded content"
                        },
                        "html": {
                          "type": "string",
                          "maxLength": 50000,
                          "default": ""
                        },
                        "height": {
                          "type": "integer",
                          "minimum": 40,
                          "maximum": 3000,
                          "default": 320
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Extra vertical space between sections.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "spacer"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "size": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A line to separate content.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "divider"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "style": {
                          "type": "string",
                          "enum": [
                            "line",
                            "thick",
                            "dots"
                          ],
                          "default": "line"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Build your own section: one to four columns, each with headings, text, buttons, images and more, in any order.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "columns"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "ratio": {
                          "type": "string",
                          "enum": [
                            "equal",
                            "2-1",
                            "1-2",
                            "1-1-2",
                            "2-1-1",
                            "1-2-1"
                          ],
                          "default": "equal"
                        },
                        "gap": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "valign": {
                          "type": "string",
                          "enum": [
                            "top",
                            "center",
                            "bottom"
                          ],
                          "default": "top"
                        },
                        "stack": {
                          "type": "boolean",
                          "default": true
                        },
                        "phoneOrder": {
                          "type": "string",
                          "enum": [
                            "normal",
                            "reverse"
                          ],
                          "default": "normal"
                        },
                        "columns": {
                          "type": "array",
                          "maxItems": 4,
                          "items": {
                            "type": "object",
                            "properties": {
                              "items": {
                                "type": "array",
                                "maxItems": 12,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "heading",
                                        "text",
                                        "richtext",
                                        "button",
                                        "image",
                                        "ticks",
                                        "icon",
                                        "spacer",
                                        "divider",
                                        "video"
                                      ],
                                      "default": "text"
                                    },
                                    "text": {
                                      "type": "string",
                                      "maxLength": 1000
                                    },
                                    "level": {
                                      "type": "string",
                                      "enum": [
                                        "h2",
                                        "h3",
                                        "h4"
                                      ],
                                      "default": "h2"
                                    },
                                    "body": {
                                      "oneOf": [
                                        {
                                          "type": "string",
                                          "maxLength": 20000,
                                          "description": "Plain text convenience form; converted to Tiptap JSON."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "const": "doc"
                                            },
                                            "content": {
                                              "type": "array",
                                              "maxItems": 500,
                                              "items": {
                                                "$ref": "#/$defs/richNode"
                                              }
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "link": {
                                      "type": "object",
                                      "properties": {
                                        "label": {
                                          "type": "string",
                                          "maxLength": 80
                                        },
                                        "href": {
                                          "type": "string",
                                          "maxLength": 255,
                                          "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                                          "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                                        },
                                        "newTab": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    },
                                    "buttonStyle": {
                                      "type": "string",
                                      "enum": [
                                        "primary",
                                        "secondary",
                                        "link"
                                      ],
                                      "default": "primary"
                                    },
                                    "image": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "assetId": {
                                              "type": "string",
                                              "maxLength": 36,
                                              "pattern": "^[0-9a-fA-F-]{36}$"
                                            },
                                            "alt": {
                                              "type": "string",
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "assetId"
                                          ],
                                          "additionalProperties": false,
                                          "description": "An existing image asset in this workspace."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "data": {
                                              "type": "string",
                                              "maxLength": 70000000,
                                              "contentEncoding": "base64"
                                            },
                                            "filename": {
                                              "type": "string",
                                              "maxLength": 255
                                            },
                                            "alt": {
                                              "type": "string",
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "data",
                                            "filename"
                                          ],
                                          "additionalProperties": false,
                                          "description": "An image uploaded as base64 data."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "placeholder": {
                                              "const": true
                                            },
                                            "alt": {
                                              "type": "string",
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "placeholder"
                                          ],
                                          "additionalProperties": false,
                                          "description": "An empty image slot. No image is uploaded."
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "assetId": {
                                              "const": ""
                                            },
                                            "alt": {
                                              "type": "string",
                                              "maxLength": 300
                                            }
                                          },
                                          "additionalProperties": false,
                                          "description": "No image: an empty object, or an empty assetId."
                                        }
                                      ]
                                    },
                                    "aspect": {
                                      "type": "string",
                                      "enum": [
                                        "auto",
                                        "wide",
                                        "square",
                                        "portrait"
                                      ],
                                      "default": "auto"
                                    },
                                    "rounded": {
                                      "type": "boolean",
                                      "default": true
                                    },
                                    "ticks": {
                                      "type": "array",
                                      "maxItems": 12,
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "text": {
                                            "type": "string",
                                            "maxLength": 160
                                          },
                                          "_id": {
                                            "type": "string",
                                            "maxLength": 40
                                          }
                                        },
                                        "additionalProperties": false
                                      },
                                      "default": []
                                    },
                                    "icon": {
                                      "type": "string",
                                      "maxLength": 60,
                                      "default": "sparkles"
                                    },
                                    "gap": {
                                      "type": "string",
                                      "enum": [
                                        "sm",
                                        "md",
                                        "lg"
                                      ],
                                      "default": "md"
                                    },
                                    "url": {
                                      "type": "string",
                                      "maxLength": 255
                                    },
                                    "hidden": {
                                      "type": "boolean",
                                      "default": false
                                    },
                                    "align": {
                                      "type": "string",
                                      "enum": [
                                        "",
                                        "left",
                                        "center",
                                        "right"
                                      ],
                                      "default": ""
                                    },
                                    "size": {
                                      "type": "string",
                                      "enum": [
                                        "",
                                        "sm",
                                        "md",
                                        "lg",
                                        "xl",
                                        "xxl"
                                      ],
                                      "default": ""
                                    },
                                    "tone": {
                                      "type": "string",
                                      "enum": [
                                        "",
                                        "muted",
                                        "primary",
                                        "accent"
                                      ],
                                      "default": ""
                                    },
                                    "spaceAfter": {
                                      "type": "string",
                                      "enum": [
                                        "",
                                        "none",
                                        "sm",
                                        "md",
                                        "lg"
                                      ],
                                      "default": ""
                                    },
                                    "hideOn": {
                                      "type": "string",
                                      "enum": [
                                        "none",
                                        "mobile",
                                        "desktop",
                                        "tablet",
                                        "wide",
                                        "mobile-tablet",
                                        "mobile-wide"
                                      ],
                                      "default": "none"
                                    },
                                    "font": {
                                      "type": "string",
                                      "enum": [
                                        "",
                                        "heading",
                                        "body",
                                        "accent"
                                      ],
                                      "default": ""
                                    },
                                    "_id": {
                                      "type": "string",
                                      "maxLength": 40
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "default": []
                              },
                              "_id": {
                                "type": "string",
                                "maxLength": 40
                              }
                            },
                            "additionalProperties": false
                          },
                          "default": [
                            {
                              "items": [
                                {
                                  "kind": "heading",
                                  "text": "Make it your own",
                                  "level": "h2"
                                },
                                {
                                  "kind": "text",
                                  "text": "Put headings, text, buttons and images in any order, in up to four columns."
                                },
                                {
                                  "kind": "button",
                                  "link": {
                                    "label": "Get in touch",
                                    "href": "/contact"
                                  }
                                }
                              ]
                            },
                            {
                              "items": [
                                {
                                  "kind": "image",
                                  "aspect": "wide"
                                }
                              ]
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "preset": {
                          "type": "null"
                        },
                        "order": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "columns"
                            ]
                          }
                        },
                        "elements": {
                          "type": "object",
                          "properties": {
                            "columns": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "patternProperties": {
                            "^columns\\.\\d+\\.items\\.\\d+$": {
                              "type": "object",
                              "properties": {
                                "hidden": {
                                  "type": "boolean"
                                },
                                "align": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "left",
                                    "center",
                                    "right"
                                  ]
                                },
                                "size": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "sm",
                                    "md",
                                    "lg",
                                    "xl",
                                    "xxl"
                                  ]
                                },
                                "tone": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "muted",
                                    "primary",
                                    "accent"
                                  ]
                                },
                                "spaceAfter": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "none",
                                    "sm",
                                    "md",
                                    "lg"
                                  ]
                                },
                                "hideOn": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "mobile",
                                    "desktop",
                                    "tablet",
                                    "wide",
                                    "mobile-tablet",
                                    "mobile-wide"
                                  ]
                                },
                                "font": {
                                  "type": "string",
                                  "enum": [
                                    "",
                                    "heading",
                                    "body",
                                    "accent"
                                  ]
                                },
                                "group": {
                                  "type": "string",
                                  "maxLength": 16,
                                  "pattern": "^(?:|g[a-z0-9]{4,16})$"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "mobileOrder": {
                          "type": "null"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A link to the shop basket showing how many items are in it. With the slide-in basket it opens it. Needs your own shop.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "shop-basket"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "maxLength": 30,
                          "default": "Basket"
                        },
                        "showCount": {
                          "type": "boolean",
                          "default": true
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Products from your catalogue: featured, newest, on offer, from a category or a collection, or ones you choose. With prices, and a quick add to basket when the shop is on.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "product-grid"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Featured products"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "featured",
                            "category",
                            "tag",
                            "offers",
                            "newest",
                            "chosen"
                          ],
                          "default": "featured"
                        },
                        "category": {
                          "type": "string",
                          "maxLength": 36,
                          "pattern": "^(?:|[0-9a-fA-F-]{36})$",
                          "description": "The id of one of this website's own catalogue items or categories, or empty."
                        },
                        "tag": {
                          "type": "string",
                          "maxLength": 60,
                          "pattern": "^(?:|[a-z0-9-]{1,60})$",
                          "description": "The slug of one of this website's catalogue tags, or empty."
                        },
                        "items": {
                          "type": "array",
                          "maxItems": 24,
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "maxLength": 36,
                            "pattern": "^[0-9a-fA-F-]{36}$"
                          }
                        },
                        "count": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 24,
                          "default": 8
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "2",
                            "3",
                            "4"
                          ],
                          "default": "4"
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "carousel"
                          ],
                          "default": "grid"
                        },
                        "quickAdd": {
                          "type": "boolean",
                          "default": true
                        },
                        "link": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "href": {
                              "type": "string",
                              "maxLength": 255,
                              "pattern": "^(?:(?!catalogue:).*|catalogue:(?:category|item):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
                              "description": "An https address, a path on this website such as /contact, mailto:, tel:, an #anchor, or catalogue:category:<id> / catalogue:item:<id> for one of this website's product categories or products (it follows the address if that changes)."
                            },
                            "newTab": {
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false,
                          "default": {
                            "label": "View all",
                            "href": ""
                          }
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "One product, large: its picture beside your words, its price and a button to buy it or see it.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "product-spotlight"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "item": {
                          "type": "string",
                          "maxLength": 36,
                          "pattern": "^(?:|[0-9a-fA-F-]{36})$",
                          "description": "The id of one of this website's own catalogue items or categories, or empty."
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "image-left",
                            "image-right"
                          ],
                          "default": "image-left"
                        },
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": ""
                        },
                        "text": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "showFeatures": {
                          "type": "boolean",
                          "default": true
                        },
                        "buttonLabel": {
                          "type": "string",
                          "maxLength": 30,
                          "default": "Add to basket"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Your product categories as picture tiles, cards or circles, each linking to its page.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "category-tiles"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Shop by category"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "top",
                            "children",
                            "chosen"
                          ],
                          "default": "top"
                        },
                        "parent": {
                          "type": "string",
                          "maxLength": 36,
                          "pattern": "^(?:|[0-9a-fA-F-]{36})$",
                          "description": "The id of one of this website's own catalogue items or categories, or empty."
                        },
                        "categories": {
                          "type": "array",
                          "maxItems": 24,
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "maxLength": 36,
                            "pattern": "^[0-9a-fA-F-]{36}$"
                          }
                        },
                        "style": {
                          "type": "string",
                          "enum": [
                            "tiles",
                            "cards",
                            "circles"
                          ],
                          "default": "tiles"
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "2",
                            "3",
                            "4",
                            "5",
                            "6"
                          ],
                          "default": "4"
                        },
                        "showCounts": {
                          "type": "boolean",
                          "default": true
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A search box for your products, with suggestions as people type.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "shop-search"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Find a product"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "placeholder": {
                          "type": "string",
                          "maxLength": 80,
                          "default": "Search by name, code or feature"
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "Products and prices from CubeERP, through CubeConnect. For your own shop, use the Shop blocks.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "products"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "eyebrow": {
                          "type": "string",
                          "maxLength": 60
                        },
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Shop"
                        },
                        "intro": {
                          "type": "string",
                          "maxLength": 600,
                          "default": ""
                        },
                        "columns": {
                          "type": "string",
                          "enum": [
                            "2",
                            "3",
                            "4"
                          ],
                          "default": "3"
                        },
                        "count": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 24,
                          "default": 6
                        },
                        "category": {},
                        "buttonLabel": {
                          "type": "string",
                          "maxLength": 30,
                          "default": "Add to basket"
                        },
                        "headLayout": {
                          "type": "string",
                          "enum": [
                            "stacked",
                            "beside"
                          ],
                          "default": "stacked"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "description": "A sign-in panel for your clients to raise and follow support requests in CubeMSP.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "type": {
                      "const": "client-portal"
                    },
                    "props": {
                      "type": "object",
                      "properties": {
                        "heading": {
                          "type": "string",
                          "maxLength": 160,
                          "default": "Already a client?"
                        },
                        "text": {
                          "type": "string",
                          "maxLength": 300,
                          "default": "Sign in to raise a support request and follow its progress."
                        },
                        "buttonLabel": {
                          "type": "string",
                          "maxLength": 40,
                          "default": "Open the client portal"
                        }
                      },
                      "additionalProperties": false
                    },
                    "style": {
                      "type": "object",
                      "properties": {
                        "tone": {
                          "type": "string",
                          "enum": [
                            "default",
                            "muted",
                            "brand",
                            "dark",
                            "image"
                          ],
                          "default": "default"
                        },
                        "backgroundImage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        "overlay": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 90,
                          "default": 45
                        },
                        "padding": {
                          "type": "string",
                          "enum": [
                            "none",
                            "sm",
                            "md",
                            "lg",
                            "xl"
                          ],
                          "default": "md"
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "narrow",
                            "normal",
                            "wide",
                            "full"
                          ],
                          "default": "normal"
                        },
                        "align": {
                          "type": "string",
                          "enum": [
                            "left",
                            "center"
                          ],
                          "default": "left"
                        },
                        "texture": {
                          "type": "string",
                          "enum": [
                            "none",
                            "grain",
                            "paper",
                            "dots",
                            "grid",
                            "diagonal",
                            "crosshatch",
                            "waves",
                            "rings",
                            "confetti"
                          ],
                          "default": "none"
                        },
                        "textureColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "text",
                            "background",
                            "dark"
                          ],
                          "default": "auto"
                        },
                        "textureOpacity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 40,
                          "default": 12
                        },
                        "textureScale": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "gradient": {
                          "type": "string",
                          "enum": [
                            "none",
                            "linear",
                            "radial",
                            "mesh"
                          ],
                          "default": "none"
                        },
                        "gradientFrom": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "primary"
                        },
                        "gradientTo": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "accent"
                        },
                        "gradientVia": {
                          "type": "string",
                          "enum": [
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "secondary"
                        },
                        "gradientDirection": {
                          "type": "string",
                          "enum": [
                            "down",
                            "right",
                            "diagonal",
                            "diagonal-up"
                          ],
                          "default": "down"
                        },
                        "gradientStrength": {
                          "type": "string",
                          "enum": [
                            "soft",
                            "full"
                          ],
                          "default": "soft"
                        },
                        "dividerTop": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerTopFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerTopHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerBottom": {
                          "type": "string",
                          "enum": [
                            "none",
                            "wave",
                            "slant",
                            "curve",
                            "arc",
                            "zigzag",
                            "torn"
                          ],
                          "default": "none"
                        },
                        "dividerBottomFlip": {
                          "type": "boolean",
                          "default": false
                        },
                        "dividerBottomHeight": {
                          "type": "string",
                          "enum": [
                            "sm",
                            "md",
                            "lg"
                          ],
                          "default": "md"
                        },
                        "dividerColour": {
                          "type": "string",
                          "enum": [
                            "auto",
                            "primary",
                            "secondary",
                            "accent",
                            "surface",
                            "dark",
                            "background"
                          ],
                          "default": "auto"
                        },
                        "surface": {
                          "type": "string",
                          "enum": [
                            "theme",
                            "outlined",
                            "flat",
                            "raised",
                            "glass",
                            "tinted",
                            "hard"
                          ],
                          "default": "theme"
                        },
                        "animate": {
                          "type": "string",
                          "enum": [
                            "none",
                            "fade-up",
                            "fade-in",
                            "slide-left",
                            "slide-right",
                            "zoom",
                            "unveil"
                          ],
                          "default": "none"
                        },
                        "animateItems": {
                          "type": "boolean",
                          "default": true
                        },
                        "animateSpeed": {
                          "type": "string",
                          "enum": [
                            "quick",
                            "normal",
                            "slow"
                          ],
                          "default": "normal"
                        },
                        "imageMotion": {
                          "type": "string",
                          "enum": [
                            "none",
                            "slow-zoom",
                            "parallax",
                            "hover-zoom"
                          ],
                          "default": "none"
                        },
                        "anchor": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "hideOn": {
                          "type": "string",
                          "enum": [
                            "none",
                            "mobile",
                            "desktop",
                            "tablet",
                            "wide",
                            "mobile-tablet",
                            "mobile-wide"
                          ],
                          "default": "none"
                        },
                        "group": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        },
                        "overrides": {
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string",
                            "enum": [
                              "tone",
                              "padding",
                              "width",
                              "align",
                              "texture",
                              "textureColour",
                              "textureOpacity",
                              "textureScale",
                              "gradient",
                              "gradientFrom",
                              "gradientTo",
                              "gradientVia",
                              "gradientDirection",
                              "gradientStrength",
                              "dividerTop",
                              "dividerTopFlip",
                              "dividerTopHeight",
                              "dividerBottom",
                              "dividerBottomFlip",
                              "dividerBottomHeight",
                              "dividerColour",
                              "surface",
                              "animate",
                              "animateItems",
                              "animateSpeed",
                              "imageMotion"
                            ]
                          }
                        },
                        "cardGroup": {
                          "type": "string",
                          "maxLength": 16,
                          "pattern": "^(?:|g[a-z0-9]{4,16})$"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          }
        },
        "required": [
          "title",
          "slug",
          "sections"
        ],
        "additionalProperties": false
      }
    },
    "posts": {
      "type": "array",
      "maxItems": 500,
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 191
          },
          "slug": {
            "type": "string",
            "maxLength": 191
          },
          "language": {
            "type": "string",
            "maxLength": 10
          },
          "excerpt": {
            "type": "string",
            "maxLength": 500
          },
          "content": {
            "oneOf": [
              {
                "type": "string",
                "maxLength": 20000,
                "description": "Plain text convenience form; converted to Tiptap JSON."
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "const": "doc"
                  },
                  "content": {
                    "type": "array",
                    "maxItems": 500,
                    "items": {
                      "$ref": "#/$defs/richNode"
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "additionalProperties": false
              }
            ]
          },
          "cover": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "assetId": {
                    "type": "string",
                    "maxLength": 36,
                    "pattern": "^[0-9a-fA-F-]{36}$"
                  },
                  "alt": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "required": [
                  "assetId"
                ],
                "additionalProperties": false,
                "description": "An existing image asset in this workspace."
              },
              {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 70000000,
                    "contentEncoding": "base64"
                  },
                  "filename": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "alt": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "required": [
                  "data",
                  "filename"
                ],
                "additionalProperties": false,
                "description": "An image uploaded as base64 data."
              },
              {
                "type": "object",
                "properties": {
                  "placeholder": {
                    "const": true
                  },
                  "alt": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "required": [
                  "placeholder"
                ],
                "additionalProperties": false,
                "description": "An empty image slot. No image is uploaded."
              },
              {
                "type": "object",
                "properties": {
                  "assetId": {
                    "const": ""
                  },
                  "alt": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "additionalProperties": false,
                "description": "No image: an empty object, or an empty assetId."
              }
            ]
          },
          "category": {
            "type": "string",
            "maxLength": 80
          },
          "authorName": {
            "type": "string",
            "maxLength": 120
          },
          "tags": {
            "type": "array",
            "maxItems": 20,
            "items": {
              "type": "string",
              "maxLength": 40
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "DRAFT",
              "PUBLISHED"
            ]
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "seo": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "maxLength": 120
              },
              "description": {
                "type": "string",
                "maxLength": 300
              },
              "aiSummary": {
                "type": "string",
                "maxLength": 600
              },
              "aiNotes": {
                "type": "string",
                "maxLength": 1200
              },
              "image": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "type": "string",
                        "maxLength": 36,
                        "pattern": "^[0-9a-fA-F-]{36}$"
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "assetId"
                    ],
                    "additionalProperties": false,
                    "description": "An existing image asset in this workspace."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 70000000,
                        "contentEncoding": "base64"
                      },
                      "filename": {
                        "type": "string",
                        "maxLength": 255
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "data",
                      "filename"
                    ],
                    "additionalProperties": false,
                    "description": "An image uploaded as base64 data."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "placeholder": {
                        "const": true
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "placeholder"
                    ],
                    "additionalProperties": false,
                    "description": "An empty image slot. No image is uploaded."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "const": ""
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "additionalProperties": false,
                    "description": "No image: an empty object, or an empty assetId."
                  }
                ]
              },
              "noindex": {
                "type": "boolean",
                "default": false
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "title",
          "content"
        ],
        "additionalProperties": false
      }
    },
    "redirects": {
      "type": "array",
      "maxItems": 2000,
      "items": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "maxLength": 2000
          },
          "to": {
            "type": "string",
            "maxLength": 1000,
            "description": "A path on this website or an https address. Required for 301 and 302; empty or left out for 410."
          },
          "status": {
            "type": "integer",
            "enum": [
              301,
              302,
              410
            ],
            "description": "301 moved permanently (the default), 302 moved temporarily, 410 gone for good (no target; visitors see the not-found page)."
          },
          "matchType": {
            "type": "string",
            "enum": [
              "EXACT",
              "PREFIX"
            ],
            "description": "EXACT (the default) answers this address only; PREFIX also answers every address under it, all sent to the same target."
          },
          "language": {
            "type": "string",
            "maxLength": 10
          }
        },
        "required": [
          "from"
        ],
        "additionalProperties": false
      }
    },
    "serviceAreas": {
      "type": "array",
      "maxItems": 500,
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 120
          },
          "slug": {
            "type": "string",
            "maxLength": 191
          },
          "county": {
            "type": "string",
            "maxLength": 120
          },
          "localIntro": {
            "type": "string",
            "maxLength": 1500
          },
          "localDetails": {
            "type": "string",
            "maxLength": 2000
          },
          "enabled": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "minimum": 0
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "additionalProperties": false
      }
    },
    "catalogue": {
      "type": "object",
      "properties": {
        "categories": {
          "type": "array",
          "maxItems": 500,
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "maxLength": 600
              },
              "name": {
                "type": "string",
                "maxLength": 120
              },
              "image": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "type": "string",
                        "maxLength": 36,
                        "pattern": "^[0-9a-fA-F-]{36}$"
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "assetId"
                    ],
                    "additionalProperties": false,
                    "description": "An existing image asset in this workspace."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 70000000,
                        "contentEncoding": "base64"
                      },
                      "filename": {
                        "type": "string",
                        "maxLength": 255
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "data",
                      "filename"
                    ],
                    "additionalProperties": false,
                    "description": "An image uploaded as base64 data."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "placeholder": {
                        "const": true
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "placeholder"
                    ],
                    "additionalProperties": false,
                    "description": "An empty image slot. No image is uploaded."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "const": ""
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "additionalProperties": false,
                    "description": "No image: an empty object, or an empty assetId."
                  }
                ]
              },
              "heading": {
                "type": "string",
                "maxLength": 160
              },
              "intro": {
                "type": "string",
                "maxLength": 300
              },
              "description": {
                "oneOf": [
                  {
                    "type": "string",
                    "maxLength": 20000,
                    "description": "Plain text convenience form; converted to Tiptap JSON."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "doc"
                      },
                      "content": {
                        "type": "array",
                        "maxItems": 500,
                        "items": {
                          "$ref": "#/$defs/richNode"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "seo": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "maxLength": 70
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 170
                  }
                },
                "additionalProperties": false
              },
              "sortOrder": {
                "type": "integer",
                "minimum": 0
              },
              "active": {
                "type": "boolean"
              }
            },
            "required": [
              "path",
              "name"
            ],
            "additionalProperties": false
          }
        },
        "attributes": {
          "type": "array",
          "maxItems": 200,
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "maxLength": 80,
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
              },
              "name": {
                "type": "string",
                "maxLength": 120
              },
              "type": {
                "type": "string",
                "enum": [
                  "TEXT",
                  "NUMBER",
                  "BOOLEAN",
                  "CHOICE",
                  "MULTI_CHOICE"
                ]
              },
              "unit": {
                "type": "string",
                "maxLength": 30
              },
              "icon": {
                "type": "string",
                "maxLength": 60
              },
              "specGroup": {
                "type": "string",
                "maxLength": 80
              },
              "defaultValue": {
                "type": "string",
                "maxLength": 120
              },
              "featured": {
                "type": "boolean"
              },
              "important": {
                "type": "boolean"
              },
              "comparable": {
                "type": "boolean"
              },
              "searchable": {
                "type": "boolean"
              },
              "active": {
                "type": "boolean"
              },
              "sortOrder": {
                "type": "integer",
                "minimum": 0
              },
              "options": {
                "type": "array",
                "maxItems": 5000,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "maxLength": 120
                    },
                    "ref": {
                      "type": "string",
                      "maxLength": 80
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "sortOrder": {
                      "type": "integer",
                      "minimum": 0
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "key",
              "name",
              "type"
            ],
            "additionalProperties": false
          }
        },
        "fileTypes": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "maxLength": 60,
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
              },
              "name": {
                "type": "string",
                "maxLength": 80
              },
              "icon": {
                "type": "string",
                "maxLength": 60
              },
              "policy": {
                "type": "string",
                "enum": [
                  "DOWNLOAD",
                  "ENQUIRY"
                ]
              },
              "extensions": {
                "type": "array",
                "minItems": 1,
                "maxItems": 20,
                "items": {
                  "type": "string",
                  "maxLength": 12
                }
              },
              "active": {
                "type": "boolean"
              },
              "sortOrder": {
                "type": "integer",
                "minimum": 0
              }
            },
            "required": [
              "key",
              "name",
              "policy",
              "extensions"
            ],
            "additionalProperties": false
          }
        },
        "tags": {
          "type": "array",
          "maxItems": 200,
          "items": {
            "type": "object",
            "properties": {
              "slug": {
                "type": "string",
                "maxLength": 60,
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
              },
              "name": {
                "type": "string",
                "maxLength": 40
              },
              "colour": {
                "type": "string",
                "maxLength": 20
              },
              "hasPage": {
                "type": "boolean"
              },
              "intro": {
                "type": "string",
                "maxLength": 300
              },
              "description": {
                "oneOf": [
                  {
                    "type": "string",
                    "maxLength": 20000,
                    "description": "Plain text convenience form; converted to Tiptap JSON."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "doc"
                      },
                      "content": {
                        "type": "array",
                        "maxItems": 500,
                        "items": {
                          "$ref": "#/$defs/richNode"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "image": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "type": "string",
                        "maxLength": 36,
                        "pattern": "^[0-9a-fA-F-]{36}$"
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "assetId"
                    ],
                    "additionalProperties": false,
                    "description": "An existing image asset in this workspace."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 70000000,
                        "contentEncoding": "base64"
                      },
                      "filename": {
                        "type": "string",
                        "maxLength": 255
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "data",
                      "filename"
                    ],
                    "additionalProperties": false,
                    "description": "An image uploaded as base64 data."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "placeholder": {
                        "const": true
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "placeholder"
                    ],
                    "additionalProperties": false,
                    "description": "An empty image slot. No image is uploaded."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "assetId": {
                        "const": ""
                      },
                      "alt": {
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "additionalProperties": false,
                    "description": "No image: an empty object, or an empty assetId."
                  }
                ]
              },
              "seo": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "additionalProperties": false
              },
              "sortOrder": {
                "type": "integer",
                "minimum": 0
              }
            },
            "required": [
              "slug",
              "name"
            ],
            "additionalProperties": false
          }
        },
        "items": {
          "type": "array",
          "maxItems": 5000,
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "maxLength": 600
              },
              "parent": {
                "type": "string",
                "maxLength": 600
              },
              "kind": {
                "type": "string",
                "enum": [
                  "GROUP",
                  "LEAF"
                ]
              },
              "slug": {
                "type": "string",
                "maxLength": 191
              },
              "title": {
                "type": "string",
                "maxLength": 200
              },
              "code": {
                "type": "string",
                "maxLength": 80
              },
              "summary": {
                "type": "string",
                "maxLength": 500
              },
              "description": {
                "oneOf": [
                  {
                    "type": "string",
                    "maxLength": 20000,
                    "description": "Plain text convenience form; converted to Tiptap JSON."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "doc"
                      },
                      "content": {
                        "type": "array",
                        "maxItems": 500,
                        "items": {
                          "$ref": "#/$defs/richNode"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "images": {
                "type": "array",
                "maxItems": 24,
                "items": {
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "assetId": {
                              "type": "string",
                              "maxLength": 36,
                              "pattern": "^[0-9a-fA-F-]{36}$"
                            },
                            "alt": {
                              "type": "string",
                              "maxLength": 300
                            }
                          },
                          "required": [
                            "assetId"
                          ],
                          "additionalProperties": false,
                          "description": "An existing image asset in this workspace."
                        },
                        {
                          "type": "object",
                          "properties": {
                            "data": {
                              "type": "string",
                              "maxLength": 70000000,
                              "contentEncoding": "base64"
                            },
                            "filename": {
                              "type": "string",
                              "maxLength": 255
                            },
                            "alt": {
                              "type": "string",
                              "maxLength": 300
                            }
                          },
                          "required": [
                            "data",
                            "filename"
                          ],
                          "additionalProperties": false,
                          "description": "An image uploaded as base64 data."
                        },
                        {
                          "type": "object",
                          "properties": {
                            "placeholder": {
                              "const": true
                            },
                            "alt": {
                              "type": "string",
                              "maxLength": 300
                            }
                          },
                          "required": [
                            "placeholder"
                          ],
                          "additionalProperties": false,
                          "description": "An empty image slot. No image is uploaded."
                        },
                        {
                          "type": "object",
                          "properties": {
                            "assetId": {
                              "const": ""
                            },
                            "alt": {
                              "type": "string",
                              "maxLength": 300
                            }
                          },
                          "additionalProperties": false,
                          "description": "No image: an empty object, or an empty assetId."
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "maxLength": 500,
                          "format": "uri"
                        },
                        "alt": {
                          "type": "string",
                          "maxLength": 300
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "features": {
                "type": "array",
                "maxItems": 30,
                "items": {
                  "type": "string",
                  "maxLength": 1000
                }
              },
              "seo": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "aiSummary": {
                    "type": "string",
                    "maxLength": 600
                  },
                  "aiNotes": {
                    "type": "string",
                    "maxLength": 1200
                  },
                  "image": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "type": "string",
                            "maxLength": 36,
                            "pattern": "^[0-9a-fA-F-]{36}$"
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "assetId"
                        ],
                        "additionalProperties": false,
                        "description": "An existing image asset in this workspace."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "data": {
                            "type": "string",
                            "maxLength": 70000000,
                            "contentEncoding": "base64"
                          },
                          "filename": {
                            "type": "string",
                            "maxLength": 255
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "data",
                          "filename"
                        ],
                        "additionalProperties": false,
                        "description": "An image uploaded as base64 data."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "placeholder": {
                            "const": true
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "placeholder"
                        ],
                        "additionalProperties": false,
                        "description": "An empty image slot. No image is uploaded."
                      },
                      {
                        "type": "object",
                        "properties": {
                          "assetId": {
                            "const": ""
                          },
                          "alt": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "additionalProperties": false,
                        "description": "No image: an empty object, or an empty assetId."
                      }
                    ]
                  },
                  "noindex": {
                    "type": "boolean",
                    "default": false
                  }
                },
                "additionalProperties": false
              },
              "ownPage": {
                "type": "boolean"
              },
              "active": {
                "type": "boolean"
              },
              "sortOrder": {
                "type": "integer",
                "minimum": 0
              },
              "categories": {
                "type": "array",
                "maxItems": 50,
                "items": {
                  "type": "string",
                  "maxLength": 191
                }
              },
              "featured": {
                "type": "boolean"
              },
              "codes": {
                "type": "array",
                "maxItems": 10,
                "items": {
                  "type": "object",
                  "properties": {
                    "label": {
                      "type": "string",
                      "maxLength": 40
                    },
                    "value": {
                      "type": "string",
                      "maxLength": 80
                    },
                    "show": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "label",
                    "value"
                  ],
                  "additionalProperties": false
                },
                "description": "Further codes the product is known by, such as a supplier code. All are searchable; show puts one on the product page."
              },
              "accessories": {
                "type": "array",
                "maxItems": 20,
                "description": "Accessory and option groups. Leave it out to show the range's list; an empty list shows none. A line names a product of this catalogue by path, or carries a code and description.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 40,
                      "pattern": "^[a-z0-9-]{1,40}$"
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 120
                    },
                    "lines": {
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "type": "object",
                        "properties": {
                          "item": {
                            "type": "string",
                            "maxLength": 600
                          },
                          "code": {
                            "type": "string",
                            "maxLength": 80
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 500
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "title"
                  ],
                  "additionalProperties": false
                }
              },
              "faqs": {
                "type": "array",
                "maxItems": 20,
                "description": "Questions and answers in titled sections. Leave it out to show the range's; an empty list shows none. Answers are plain text and keep their line breaks.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "maxLength": 40,
                      "pattern": "^[a-z0-9-]{1,40}$"
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 120
                    },
                    "items": {
                      "type": "array",
                      "minItems": 1,
                      "maxItems": 50,
                      "items": {
                        "type": "object",
                        "properties": {
                          "q": {
                            "type": "string",
                            "maxLength": 300
                          },
                          "a": {
                            "type": "string",
                            "maxLength": 5000
                          }
                        },
                        "required": [
                          "q",
                          "a"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "title",
                    "items"
                  ],
                  "additionalProperties": false
                }
              },
              "tableColumns": {
                "type": "array",
                "maxItems": 12,
                "uniqueItems": true,
                "items": {
                  "type": "string",
                  "maxLength": 80,
                  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                },
                "description": "The attributes a range's product table shows, in order, by attribute key. Leave it out to let the website choose."
              },
              "tags": {
                "type": "array",
                "maxItems": 20,
                "items": {
                  "type": "string",
                  "maxLength": 60
                }
              },
              "options": {
                "type": "array",
                "maxItems": 3,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "maxLength": 60
                    },
                    "style": {
                      "type": "string",
                      "enum": [
                        "buttons",
                        "select",
                        "swatches"
                      ]
                    },
                    "values": {
                      "type": "array",
                      "minItems": 1,
                      "maxItems": 30,
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "maxLength": 60
                          },
                          "swatch": {
                            "type": "string",
                            "maxLength": 7,
                            "pattern": "^(?:|#[0-9a-fA-F]{6})$"
                          }
                        },
                        "required": [
                          "name"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "name",
                    "values"
                  ],
                  "additionalProperties": false
                }
              },
              "variants": {
                "type": "array",
                "maxItems": 100,
                "items": {
                  "type": "object",
                  "properties": {
                    "values": {
                      "type": "array",
                      "minItems": 1,
                      "maxItems": 3,
                      "items": {
                        "type": "string",
                        "maxLength": 60
                      }
                    },
                    "code": {
                      "type": "string",
                      "maxLength": 80
                    },
                    "pricePence": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 0,
                      "maximum": 10000000
                    },
                    "compareAtPence": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 0,
                      "maximum": 10000000
                    },
                    "lowStockAt": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 0
                    },
                    "stock": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 0
                    },
                    "sellable": {
                      "type": "boolean"
                    },
                    "image": {
                      "anyOf": [
                        {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string",
                                  "maxLength": 36,
                                  "pattern": "^[0-9a-fA-F-]{36}$"
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "assetId"
                              ],
                              "additionalProperties": false,
                              "description": "An existing image asset in this workspace."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "data": {
                                  "type": "string",
                                  "maxLength": 70000000,
                                  "contentEncoding": "base64"
                                },
                                "filename": {
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "data",
                                "filename"
                              ],
                              "additionalProperties": false,
                              "description": "An image uploaded as base64 data."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "placeholder": {
                                  "const": true
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "placeholder"
                              ],
                              "additionalProperties": false,
                              "description": "An empty image slot. No image is uploaded."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "const": ""
                                },
                                "alt": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "additionalProperties": false,
                              "description": "No image: an empty object, or an empty assetId."
                            }
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "url": {
                              "type": "string",
                              "maxLength": 500,
                              "format": "uri"
                            },
                            "alt": {
                              "type": "string",
                              "maxLength": 300
                            }
                          },
                          "required": [
                            "url"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "values"
                  ],
                  "additionalProperties": false
                }
              },
              "values": {
                "type": "array",
                "maxItems": 200,
                "items": {
                  "type": "object",
                  "properties": {
                    "attribute": {
                      "type": "string",
                      "maxLength": 80,
                      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                    },
                    "option": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "maxLength": 120
                    },
                    "value": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "maxLength": 500
                    },
                    "display": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "attribute"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "title"
            ],
            "additionalProperties": false
          }
        },
        "attachments": {
          "type": "array",
          "maxItems": 2000,
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "maxLength": 36,
                "pattern": "^[0-9a-fA-F-]{36}$"
              },
              "item": {
                "type": "string",
                "maxLength": 600
              },
              "filename": {
                "type": "string",
                "maxLength": 180
              },
              "label": {
                "type": "string",
                "maxLength": 120
              },
              "mimeType": {
                "type": "string",
                "maxLength": 120
              },
              "size": {
                "type": "integer",
                "minimum": 0
              },
              "sha256": {
                "type": "string",
                "maxLength": 64
              },
              "fileType": {
                "type": "string",
                "maxLength": 60
              },
              "policy": {
                "type": "string",
                "enum": [
                  "DOWNLOAD",
                  "ENQUIRY",
                  ""
                ]
              },
              "active": {
                "type": "boolean"
              },
              "sortOrder": {
                "type": "integer",
                "minimum": 0
              },
              "data": {
                "type": "string",
                "maxLength": 34000000,
                "contentEncoding": "base64",
                "description": "The file itself as base64. Leave it out to refer to a file the workspace already holds by id."
              }
            },
            "required": [
              "filename"
            ],
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "format",
    "version",
    "name",
    "pages"
  ],
  "additionalProperties": false,
  "$defs": {
    "richNode": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "const": "text"
            },
            "text": {
              "type": "string",
              "maxLength": 20000
            },
            "marks": {
              "type": "array",
              "maxItems": 8,
              "items": {
                "$ref": "#/$defs/richMark"
              }
            }
          },
          "required": [
            "type",
            "text"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "paragraph",
                "heading",
                "bulletList",
                "orderedList",
                "listItem",
                "blockquote",
                "hardBreak",
                "horizontalRule",
                "image",
                "video",
                "table",
                "tableRow",
                "tableHeader",
                "tableCell"
              ]
            },
            "attrs": {
              "type": "object"
            },
            "content": {
              "type": "array",
              "maxItems": 500,
              "items": {
                "$ref": "#/$defs/richNode"
              }
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        }
      ]
    },
    "richMark": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "bold",
                "italic",
                "underline",
                "strike",
                "code"
              ]
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "const": "link"
            },
            "attrs": {
              "type": "object",
              "properties": {
                "href": {
                  "type": "string",
                  "maxLength": 255
                },
                "target": {
                  "type": "string",
                  "enum": [
                    "_blank",
                    "_self"
                  ]
                }
              },
              "required": [
                "href"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "type"
          ],
          "additionalProperties": false
        }
      ]
    }
  }
}
