{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://autype.com/llm-resources/style-bundle.schema.json",
  "title": "Autype Style Bundle",
  "description": "Focused, non-recursive authoring schema for reusable element styles, tokens, page variants, page objects, and header/footer regions.",
  "type": "object",
  "properties": {
    "h1": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "fontWeight": {
          "type": "string",
          "enum": [
            "normal",
            "bold"
          ]
        },
        "fontStyle": {
          "type": "string",
          "enum": [
            "normal",
            "italic"
          ]
        },
        "color": {
          "type": "string"
        },
        "align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right",
            "justify"
          ]
        },
        "pageBreakBefore": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "h2": {
      "$ref": "#/properties/h1"
    },
    "h3": {
      "$ref": "#/properties/h1"
    },
    "h4": {
      "$ref": "#/properties/h1"
    },
    "h5": {
      "$ref": "#/properties/h1"
    },
    "h6": {
      "$ref": "#/properties/h1"
    },
    "text": {
      "$ref": "#/properties/h1"
    },
    "text2": {
      "$ref": "#/properties/h1"
    },
    "table": {
      "type": "object",
      "properties": {
        "borders": {
          "type": "object",
          "properties": {
            "outer": {
              "type": "object",
              "properties": {
                "width": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "color": {
                  "$ref": "#/properties/h1/properties/color"
                },
                "style": {
                  "type": "string",
                  "enum": [
                    "solid",
                    "dashed",
                    "dotted"
                  ]
                }
              },
              "additionalProperties": false
            },
            "inner": {
              "type": "object",
              "properties": {
                "width": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10
                },
                "color": {
                  "$ref": "#/properties/h1/properties/color"
                },
                "style": {
                  "type": "string",
                  "enum": [
                    "solid",
                    "dashed",
                    "dotted"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "header": {
          "type": "object",
          "properties": {
            "backgroundColor": {
              "$ref": "#/properties/h1/properties/color"
            },
            "color": {
              "$ref": "#/properties/h1/properties/color"
            },
            "fontSize": {
              "type": "number",
              "minimum": 6,
              "maximum": 72
            },
            "fontWeight": {
              "type": "string",
              "enum": [
                "normal",
                "bold"
              ]
            },
            "fontStyle": {
              "type": "string",
              "enum": [
                "normal",
                "italic"
              ]
            },
            "align": {
              "type": "string",
              "enum": [
                "left",
                "center",
                "right"
              ]
            }
          },
          "additionalProperties": false
        },
        "rows": {
          "type": "object",
          "properties": {
            "backgroundColor": {
              "$ref": "#/properties/h1/properties/color"
            },
            "color": {
              "$ref": "#/properties/h1/properties/color"
            },
            "fontSize": {
              "type": "number",
              "minimum": 6,
              "maximum": 72
            },
            "fontWeight": {
              "type": "string",
              "enum": [
                "normal",
                "bold"
              ]
            },
            "fontStyle": {
              "type": "string",
              "enum": [
                "normal",
                "italic"
              ]
            },
            "align": {
              "type": "string",
              "enum": [
                "left",
                "center",
                "right"
              ]
            },
            "alternateBackgroundColor": {
              "$ref": "#/properties/h1/properties/color"
            }
          },
          "additionalProperties": false
        },
        "cellPadding": {
          "type": "object",
          "properties": {
            "top": {
              "type": "number",
              "minimum": 0,
              "maximum": 50
            },
            "right": {
              "type": "number",
              "minimum": 0,
              "maximum": 50
            },
            "bottom": {
              "type": "number",
              "minimum": 0,
              "maximum": 50
            },
            "left": {
              "type": "number",
              "minimum": 0,
              "maximum": 50
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "math": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "fontWeight": {
          "type": "string",
          "enum": [
            "normal",
            "bold"
          ]
        },
        "color": {
          "$ref": "#/properties/h1/properties/color"
        },
        "align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right"
          ]
        },
        "renderAsImage": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "code": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "backgroundColor": {
          "$ref": "#/properties/h1/properties/color"
        },
        "align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right"
          ]
        },
        "renderAsImage": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "figureCaption": {
      "type": "object",
      "properties": {
        "disable": {
          "type": "boolean"
        },
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "fontWeight": {
          "type": "string",
          "enum": [
            "normal",
            "bold"
          ]
        },
        "fontStyle": {
          "type": "string",
          "enum": [
            "normal",
            "italic"
          ]
        },
        "color": {
          "$ref": "#/properties/h1/properties/color"
        },
        "align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right"
          ]
        },
        "prefix": {
          "type": "string",
          "maxLength": 50
        },
        "spacingBefore": {
          "type": "number",
          "minimum": 0,
          "maximum": 50
        }
      },
      "additionalProperties": false
    },
    "tableCaption": {
      "type": "object",
      "properties": {
        "disable": {
          "type": "boolean"
        },
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "fontWeight": {
          "type": "string",
          "enum": [
            "normal",
            "bold"
          ]
        },
        "fontStyle": {
          "type": "string",
          "enum": [
            "normal",
            "italic"
          ]
        },
        "color": {
          "$ref": "#/properties/h1/properties/color"
        },
        "align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right"
          ]
        },
        "prefix": {
          "type": "string",
          "maxLength": 50
        },
        "spacingAfter": {
          "type": "number",
          "minimum": 0,
          "maximum": 50
        }
      },
      "additionalProperties": false
    },
    "codeCaption": {
      "type": "object",
      "properties": {
        "disable": {
          "type": "boolean"
        },
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "fontWeight": {
          "type": "string",
          "enum": [
            "normal",
            "bold"
          ]
        },
        "fontStyle": {
          "type": "string",
          "enum": [
            "normal",
            "italic"
          ]
        },
        "color": {
          "$ref": "#/properties/h1/properties/color"
        },
        "align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right"
          ]
        },
        "prefix": {
          "type": "string",
          "maxLength": 50
        },
        "spacingBefore": {
          "type": "number",
          "minimum": 0,
          "maximum": 50
        }
      },
      "additionalProperties": false
    },
    "refLink": {
      "type": "object",
      "properties": {
        "bold": {
          "type": "boolean"
        },
        "italic": {
          "type": "boolean"
        },
        "underline": {
          "type": "boolean"
        },
        "color": {
          "$ref": "#/properties/h1/properties/color"
        }
      },
      "additionalProperties": false
    },
    "listOfAbbreviations": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "fontWeight": {
          "type": "string",
          "enum": [
            "normal",
            "bold"
          ]
        },
        "color": {
          "$ref": "#/properties/h1/properties/color"
        },
        "sortOrder": {
          "type": "string",
          "enum": [
            "alphabetical",
            "appearance"
          ]
        },
        "separator": {
          "type": "string",
          "maxLength": 10
        }
      },
      "additionalProperties": false
    },
    "bibliography": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "fontWeight": {
          "type": "string",
          "enum": [
            "normal",
            "bold"
          ]
        },
        "color": {
          "$ref": "#/properties/h1/properties/color"
        },
        "hangingIndent": {
          "type": "number",
          "minimum": 0,
          "maximum": 5
        },
        "lineSpacing": {
          "type": "number",
          "minimum": 1,
          "maximum": 3
        },
        "entrySpacing": {
          "type": "number",
          "minimum": 0,
          "maximum": 50
        }
      },
      "additionalProperties": false
    },
    "blockquote": {
      "type": "object",
      "properties": {
        "fontFamily": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "fontWeight": {
          "type": "string",
          "enum": [
            "normal",
            "bold"
          ]
        },
        "fontStyle": {
          "type": "string",
          "enum": [
            "normal",
            "italic"
          ]
        },
        "color": {
          "$ref": "#/properties/h1/properties/color"
        },
        "align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right",
            "justify"
          ]
        },
        "backgroundColor": {
          "$ref": "#/properties/h1/properties/color"
        },
        "borderWidth": {
          "type": "number",
          "minimum": 0,
          "maximum": 20
        },
        "borderColor": {
          "$ref": "#/properties/h1/properties/color"
        },
        "borderTop": {
          "type": "boolean"
        },
        "borderBottom": {
          "type": "boolean"
        },
        "borderLeft": {
          "type": "boolean"
        },
        "borderRight": {
          "type": "boolean"
        },
        "indentLeft": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "indentRight": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        }
      },
      "additionalProperties": false
    },
    "formField": {
      "type": "object",
      "properties": {
        "borderMode": {
          "type": "string",
          "enum": [
            "outline",
            "underline",
            "none"
          ]
        },
        "borderLineStyle": {
          "type": "string",
          "enum": [
            "solid",
            "dashed",
            "dotted"
          ]
        },
        "borderWidth": {
          "type": "number",
          "minimum": 0,
          "maximum": 10
        },
        "borderColor": {
          "$ref": "#/properties/h1/properties/color"
        },
        "backgroundColor": {
          "$ref": "#/properties/h1/properties/color"
        },
        "textColor": {
          "$ref": "#/properties/h1/properties/color"
        },
        "fontSize": {
          "type": "number",
          "minimum": 6,
          "maximum": 72
        },
        "inset": {
          "type": "number",
          "minimum": 0,
          "maximum": 50
        },
        "borderRadius": {
          "type": "number",
          "minimum": 0,
          "maximum": 30
        },
        "showHints": {
          "type": "boolean"
        },
        "showContainerBorder": {
          "type": "boolean"
        },
        "checkboxBorderMode": {
          "type": "string",
          "enum": [
            "outline",
            "underline",
            "none"
          ]
        },
        "checkboxShape": {
          "type": "string",
          "enum": [
            "square",
            "circle"
          ]
        },
        "width": {
          "type": "number",
          "minimum": 10,
          "maximum": 100
        },
        "height": {
          "type": "number",
          "minimum": 0,
          "maximum": 300
        }
      },
      "additionalProperties": false
    },
    "schemaVersion": {
      "type": "number",
      "const": 2
    },
    "layoutUnit": {
      "type": "string",
      "const": "mm"
    },
    "tokens": {
      "type": "object",
      "properties": {
        "colors": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/properties/h1/properties/color"
          },
          "propertyNames": {
            "pattern": "^[a-z][a-z0-9_-]{0,63}$",
            "maxLength": 64
          }
        },
        "fonts": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "propertyNames": {
            "pattern": "^[a-z][a-z0-9_-]{0,63}$",
            "maxLength": 64
          }
        },
        "fontSizes": {
          "type": "object",
          "additionalProperties": {
            "type": "number",
            "minimum": 1,
            "maximum": 500
          },
          "propertyNames": {
            "pattern": "^[a-z][a-z0-9_-]{0,63}$",
            "maxLength": 64
          }
        },
        "spacing": {
          "type": "object",
          "additionalProperties": {
            "type": "number",
            "minimum": 0,
            "maximum": 2000
          },
          "propertyNames": {
            "pattern": "^[a-z][a-z0-9_-]{0,63}$",
            "maxLength": 64
          }
        },
        "borders": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "properties": {
              "width": {
                "type": "number",
                "minimum": 0,
                "maximum": 50
              },
              "style": {
                "type": "string",
                "enum": [
                  "solid",
                  "dashed",
                  "dotted",
                  "double"
                ]
              },
              "color": {
                "$ref": "#/properties/h1/properties/color"
              },
              "opacity": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              }
            },
            "required": [
              "width",
              "style",
              "color"
            ],
            "additionalProperties": false
          },
          "propertyNames": {
            "pattern": "^[a-z][a-z0-9_-]{0,63}$",
            "maxLength": 64
          }
        },
        "radii": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
          },
          "propertyNames": {
            "pattern": "^[a-z][a-z0-9_-]{0,63}$",
            "maxLength": 64
          }
        }
      },
      "additionalProperties": false
    },
    "pages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_-]{0,63}$",
            "maxLength": 64
          },
          "variant": {
            "type": "string",
            "enum": [
              "default",
              "documentFirst",
              "sectionFirst",
              "odd",
              "even",
              "blank"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "role": {
            "type": "string",
            "enum": [
              "body",
              "cover",
              "chapter",
              "toc",
              "appendix",
              "backCover",
              "custom"
            ]
          },
          "format": {
            "type": "string",
            "enum": [
              "A3",
              "A4",
              "A5",
              "Letter",
              "Legal",
              "custom"
            ]
          },
          "width": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 2000
          },
          "height": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 2000
          },
          "orientation": {
            "type": "string",
            "enum": [
              "portrait",
              "landscape"
            ]
          },
          "margins": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "const": "fixed"
                  },
                  "top": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  },
                  "right": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  },
                  "bottom": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  },
                  "left": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  }
                },
                "required": [
                  "mode",
                  "top",
                  "right",
                  "bottom",
                  "left"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "const": "mirrored"
                  },
                  "top": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  },
                  "bottom": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  },
                  "inside": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  },
                  "outside": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  },
                  "gutter": {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  }
                },
                "required": [
                  "mode",
                  "top",
                  "bottom",
                  "inside",
                  "outside"
                ],
                "additionalProperties": false
              }
            ]
          },
          "bleed": {
            "type": "object",
            "properties": {
              "top": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              },
              "right": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              },
              "bottom": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              },
              "left": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              }
            },
            "additionalProperties": false
          },
          "verticalAlign": {
            "type": "string",
            "enum": [
              "top",
              "center",
              "bottom"
            ]
          },
          "columns": {
            "type": "object",
            "properties": {
              "count": {
                "type": "integer",
                "minimum": 1,
                "maximum": 12
              },
              "gap": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              },
              "divider": {
                "$ref": "#/properties/tokens/properties/borders/additionalProperties"
              },
              "balance": {
                "type": "boolean"
              }
            },
            "required": [
              "count",
              "gap"
            ],
            "additionalProperties": false
          },
          "background": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "none"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "color"
                      },
                      "color": {
                        "$ref": "#/properties/h1/properties/color"
                      },
                      "opacity": {
                        "$ref": "#/properties/tokens/properties/borders/additionalProperties/properties/opacity"
                      }
                    },
                    "required": [
                      "type",
                      "color"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "image"
                      },
                      "src": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "backgroundColor": {
                        "$ref": "#/properties/h1/properties/color"
                      },
                      "fit": {
                        "type": "string",
                        "enum": [
                          "contain",
                          "cover",
                          "fill",
                          "none"
                        ]
                      },
                      "positionX": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "positionY": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "opacity": {
                        "$ref": "#/properties/tokens/properties/borders/additionalProperties/properties/opacity"
                      }
                    },
                    "required": [
                      "type",
                      "src"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "linearGradient"
                      },
                      "angle": {
                        "type": "number",
                        "minimum": -360,
                        "maximum": 360
                      },
                      "stops": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "offset": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 100
                            },
                            "color": {
                              "$ref": "#/properties/h1/properties/color"
                            },
                            "opacity": {
                              "$ref": "#/properties/tokens/properties/borders/additionalProperties/properties/opacity"
                            }
                          },
                          "required": [
                            "offset",
                            "color"
                          ],
                          "additionalProperties": false
                        },
                        "minItems": 2,
                        "maxItems": 20
                      },
                      "opacity": {
                        "$ref": "#/properties/tokens/properties/borders/additionalProperties/properties/opacity"
                      }
                    },
                    "required": [
                      "type",
                      "angle",
                      "stops"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "radialGradient"
                      },
                      "centerX": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "centerY": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "stops": {
                        "type": "array",
                        "items": {
                          "$ref": "#/properties/pages/items/properties/background/anyOf/0/anyOf/3/properties/stops/items"
                        },
                        "minItems": 2,
                        "maxItems": 20
                      },
                      "opacity": {
                        "$ref": "#/properties/tokens/properties/borders/additionalProperties/properties/opacity"
                      }
                    },
                    "required": [
                      "type",
                      "stops"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "objects": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "$ref": "#/properties/pages/items/properties/id"
                    },
                    "layer": {
                      "type": "string",
                      "enum": [
                        "background",
                        "foreground"
                      ]
                    },
                    "anchor": {
                      "type": "string",
                      "enum": [
                        "page",
                        "content"
                      ]
                    },
                    "frame": {
                      "type": "object",
                      "properties": {
                        "top": {
                          "type": "number",
                          "minimum": -2000,
                          "maximum": 2000
                        },
                        "right": {
                          "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame/properties/top"
                        },
                        "bottom": {
                          "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame/properties/top"
                        },
                        "left": {
                          "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame/properties/top"
                        },
                        "width": {
                          "type": "number",
                          "exclusiveMinimum": 0,
                          "maximum": 2000
                        },
                        "height": {
                          "type": "number",
                          "exclusiveMinimum": 0,
                          "maximum": 2000
                        }
                      },
                      "additionalProperties": false
                    },
                    "rotation": {
                      "type": "number",
                      "minimum": -360,
                      "maximum": 360
                    },
                    "opacity": {
                      "$ref": "#/properties/tokens/properties/borders/additionalProperties/properties/opacity"
                    },
                    "mirrorOnEven": {
                      "type": "boolean"
                    },
                    "allowOverlap": {
                      "type": "boolean"
                    },
                    "allowClip": {
                      "type": "boolean"
                    },
                    "locked": {
                      "type": "boolean"
                    },
                    "alt": {
                      "type": "string",
                      "maxLength": 500
                    },
                    "zIndex": {
                      "type": "integer",
                      "minimum": -1000,
                      "maximum": 1000
                    },
                    "type": {
                      "type": "string",
                      "const": "shape"
                    },
                    "shape": {
                      "type": "string",
                      "enum": [
                        "rectangle",
                        "roundedRectangle",
                        "ellipse",
                        "triangle",
                        "diamond",
                        "polygon"
                      ]
                    },
                    "points": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100
                          },
                          "y": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100
                          }
                        },
                        "required": [
                          "x",
                          "y"
                        ],
                        "additionalProperties": false
                      },
                      "minItems": 3,
                      "maxItems": 100
                    },
                    "fill": {
                      "$ref": "#/properties/pages/items/properties/background/anyOf/0"
                    },
                    "borders": {
                      "type": "object",
                      "properties": {
                        "top": {
                          "anyOf": [
                            {
                              "$ref": "#/properties/tokens/properties/borders/additionalProperties"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "right": {
                          "anyOf": [
                            {
                              "$ref": "#/properties/tokens/properties/borders/additionalProperties"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bottom": {
                          "anyOf": [
                            {
                              "$ref": "#/properties/tokens/properties/borders/additionalProperties"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "left": {
                          "anyOf": [
                            {
                              "$ref": "#/properties/tokens/properties/borders/additionalProperties"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "radius": {
                      "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                    }
                  },
                  "required": [
                    "id",
                    "layer",
                    "anchor",
                    "frame",
                    "type",
                    "shape"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "$ref": "#/properties/pages/items/properties/id"
                    },
                    "layer": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/layer"
                    },
                    "anchor": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/anchor"
                    },
                    "frame": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame"
                    },
                    "rotation": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/rotation"
                    },
                    "opacity": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/opacity"
                    },
                    "mirrorOnEven": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/mirrorOnEven"
                    },
                    "allowOverlap": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/allowOverlap"
                    },
                    "allowClip": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/allowClip"
                    },
                    "locked": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/locked"
                    },
                    "alt": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/alt"
                    },
                    "zIndex": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/zIndex"
                    },
                    "type": {
                      "type": "string",
                      "const": "line"
                    },
                    "from": {
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "y": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 100
                        }
                      },
                      "required": [
                        "x",
                        "y"
                      ],
                      "additionalProperties": false
                    },
                    "to": {
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "y": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 100
                        }
                      },
                      "required": [
                        "x",
                        "y"
                      ],
                      "additionalProperties": false
                    },
                    "line": {
                      "$ref": "#/properties/tokens/properties/borders/additionalProperties"
                    },
                    "startArrow": {
                      "type": "boolean"
                    },
                    "endArrow": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "layer",
                    "anchor",
                    "frame",
                    "type",
                    "from",
                    "to",
                    "line"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "$ref": "#/properties/pages/items/properties/id"
                    },
                    "layer": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/layer"
                    },
                    "anchor": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/anchor"
                    },
                    "frame": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame"
                    },
                    "rotation": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/rotation"
                    },
                    "opacity": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/opacity"
                    },
                    "mirrorOnEven": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/mirrorOnEven"
                    },
                    "allowOverlap": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/allowOverlap"
                    },
                    "allowClip": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/allowClip"
                    },
                    "locked": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/locked"
                    },
                    "alt": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/alt"
                    },
                    "zIndex": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/zIndex"
                    },
                    "type": {
                      "type": "string",
                      "const": "image"
                    },
                    "src": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    },
                    "fit": {
                      "type": "string",
                      "enum": [
                        "contain",
                        "cover",
                        "fill",
                        "none"
                      ]
                    },
                    "focalPoint": {
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "y": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 100
                        }
                      },
                      "required": [
                        "x",
                        "y"
                      ],
                      "additionalProperties": false
                    },
                    "link": {
                      "type": "string",
                      "format": "uri",
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "id",
                    "layer",
                    "anchor",
                    "frame",
                    "type",
                    "src"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "$ref": "#/properties/pages/items/properties/id"
                    },
                    "layer": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/layer"
                    },
                    "anchor": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/anchor"
                    },
                    "frame": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame"
                    },
                    "rotation": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/rotation"
                    },
                    "opacity": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/opacity"
                    },
                    "mirrorOnEven": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/mirrorOnEven"
                    },
                    "allowOverlap": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/allowOverlap"
                    },
                    "allowClip": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/allowClip"
                    },
                    "locked": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/locked"
                    },
                    "alt": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/alt"
                    },
                    "zIndex": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/zIndex"
                    },
                    "fontFamily": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "fontSize": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 500
                    },
                    "fontWeight": {
                      "type": "string",
                      "enum": [
                        "normal",
                        "medium",
                        "semibold",
                        "bold"
                      ]
                    },
                    "fontStyle": {
                      "type": "string",
                      "enum": [
                        "normal",
                        "italic"
                      ]
                    },
                    "color": {
                      "$ref": "#/properties/h1/properties/color"
                    },
                    "align": {
                      "type": "string",
                      "enum": [
                        "left",
                        "center",
                        "right",
                        "justify"
                      ]
                    },
                    "lineHeight": {
                      "type": "number",
                      "minimum": 0.5,
                      "maximum": 5
                    },
                    "type": {
                      "type": "string",
                      "const": "text"
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 5000
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "plain",
                        "markdown"
                      ]
                    },
                    "verticalAlign": {
                      "type": "string",
                      "enum": [
                        "top",
                        "center",
                        "bottom"
                      ]
                    },
                    "padding": {
                      "$ref": "#/properties/pages/items/properties/bleed"
                    },
                    "fill": {
                      "$ref": "#/properties/pages/items/properties/background/anyOf/0"
                    },
                    "link": {
                      "type": "string",
                      "format": "uri",
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "id",
                    "layer",
                    "anchor",
                    "frame",
                    "type",
                    "text"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "$ref": "#/properties/pages/items/properties/id"
                    },
                    "layer": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/layer"
                    },
                    "anchor": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/anchor"
                    },
                    "frame": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame"
                    },
                    "rotation": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/rotation"
                    },
                    "opacity": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/opacity"
                    },
                    "mirrorOnEven": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/mirrorOnEven"
                    },
                    "allowOverlap": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/allowOverlap"
                    },
                    "allowClip": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/allowClip"
                    },
                    "locked": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/locked"
                    },
                    "alt": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/alt"
                    },
                    "zIndex": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/zIndex"
                    },
                    "fontFamily": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontFamily"
                    },
                    "fontSize": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontSize"
                    },
                    "fontWeight": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontWeight"
                    },
                    "fontStyle": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontStyle"
                    },
                    "color": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/color"
                    },
                    "align": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/align"
                    },
                    "lineHeight": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/lineHeight"
                    },
                    "type": {
                      "type": "string",
                      "const": "field"
                    },
                    "field": {
                      "type": "string",
                      "enum": [
                        "pageNumber",
                        "totalPages",
                        "documentTitle",
                        "documentAuthor",
                        "documentSubject",
                        "sectionTitle",
                        "chapterTitle",
                        "currentDate",
                        "createdDate",
                        "modifiedDate"
                      ]
                    },
                    "prefix": {
                      "type": "string",
                      "maxLength": 200
                    },
                    "suffix": {
                      "type": "string",
                      "maxLength": 200
                    },
                    "format": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "locale": {
                      "type": "string",
                      "maxLength": 35
                    },
                    "fallback": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "id",
                    "layer",
                    "anchor",
                    "frame",
                    "type",
                    "field"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "maxItems": 200
          },
          "headerRegionId": {
            "anyOf": [
              {
                "$ref": "#/properties/pages/items/properties/id"
              },
              {
                "type": "null"
              }
            ]
          },
          "footerRegionId": {
            "anyOf": [
              {
                "$ref": "#/properties/pages/items/properties/id"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "variant"
        ],
        "additionalProperties": false
      },
      "maxItems": 100
    },
    "regions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/pages/items/properties/id"
          },
          "kind": {
            "type": "string",
            "enum": [
              "header",
              "footer"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "box": {
            "type": "object",
            "properties": {
              "width": {
                "type": "string",
                "enum": [
                  "content",
                  "page"
                ]
              },
              "edgeOffset": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              },
              "height": {
                "anyOf": [
                  {
                    "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                  },
                  {
                    "type": "string",
                    "const": "auto"
                  }
                ]
              },
              "offsetLeft": {
                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame/properties/top"
              },
              "offsetRight": {
                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/frame/properties/top"
              },
              "minHeight": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              },
              "maxHeight": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              }
            },
            "required": [
              "width",
              "edgeOffset",
              "height"
            ],
            "additionalProperties": false
          },
          "fill": {
            "$ref": "#/properties/pages/items/properties/background/anyOf/0"
          },
          "padding": {
            "$ref": "#/properties/pages/items/properties/bleed"
          },
          "borders": {
            "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/borders"
          },
          "grid": {
            "type": "object",
            "properties": {
              "columns": {
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^(?:auto|(?:\\d+(?:\\.\\d+)?)fr|(?:\\d+(?:\\.\\d+)?)mm|(?:\\d+(?:\\.\\d+)?)%)$"
                },
                "minItems": 1,
                "maxItems": 12
              },
              "rows": {
                "type": "array",
                "items": {
                  "$ref": "#/properties/regions/items/properties/grid/properties/columns/items"
                },
                "minItems": 1,
                "maxItems": 12
              },
              "gapX": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              },
              "gapY": {
                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
              },
              "cells": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "$ref": "#/properties/pages/items/properties/id"
                    },
                    "row": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 12
                    },
                    "column": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 12
                    },
                    "rowSpan": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 12
                    },
                    "columnSpan": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 12
                    },
                    "flow": {
                      "type": "string",
                      "enum": [
                        "row",
                        "column"
                      ]
                    },
                    "gap": {
                      "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                    },
                    "align": {
                      "type": "string",
                      "enum": [
                        "start",
                        "center",
                        "end",
                        "stretch"
                      ]
                    },
                    "verticalAlign": {
                      "type": "string",
                      "enum": [
                        "top",
                        "center",
                        "bottom",
                        "stretch"
                      ]
                    },
                    "padding": {
                      "$ref": "#/properties/pages/items/properties/bleed"
                    },
                    "fill": {
                      "$ref": "#/properties/pages/items/properties/background/anyOf/0"
                    },
                    "borders": {
                      "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/borders"
                    },
                    "blocks": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "$ref": "#/properties/pages/items/properties/id"
                              },
                              "width": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "exclusiveMinimum": 0,
                                    "maximum": 2000
                                  },
                                  {
                                    "type": "string",
                                    "enum": [
                                      "auto",
                                      "fill"
                                    ]
                                  }
                                ]
                              },
                              "height": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "exclusiveMinimum": 0,
                                    "maximum": 2000
                                  },
                                  {
                                    "type": "string",
                                    "const": "auto"
                                  }
                                ]
                              },
                              "alignSelf": {
                                "type": "string",
                                "enum": [
                                  "start",
                                  "center",
                                  "end",
                                  "stretch"
                                ]
                              },
                              "visible": {
                                "type": "boolean"
                              },
                              "opacity": {
                                "$ref": "#/properties/tokens/properties/borders/additionalProperties/properties/opacity"
                              },
                              "alt": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "fontFamily": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontFamily"
                              },
                              "fontSize": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontSize"
                              },
                              "fontWeight": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontWeight"
                              },
                              "fontStyle": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontStyle"
                              },
                              "color": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/color"
                              },
                              "align": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/align"
                              },
                              "lineHeight": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/lineHeight"
                              },
                              "type": {
                                "type": "string",
                                "const": "text"
                              },
                              "text": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "format": {
                                "type": "string",
                                "enum": [
                                  "plain",
                                  "markdown"
                                ]
                              },
                              "link": {
                                "type": "string",
                                "format": "uri",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "id",
                              "type",
                              "text"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "$ref": "#/properties/pages/items/properties/id"
                              },
                              "width": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/width"
                              },
                              "height": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/height"
                              },
                              "alignSelf": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alignSelf"
                              },
                              "visible": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/visible"
                              },
                              "opacity": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/opacity"
                              },
                              "alt": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alt"
                              },
                              "type": {
                                "type": "string",
                                "const": "image"
                              },
                              "src": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "fit": {
                                "type": "string",
                                "enum": [
                                  "contain",
                                  "cover",
                                  "fill",
                                  "none"
                                ]
                              },
                              "focalPoint": {
                                "type": "object",
                                "properties": {
                                  "x": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 100
                                  },
                                  "y": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 100
                                  }
                                },
                                "required": [
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              },
                              "link": {
                                "type": "string",
                                "format": "uri",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "id",
                              "type",
                              "src"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "$ref": "#/properties/pages/items/properties/id"
                              },
                              "width": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/width"
                              },
                              "height": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/height"
                              },
                              "alignSelf": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alignSelf"
                              },
                              "visible": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/visible"
                              },
                              "opacity": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/opacity"
                              },
                              "alt": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alt"
                              },
                              "fontFamily": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontFamily"
                              },
                              "fontSize": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontSize"
                              },
                              "fontWeight": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontWeight"
                              },
                              "fontStyle": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontStyle"
                              },
                              "color": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/color"
                              },
                              "align": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/align"
                              },
                              "lineHeight": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/lineHeight"
                              },
                              "type": {
                                "type": "string",
                                "const": "field"
                              },
                              "field": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/4/properties/field"
                              },
                              "prefix": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "suffix": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "format": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "locale": {
                                "type": "string",
                                "maxLength": 35
                              },
                              "fallback": {
                                "type": "string",
                                "maxLength": 500
                              }
                            },
                            "required": [
                              "id",
                              "type",
                              "field"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "$ref": "#/properties/pages/items/properties/id"
                              },
                              "width": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/width"
                              },
                              "height": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/height"
                              },
                              "alignSelf": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alignSelf"
                              },
                              "visible": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/visible"
                              },
                              "opacity": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/opacity"
                              },
                              "alt": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alt"
                              },
                              "fontFamily": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontFamily"
                              },
                              "fontSize": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontSize"
                              },
                              "fontWeight": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontWeight"
                              },
                              "fontStyle": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/fontStyle"
                              },
                              "color": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/color"
                              },
                              "align": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/align"
                              },
                              "lineHeight": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/3/properties/lineHeight"
                              },
                              "type": {
                                "type": "string",
                                "const": "variable"
                              },
                              "name": {
                                "type": "string",
                                "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
                                "maxLength": 50
                              },
                              "prefix": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "suffix": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "format": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "fallback": {
                                "type": "string",
                                "maxLength": 500
                              }
                            },
                            "required": [
                              "id",
                              "type",
                              "name"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "$ref": "#/properties/pages/items/properties/id"
                              },
                              "width": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/width"
                              },
                              "height": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/height"
                              },
                              "alignSelf": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alignSelf"
                              },
                              "visible": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/visible"
                              },
                              "opacity": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/opacity"
                              },
                              "alt": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alt"
                              },
                              "type": {
                                "type": "string",
                                "const": "rule"
                              },
                              "direction": {
                                "type": "string",
                                "enum": [
                                  "horizontal",
                                  "vertical"
                                ]
                              },
                              "length": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "exclusiveMinimum": 0,
                                    "maximum": 2000
                                  },
                                  {
                                    "type": "string",
                                    "const": "fill"
                                  }
                                ]
                              },
                              "line": {
                                "$ref": "#/properties/tokens/properties/borders/additionalProperties"
                              }
                            },
                            "required": [
                              "id",
                              "type",
                              "direction",
                              "line"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "$ref": "#/properties/pages/items/properties/id"
                              },
                              "width": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/width"
                              },
                              "height": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/height"
                              },
                              "alignSelf": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alignSelf"
                              },
                              "visible": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/visible"
                              },
                              "opacity": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/opacity"
                              },
                              "alt": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alt"
                              },
                              "type": {
                                "type": "string",
                                "const": "spacer"
                              }
                            },
                            "required": [
                              "id",
                              "type"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "$ref": "#/properties/pages/items/properties/id"
                              },
                              "width": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/width"
                              },
                              "height": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/height"
                              },
                              "alignSelf": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alignSelf"
                              },
                              "visible": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/visible"
                              },
                              "opacity": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/opacity"
                              },
                              "alt": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alt"
                              },
                              "type": {
                                "type": "string",
                                "const": "qrcode"
                              },
                              "data": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "errorCorrection": {
                                "type": "string",
                                "enum": [
                                  "L",
                                  "M",
                                  "Q",
                                  "H"
                                ]
                              },
                              "foregroundColor": {
                                "$ref": "#/properties/h1/properties/color"
                              },
                              "backgroundColor": {
                                "$ref": "#/properties/h1/properties/color"
                              }
                            },
                            "required": [
                              "id",
                              "type",
                              "data"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "$ref": "#/properties/pages/items/properties/id"
                              },
                              "width": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/width"
                              },
                              "height": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/height"
                              },
                              "alignSelf": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alignSelf"
                              },
                              "visible": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/visible"
                              },
                              "opacity": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/opacity"
                              },
                              "alt": {
                                "$ref": "#/properties/regions/items/properties/grid/properties/cells/items/properties/blocks/items/anyOf/0/properties/alt"
                              },
                              "type": {
                                "type": "string",
                                "const": "shape"
                              },
                              "shape": {
                                "type": "string",
                                "enum": [
                                  "rectangle",
                                  "roundedRectangle",
                                  "ellipse",
                                  "triangle",
                                  "diamond"
                                ]
                              },
                              "fill": {
                                "$ref": "#/properties/pages/items/properties/background/anyOf/0"
                              },
                              "borders": {
                                "$ref": "#/properties/pages/items/properties/objects/items/anyOf/0/properties/borders"
                              },
                              "radius": {
                                "$ref": "#/properties/tokens/properties/spacing/additionalProperties"
                              }
                            },
                            "required": [
                              "id",
                              "type",
                              "shape"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "maxItems": 50
                    }
                  },
                  "required": [
                    "id",
                    "row",
                    "column",
                    "blocks"
                  ],
                  "additionalProperties": false
                },
                "maxItems": 144
              }
            },
            "required": [
              "columns",
              "rows",
              "cells"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "kind",
          "box",
          "grid"
        ],
        "additionalProperties": false
      },
      "maxItems": 100
    }
  },
  "required": [
    "schemaVersion",
    "layoutUnit",
    "pages",
    "regions"
  ],
  "additionalProperties": false
}