> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.specurate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Report Templates



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/report-templates
openapi: 3.1.0
info:
  title: Specurate API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://app.specurate.com/api
    description: API Server
security: []
tags: []
paths:
  /v1/workspaces/{workspaceId}/report-templates:
    post:
      tags:
        - Report Templates
      summary: Create Report Templates
      operationId: ReportTemplatesController_create_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReportTemplateDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    CreateReportTemplateDto:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        settings:
          type: object
          properties:
            page:
              type: object
              properties:
                size:
                  type: string
                  enum:
                    - A4
                    - A3
                    - letter
                orientation:
                  type: string
                  enum:
                    - portrait
                    - landscape
                margin:
                  type: string
                  enum:
                    - compact
                    - standard
                    - generous
              additionalProperties: false
            showCover:
              type: boolean
            showIndex:
              type: boolean
            showDisclaimer:
              anyOf:
                - type: boolean
                - type: 'null'
            showHeader:
              type: boolean
            showFooter:
              type: boolean
            density:
              type: string
              enum:
                - compact
                - comfortable
            blockGap:
              anyOf:
                - type: number
                  minimum: 0
                  maximum: 12
                - type: 'null'
            blocks:
              maxItems: 80
              type: array
              items:
                anyOf:
                  - oneOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: heading
                          props:
                            type: object
                            properties:
                              text:
                                type: string
                                maxLength: 500
                              level:
                                type: string
                                enum:
                                  - '1'
                                  - '2'
                                  - '3'
                              align:
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              size:
                                default: null
                                anyOf:
                                  - type: number
                                    minimum: 0.5
                                    maximum: 3
                                  - type: 'null'
                              weight:
                                default: null
                                anyOf:
                                  - type: string
                                    enum:
                                      - regular
                                      - medium
                                      - bold
                                  - type: 'null'
                              repeatEveryPage:
                                type: boolean
                            required:
                              - text
                              - level
                              - align
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: text
                          props:
                            type: object
                            properties:
                              text:
                                type: string
                                maxLength: 8000
                              align:
                                default: left
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              size:
                                default: null
                                anyOf:
                                  - type: number
                                    minimum: 0.5
                                    maximum: 3
                                  - type: 'null'
                              weight:
                                default: null
                                anyOf:
                                  - type: string
                                    enum:
                                      - regular
                                      - medium
                                      - bold
                                  - type: 'null'
                              repeatEveryPage:
                                type: boolean
                            required:
                              - text
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: fieldList
                          props:
                            type: object
                            properties:
                              fields:
                                maxItems: 40
                                type: array
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                              columns:
                                anyOf:
                                  - type: integer
                                    minimum: 1
                                    maximum: 3
                                  - type: string
                                    const: auto
                              labelLayout:
                                default: stacked
                                type: string
                                enum:
                                  - stacked
                                  - inline
                              labelWidth:
                                default: 35
                                type: integer
                                minimum: 5
                                maximum: 60
                              lineHeight:
                                default: 1.4
                                type: number
                                minimum: 0.85
                                maximum: 2.5
                              fieldGap:
                                default: 1
                                type: number
                                minimum: 0
                                maximum: 4
                              textOverflow:
                                default: wrap
                                type: string
                                enum:
                                  - wrap
                                  - clip
                              maxLines:
                                default: 2
                                type: integer
                                minimum: 1
                                maximum: 4
                              columnWidths:
                                maxItems: 3
                                type: array
                                items:
                                  type: integer
                                  minimum: 5
                                  maximum: 80
                              columnAlign:
                                maxItems: 3
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - left
                                    - center
                                    - right
                              align:
                                default: left
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              repeatEveryPage:
                                type: boolean
                            required:
                              - fields
                              - columns
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: dataTable
                          props:
                            type: object
                            properties:
                              source:
                                default: components
                                type: string
                                enum:
                                  - components
                                  - items
                              fields:
                                minItems: 1
                                maxItems: 30
                                type: array
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                              showHeader:
                                type: boolean
                              columnWidths:
                                default: {}
                                type: object
                                propertyNames:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                additionalProperties:
                                  type: integer
                                  minimum: 5
                                  maximum: 80
                              textOverflow:
                                default: wrap
                                type: string
                                enum:
                                  - wrap
                                  - clip
                              maxLines:
                                default: 2
                                type: integer
                                minimum: 1
                                maximum: 4
                              repeatEveryPage:
                                type: boolean
                            required:
                              - fields
                              - showHeader
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: image
                          props:
                            type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - primary
                                  - secondary
                                  - field
                                  - asset
                              field:
                                default: null
                                anyOf:
                                  - type: string
                                    maxLength: 120
                                  - type: 'null'
                              assetId:
                                anyOf:
                                  - type: string
                                    minLength: 1
                                    maxLength: 120
                                  - type: 'null'
                              fit:
                                type: string
                                enum:
                                  - contain
                                  - cover
                              ratio:
                                anyOf:
                                  - type: string
                                    enum:
                                      - auto
                                      - '1:1'
                                      - '4:3'
                                      - '3:2'
                                      - '16:9'
                                  - type: 'null'
                              height:
                                type: string
                                enum:
                                  - sm
                                  - md
                                  - lg
                              align:
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              caption:
                                type: string
                                maxLength: 500
                              repeatEveryPage:
                                type: boolean
                            required:
                              - source
                              - fit
                              - caption
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: gallery
                          props:
                            type: object
                            properties:
                              columns:
                                type: integer
                                minimum: 2
                                maximum: 8
                              photos:
                                default: all
                                type: string
                                enum:
                                  - all
                                  - additional
                              slots:
                                default: []
                                maxItems: 8
                                type: array
                                items:
                                  anyOf:
                                    - type: string
                                      minLength: 1
                                      maxLength: 120
                                    - type: 'null'
                              fit:
                                type: string
                                enum:
                                  - contain
                                  - cover
                              ratio:
                                anyOf:
                                  - type: string
                                    enum:
                                      - auto
                                      - '1:1'
                                      - '4:3'
                                      - '3:2'
                                      - '16:9'
                                  - type: 'null'
                              repeatEveryPage:
                                type: boolean
                            required:
                              - columns
                              - fit
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: imageFields
                          props:
                            type: object
                            properties:
                              fields:
                                maxItems: 20
                                type: array
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                              imageField:
                                default: null
                                anyOf:
                                  - type: string
                                    minLength: 1
                                    maxLength: 120
                                  - type: 'null'
                              imagePosition:
                                type: string
                                enum:
                                  - left
                                  - right
                                  - top
                              fit:
                                type: string
                                enum:
                                  - contain
                                  - cover
                              ratio:
                                anyOf:
                                  - type: string
                                    enum:
                                      - auto
                                      - '1:1'
                                      - '4:3'
                                      - '3:2'
                                      - '16:9'
                                  - type: 'null'
                              height:
                                type: string
                                enum:
                                  - sm
                                  - md
                                  - lg
                              textOverflow:
                                default: wrap
                                type: string
                                enum:
                                  - wrap
                                  - clip
                              maxLines:
                                default: 2
                                type: integer
                                minimum: 1
                                maximum: 4
                              repeatEveryPage:
                                type: boolean
                            required:
                              - fields
                              - imagePosition
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: logo
                          props:
                            type: object
                            properties:
                              slot:
                                type: string
                                enum:
                                  - primary
                                  - secondary
                                  - footer
                              align:
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              repeatEveryPage:
                                type: boolean
                            required:
                              - slot
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: divider
                          props:
                            type: object
                            properties:
                              tone:
                                type: string
                                enum:
                                  - primary
                                  - secondary
                                  - muted
                              lineStyle:
                                type: string
                                enum:
                                  - solid
                                  - dashed
                                  - dotted
                              repeatEveryPage:
                                type: boolean
                            required:
                              - tone
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: qrCode
                          props:
                            type: object
                            properties:
                              value:
                                type: string
                                maxLength: 1000
                              size:
                                default: 24
                                type: integer
                                minimum: 12
                                maximum: 60
                              align:
                                default: left
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              repeatEveryPage:
                                type: boolean
                            required:
                              - value
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: spacer
                          props:
                            type: object
                            properties:
                              size:
                                type: string
                                enum:
                                  - sm
                                  - md
                                  - lg
                                  - xl
                              repeatEveryPage:
                                type: boolean
                            required:
                              - size
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: guidance
                          props:
                            type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - instructions
                                  - requirements
                                  - furnishedInstalledBy
                              showGroupLabels:
                                default: true
                                type: boolean
                              repeatEveryPage:
                                type: boolean
                            required:
                              - source
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: areas
                          props:
                            type: object
                            properties:
                              columns:
                                default: 4
                                type: integer
                                minimum: 1
                                maximum: 4
                              showRoomNumbers:
                                default: false
                                type: boolean
                              repeatEveryPage:
                                type: boolean
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: schedule
                          props:
                            type: object
                            properties:
                              groupBy:
                                type: string
                                enum:
                                  - none
                                  - category
                                  - area
                                  - areaTree
                                  - manufacturer
                                  - supplier
                              showSubtotals:
                                type: boolean
                              dedupCategory:
                                type: boolean
                              subcategoryAsSubtitle:
                                type: boolean
                              showGrandTotal:
                                type: boolean
                              headerBold:
                                type: boolean
                              columnAlign:
                                type: object
                                propertyNames:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                additionalProperties:
                                  type: string
                                  enum:
                                    - left
                                    - center
                                    - right
                              textOverflow:
                                type: string
                                enum:
                                  - wrap
                                  - clip
                              maxLines:
                                type: integer
                                minimum: 1
                                maximum: 4
                              showRoomNumbers:
                                default: false
                                type: boolean
                              roomColumns:
                                default: 4
                                type: integer
                                minimum: 1
                                maximum: 4
                              quantityBreakdown:
                                default: false
                                type: boolean
                              bandDetails:
                                default: none
                                type: string
                                enum:
                                  - none
                                  - company
                              roomTotals:
                                default: false
                                type: boolean
                              currency:
                                default: null
                                anyOf:
                                  - type: string
                                    pattern: ^[A-Z]{3}$
                                  - type: 'null'
                              columns:
                                minItems: 1
                                maxItems: 30
                                type: array
                                items:
                                  type: object
                                  properties:
                                    key:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    label:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    width:
                                      anyOf:
                                        - type: integer
                                          minimum: 5
                                          maximum: 80
                                        - type: 'null'
                                  required:
                                    - key
                                    - label
                                    - width
                                  additionalProperties: false
                            required:
                              - groupBy
                              - showSubtotals
                              - dedupCategory
                              - subcategoryAsSubtitle
                              - showGrandTotal
                              - headerBold
                              - columnAlign
                              - textOverflow
                              - maxLines
                              - columns
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: itemsGrid
                          props:
                            type: object
                            properties:
                              columns:
                                type: integer
                                minimum: 1
                                maximum: 4
                              itemsPerPage:
                                type: integer
                                minimum: 1
                                maximum: 12
                              groupBy:
                                default: none
                                type: string
                                enum:
                                  - none
                                  - category
                                  - area
                              cardPer:
                                default: item
                                type: string
                                enum:
                                  - item
                                  - unit
                              cardBackground:
                                default: '#FFFFFF'
                                anyOf:
                                  - type: string
                                    enum:
                                      - none
                                      - primary
                                      - secondary
                                  - type: string
                                    pattern: ^#[0-9A-F]{6}$
                              card:
                                minItems: 1
                                maxItems: 8
                                type: array
                                items:
                                  anyOf:
                                    - oneOf:
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: heading
                                            props:
                                              type: object
                                              properties:
                                                text:
                                                  type: string
                                                  maxLength: 500
                                                level:
                                                  type: string
                                                  enum:
                                                    - '1'
                                                    - '2'
                                                    - '3'
                                                align:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                size:
                                                  default: null
                                                  anyOf:
                                                    - type: number
                                                      minimum: 0.5
                                                      maximum: 3
                                                    - type: 'null'
                                                weight:
                                                  default: null
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - regular
                                                        - medium
                                                        - bold
                                                    - type: 'null'
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - text
                                                - level
                                                - align
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: text
                                            props:
                                              type: object
                                              properties:
                                                text:
                                                  type: string
                                                  maxLength: 8000
                                                align:
                                                  default: left
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                size:
                                                  default: null
                                                  anyOf:
                                                    - type: number
                                                      minimum: 0.5
                                                      maximum: 3
                                                    - type: 'null'
                                                weight:
                                                  default: null
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - regular
                                                        - medium
                                                        - bold
                                                    - type: 'null'
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - text
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: fieldList
                                            props:
                                              type: object
                                              properties:
                                                fields:
                                                  maxItems: 40
                                                  type: array
                                                  items:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                columns:
                                                  anyOf:
                                                    - type: integer
                                                      minimum: 1
                                                      maximum: 3
                                                    - type: string
                                                      const: auto
                                                labelLayout:
                                                  default: stacked
                                                  type: string
                                                  enum:
                                                    - stacked
                                                    - inline
                                                labelWidth:
                                                  default: 35
                                                  type: integer
                                                  minimum: 5
                                                  maximum: 60
                                                lineHeight:
                                                  default: 1.4
                                                  type: number
                                                  minimum: 0.85
                                                  maximum: 2.5
                                                fieldGap:
                                                  default: 1
                                                  type: number
                                                  minimum: 0
                                                  maximum: 4
                                                textOverflow:
                                                  default: wrap
                                                  type: string
                                                  enum:
                                                    - wrap
                                                    - clip
                                                maxLines:
                                                  default: 2
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 4
                                                columnWidths:
                                                  maxItems: 3
                                                  type: array
                                                  items:
                                                    type: integer
                                                    minimum: 5
                                                    maximum: 80
                                                columnAlign:
                                                  maxItems: 3
                                                  type: array
                                                  items:
                                                    type: string
                                                    enum:
                                                      - left
                                                      - center
                                                      - right
                                                align:
                                                  default: left
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - fields
                                                - columns
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: dataTable
                                            props:
                                              type: object
                                              properties:
                                                source:
                                                  default: components
                                                  type: string
                                                  enum:
                                                    - components
                                                    - items
                                                fields:
                                                  minItems: 1
                                                  maxItems: 30
                                                  type: array
                                                  items:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                showHeader:
                                                  type: boolean
                                                columnWidths:
                                                  default: {}
                                                  type: object
                                                  propertyNames:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  additionalProperties:
                                                    type: integer
                                                    minimum: 5
                                                    maximum: 80
                                                textOverflow:
                                                  default: wrap
                                                  type: string
                                                  enum:
                                                    - wrap
                                                    - clip
                                                maxLines:
                                                  default: 2
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 4
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - fields
                                                - showHeader
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: image
                                            props:
                                              type: object
                                              properties:
                                                source:
                                                  type: string
                                                  enum:
                                                    - primary
                                                    - secondary
                                                    - field
                                                    - asset
                                                field:
                                                  default: null
                                                  anyOf:
                                                    - type: string
                                                      maxLength: 120
                                                    - type: 'null'
                                                assetId:
                                                  anyOf:
                                                    - type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    - type: 'null'
                                                fit:
                                                  type: string
                                                  enum:
                                                    - contain
                                                    - cover
                                                ratio:
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - auto
                                                        - '1:1'
                                                        - '4:3'
                                                        - '3:2'
                                                        - '16:9'
                                                    - type: 'null'
                                                height:
                                                  type: string
                                                  enum:
                                                    - sm
                                                    - md
                                                    - lg
                                                align:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                caption:
                                                  type: string
                                                  maxLength: 500
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - source
                                                - fit
                                                - caption
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: gallery
                                            props:
                                              type: object
                                              properties:
                                                columns:
                                                  type: integer
                                                  minimum: 2
                                                  maximum: 8
                                                photos:
                                                  default: all
                                                  type: string
                                                  enum:
                                                    - all
                                                    - additional
                                                slots:
                                                  default: []
                                                  maxItems: 8
                                                  type: array
                                                  items:
                                                    anyOf:
                                                      - type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      - type: 'null'
                                                fit:
                                                  type: string
                                                  enum:
                                                    - contain
                                                    - cover
                                                ratio:
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - auto
                                                        - '1:1'
                                                        - '4:3'
                                                        - '3:2'
                                                        - '16:9'
                                                    - type: 'null'
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - columns
                                                - fit
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: imageFields
                                            props:
                                              type: object
                                              properties:
                                                fields:
                                                  maxItems: 20
                                                  type: array
                                                  items:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                imageField:
                                                  default: null
                                                  anyOf:
                                                    - type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    - type: 'null'
                                                imagePosition:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - right
                                                    - top
                                                fit:
                                                  type: string
                                                  enum:
                                                    - contain
                                                    - cover
                                                ratio:
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - auto
                                                        - '1:1'
                                                        - '4:3'
                                                        - '3:2'
                                                        - '16:9'
                                                    - type: 'null'
                                                height:
                                                  type: string
                                                  enum:
                                                    - sm
                                                    - md
                                                    - lg
                                                textOverflow:
                                                  default: wrap
                                                  type: string
                                                  enum:
                                                    - wrap
                                                    - clip
                                                maxLines:
                                                  default: 2
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 4
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - fields
                                                - imagePosition
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: logo
                                            props:
                                              type: object
                                              properties:
                                                slot:
                                                  type: string
                                                  enum:
                                                    - primary
                                                    - secondary
                                                    - footer
                                                align:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - slot
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: divider
                                            props:
                                              type: object
                                              properties:
                                                tone:
                                                  type: string
                                                  enum:
                                                    - primary
                                                    - secondary
                                                    - muted
                                                lineStyle:
                                                  type: string
                                                  enum:
                                                    - solid
                                                    - dashed
                                                    - dotted
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - tone
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: qrCode
                                            props:
                                              type: object
                                              properties:
                                                value:
                                                  type: string
                                                  maxLength: 1000
                                                size:
                                                  default: 24
                                                  type: integer
                                                  minimum: 12
                                                  maximum: 60
                                                align:
                                                  default: left
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - value
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: spacer
                                            props:
                                              type: object
                                              properties:
                                                size:
                                                  type: string
                                                  enum:
                                                    - sm
                                                    - md
                                                    - lg
                                                    - xl
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - size
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: guidance
                                            props:
                                              type: object
                                              properties:
                                                source:
                                                  type: string
                                                  enum:
                                                    - instructions
                                                    - requirements
                                                    - furnishedInstalledBy
                                                showGroupLabels:
                                                  default: true
                                                  type: boolean
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - source
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: areas
                                            props:
                                              type: object
                                              properties:
                                                columns:
                                                  default: 4
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 4
                                                showRoomNumbers:
                                                  default: false
                                                  type: boolean
                                                repeatEveryPage:
                                                  type: boolean
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: row
                                        cells:
                                          minItems: 1
                                          maxItems: 5
                                          type: array
                                          items:
                                            minItems: 1
                                            maxItems: 6
                                            type: array
                                            items:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: heading
                                                    props:
                                                      type: object
                                                      properties:
                                                        text:
                                                          type: string
                                                          maxLength: 500
                                                        level:
                                                          type: string
                                                          enum:
                                                            - '1'
                                                            - '2'
                                                            - '3'
                                                        align:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        size:
                                                          default: null
                                                          anyOf:
                                                            - type: number
                                                              minimum: 0.5
                                                              maximum: 3
                                                            - type: 'null'
                                                        weight:
                                                          default: null
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - regular
                                                                - medium
                                                                - bold
                                                            - type: 'null'
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - text
                                                        - level
                                                        - align
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: text
                                                    props:
                                                      type: object
                                                      properties:
                                                        text:
                                                          type: string
                                                          maxLength: 8000
                                                        align:
                                                          default: left
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        size:
                                                          default: null
                                                          anyOf:
                                                            - type: number
                                                              minimum: 0.5
                                                              maximum: 3
                                                            - type: 'null'
                                                        weight:
                                                          default: null
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - regular
                                                                - medium
                                                                - bold
                                                            - type: 'null'
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - text
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: fieldList
                                                    props:
                                                      type: object
                                                      properties:
                                                        fields:
                                                          maxItems: 40
                                                          type: array
                                                          items:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                        columns:
                                                          anyOf:
                                                            - type: integer
                                                              minimum: 1
                                                              maximum: 3
                                                            - type: string
                                                              const: auto
                                                        labelLayout:
                                                          default: stacked
                                                          type: string
                                                          enum:
                                                            - stacked
                                                            - inline
                                                        labelWidth:
                                                          default: 35
                                                          type: integer
                                                          minimum: 5
                                                          maximum: 60
                                                        lineHeight:
                                                          default: 1.4
                                                          type: number
                                                          minimum: 0.85
                                                          maximum: 2.5
                                                        fieldGap:
                                                          default: 1
                                                          type: number
                                                          minimum: 0
                                                          maximum: 4
                                                        textOverflow:
                                                          default: wrap
                                                          type: string
                                                          enum:
                                                            - wrap
                                                            - clip
                                                        maxLines:
                                                          default: 2
                                                          type: integer
                                                          minimum: 1
                                                          maximum: 4
                                                        columnWidths:
                                                          maxItems: 3
                                                          type: array
                                                          items:
                                                            type: integer
                                                            minimum: 5
                                                            maximum: 80
                                                        columnAlign:
                                                          maxItems: 3
                                                          type: array
                                                          items:
                                                            type: string
                                                            enum:
                                                              - left
                                                              - center
                                                              - right
                                                        align:
                                                          default: left
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - fields
                                                        - columns
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: dataTable
                                                    props:
                                                      type: object
                                                      properties:
                                                        source:
                                                          default: components
                                                          type: string
                                                          enum:
                                                            - components
                                                            - items
                                                        fields:
                                                          minItems: 1
                                                          maxItems: 30
                                                          type: array
                                                          items:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                        showHeader:
                                                          type: boolean
                                                        columnWidths:
                                                          default: {}
                                                          type: object
                                                          propertyNames:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          additionalProperties:
                                                            type: integer
                                                            minimum: 5
                                                            maximum: 80
                                                        textOverflow:
                                                          default: wrap
                                                          type: string
                                                          enum:
                                                            - wrap
                                                            - clip
                                                        maxLines:
                                                          default: 2
                                                          type: integer
                                                          minimum: 1
                                                          maximum: 4
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - fields
                                                        - showHeader
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: image
                                                    props:
                                                      type: object
                                                      properties:
                                                        source:
                                                          type: string
                                                          enum:
                                                            - primary
                                                            - secondary
                                                            - field
                                                            - asset
                                                        field:
                                                          default: null
                                                          anyOf:
                                                            - type: string
                                                              maxLength: 120
                                                            - type: 'null'
                                                        assetId:
                                                          anyOf:
                                                            - type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            - type: 'null'
                                                        fit:
                                                          type: string
                                                          enum:
                                                            - contain
                                                            - cover
                                                        ratio:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - auto
                                                                - '1:1'
                                                                - '4:3'
                                                                - '3:2'
                                                                - '16:9'
                                                            - type: 'null'
                                                        height:
                                                          type: string
                                                          enum:
                                                            - sm
                                                            - md
                                                            - lg
                                                        align:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        caption:
                                                          type: string
                                                          maxLength: 500
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - source
                                                        - fit
                                                        - caption
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: gallery
                                                    props:
                                                      type: object
                                                      properties:
                                                        columns:
                                                          type: integer
                                                          minimum: 2
                                                          maximum: 8
                                                        photos:
                                                          default: all
                                                          type: string
                                                          enum:
                                                            - all
                                                            - additional
                                                        slots:
                                                          default: []
                                                          maxItems: 8
                                                          type: array
                                                          items:
                                                            anyOf:
                                                              - type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              - type: 'null'
                                                        fit:
                                                          type: string
                                                          enum:
                                                            - contain
                                                            - cover
                                                        ratio:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - auto
                                                                - '1:1'
                                                                - '4:3'
                                                                - '3:2'
                                                                - '16:9'
                                                            - type: 'null'
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - columns
                                                        - fit
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: imageFields
                                                    props:
                                                      type: object
                                                      properties:
                                                        fields:
                                                          maxItems: 20
                                                          type: array
                                                          items:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                        imageField:
                                                          default: null
                                                          anyOf:
                                                            - type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            - type: 'null'
                                                        imagePosition:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - right
                                                            - top
                                                        fit:
                                                          type: string
                                                          enum:
                                                            - contain
                                                            - cover
                                                        ratio:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - auto
                                                                - '1:1'
                                                                - '4:3'
                                                                - '3:2'
                                                                - '16:9'
                                                            - type: 'null'
                                                        height:
                                                          type: string
                                                          enum:
                                                            - sm
                                                            - md
                                                            - lg
                                                        textOverflow:
                                                          default: wrap
                                                          type: string
                                                          enum:
                                                            - wrap
                                                            - clip
                                                        maxLines:
                                                          default: 2
                                                          type: integer
                                                          minimum: 1
                                                          maximum: 4
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - fields
                                                        - imagePosition
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: logo
                                                    props:
                                                      type: object
                                                      properties:
                                                        slot:
                                                          type: string
                                                          enum:
                                                            - primary
                                                            - secondary
                                                            - footer
                                                        align:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - slot
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: divider
                                                    props:
                                                      type: object
                                                      properties:
                                                        tone:
                                                          type: string
                                                          enum:
                                                            - primary
                                                            - secondary
                                                            - muted
                                                        lineStyle:
                                                          type: string
                                                          enum:
                                                            - solid
                                                            - dashed
                                                            - dotted
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - tone
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: qrCode
                                                    props:
                                                      type: object
                                                      properties:
                                                        value:
                                                          type: string
                                                          maxLength: 1000
                                                        size:
                                                          default: 24
                                                          type: integer
                                                          minimum: 12
                                                          maximum: 60
                                                        align:
                                                          default: left
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - value
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: spacer
                                                    props:
                                                      type: object
                                                      properties:
                                                        size:
                                                          type: string
                                                          enum:
                                                            - sm
                                                            - md
                                                            - lg
                                                            - xl
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - size
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: guidance
                                                    props:
                                                      type: object
                                                      properties:
                                                        source:
                                                          type: string
                                                          enum:
                                                            - instructions
                                                            - requirements
                                                            - furnishedInstalledBy
                                                        showGroupLabels:
                                                          default: true
                                                          type: boolean
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - source
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: areas
                                                    props:
                                                      type: object
                                                      properties:
                                                        columns:
                                                          default: 4
                                                          type: integer
                                                          minimum: 1
                                                          maximum: 4
                                                        showRoomNumbers:
                                                          default: false
                                                          type: boolean
                                                        repeatEveryPage:
                                                          type: boolean
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                        widths:
                                          minItems: 1
                                          maxItems: 5
                                          type: array
                                          items:
                                            type: integer
                                            minimum: 1
                                            maximum: 8
                                        background:
                                          default: none
                                          anyOf:
                                            - type: string
                                              enum:
                                                - none
                                                - primary
                                                - secondary
                                            - type: string
                                              pattern: ^#[0-9A-F]{6}$
                                        bleed:
                                          default: false
                                          type: boolean
                                      required:
                                        - id
                                        - type
                                        - cells
                                      additionalProperties: false
                            required:
                              - columns
                              - itemsPerPage
                              - card
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: contents
                          props:
                            type: object
                            properties:
                              columns:
                                minItems: 1
                                maxItems: 7
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - refNumber
                                    - name
                                    - category
                                    - subcategory
                                    - quantity
                                    - page
                                    - viewDetails
                                    - categoryCoverDetail
                              groupBy:
                                type: string
                                enum:
                                  - none
                                  - category
                                  - subcategory
                                  - area
                                  - manufacturer
                                  - supplier
                              subcategoryAsSubtitle:
                                type: boolean
                              headerBold:
                                type: boolean
                              columnWidths:
                                default: {}
                                type: object
                                propertyNames:
                                  type: string
                                  enum:
                                    - refNumber
                                    - name
                                    - category
                                    - subcategory
                                    - quantity
                                    - page
                                    - viewDetails
                                    - categoryCoverDetail
                                additionalProperties:
                                  type: integer
                                  minimum: 5
                                  maximum: 80
                              columnAlign:
                                default: {}
                                type: object
                                propertyNames:
                                  type: string
                                  enum:
                                    - refNumber
                                    - name
                                    - category
                                    - subcategory
                                    - quantity
                                    - page
                                    - viewDetails
                                    - categoryCoverDetail
                                additionalProperties:
                                  type: string
                                  enum:
                                    - left
                                    - center
                                    - right
                              showRoomNumbers:
                                default: false
                                type: boolean
                              roomColumns:
                                default: 4
                                type: integer
                                minimum: 1
                                maximum: 4
                              quantityBreakdown:
                                default: false
                                type: boolean
                            required:
                              - columns
                              - groupBy
                              - subcategoryAsSubtitle
                              - headerBold
                            additionalProperties: false
                        required:
                          - id
                          - type
                          - props
                        additionalProperties: false
                  - type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                        maxLength: 120
                      type:
                        type: string
                        const: row
                      cells:
                        minItems: 1
                        maxItems: 5
                        type: array
                        items:
                          minItems: 1
                          maxItems: 6
                          type: array
                          items:
                            oneOf:
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: heading
                                  props:
                                    type: object
                                    properties:
                                      text:
                                        type: string
                                        maxLength: 500
                                      level:
                                        type: string
                                        enum:
                                          - '1'
                                          - '2'
                                          - '3'
                                      align:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      size:
                                        default: null
                                        anyOf:
                                          - type: number
                                            minimum: 0.5
                                            maximum: 3
                                          - type: 'null'
                                      weight:
                                        default: null
                                        anyOf:
                                          - type: string
                                            enum:
                                              - regular
                                              - medium
                                              - bold
                                          - type: 'null'
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - text
                                      - level
                                      - align
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: text
                                  props:
                                    type: object
                                    properties:
                                      text:
                                        type: string
                                        maxLength: 8000
                                      align:
                                        default: left
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      size:
                                        default: null
                                        anyOf:
                                          - type: number
                                            minimum: 0.5
                                            maximum: 3
                                          - type: 'null'
                                      weight:
                                        default: null
                                        anyOf:
                                          - type: string
                                            enum:
                                              - regular
                                              - medium
                                              - bold
                                          - type: 'null'
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - text
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: fieldList
                                  props:
                                    type: object
                                    properties:
                                      fields:
                                        maxItems: 40
                                        type: array
                                        items:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                      columns:
                                        anyOf:
                                          - type: integer
                                            minimum: 1
                                            maximum: 3
                                          - type: string
                                            const: auto
                                      labelLayout:
                                        default: stacked
                                        type: string
                                        enum:
                                          - stacked
                                          - inline
                                      labelWidth:
                                        default: 35
                                        type: integer
                                        minimum: 5
                                        maximum: 60
                                      lineHeight:
                                        default: 1.4
                                        type: number
                                        minimum: 0.85
                                        maximum: 2.5
                                      fieldGap:
                                        default: 1
                                        type: number
                                        minimum: 0
                                        maximum: 4
                                      textOverflow:
                                        default: wrap
                                        type: string
                                        enum:
                                          - wrap
                                          - clip
                                      maxLines:
                                        default: 2
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      columnWidths:
                                        maxItems: 3
                                        type: array
                                        items:
                                          type: integer
                                          minimum: 5
                                          maximum: 80
                                      columnAlign:
                                        maxItems: 3
                                        type: array
                                        items:
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                      align:
                                        default: left
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - fields
                                      - columns
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: dataTable
                                  props:
                                    type: object
                                    properties:
                                      source:
                                        default: components
                                        type: string
                                        enum:
                                          - components
                                          - items
                                      fields:
                                        minItems: 1
                                        maxItems: 30
                                        type: array
                                        items:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                      showHeader:
                                        type: boolean
                                      columnWidths:
                                        default: {}
                                        type: object
                                        propertyNames:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        additionalProperties:
                                          type: integer
                                          minimum: 5
                                          maximum: 80
                                      textOverflow:
                                        default: wrap
                                        type: string
                                        enum:
                                          - wrap
                                          - clip
                                      maxLines:
                                        default: 2
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - fields
                                      - showHeader
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: image
                                  props:
                                    type: object
                                    properties:
                                      source:
                                        type: string
                                        enum:
                                          - primary
                                          - secondary
                                          - field
                                          - asset
                                      field:
                                        default: null
                                        anyOf:
                                          - type: string
                                            maxLength: 120
                                          - type: 'null'
                                      assetId:
                                        anyOf:
                                          - type: string
                                            minLength: 1
                                            maxLength: 120
                                          - type: 'null'
                                      fit:
                                        type: string
                                        enum:
                                          - contain
                                          - cover
                                      ratio:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - auto
                                              - '1:1'
                                              - '4:3'
                                              - '3:2'
                                              - '16:9'
                                          - type: 'null'
                                      height:
                                        type: string
                                        enum:
                                          - sm
                                          - md
                                          - lg
                                      align:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      caption:
                                        type: string
                                        maxLength: 500
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - source
                                      - fit
                                      - caption
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: gallery
                                  props:
                                    type: object
                                    properties:
                                      columns:
                                        type: integer
                                        minimum: 2
                                        maximum: 8
                                      photos:
                                        default: all
                                        type: string
                                        enum:
                                          - all
                                          - additional
                                      slots:
                                        default: []
                                        maxItems: 8
                                        type: array
                                        items:
                                          anyOf:
                                            - type: string
                                              minLength: 1
                                              maxLength: 120
                                            - type: 'null'
                                      fit:
                                        type: string
                                        enum:
                                          - contain
                                          - cover
                                      ratio:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - auto
                                              - '1:1'
                                              - '4:3'
                                              - '3:2'
                                              - '16:9'
                                          - type: 'null'
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - columns
                                      - fit
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: imageFields
                                  props:
                                    type: object
                                    properties:
                                      fields:
                                        maxItems: 20
                                        type: array
                                        items:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                      imageField:
                                        default: null
                                        anyOf:
                                          - type: string
                                            minLength: 1
                                            maxLength: 120
                                          - type: 'null'
                                      imagePosition:
                                        type: string
                                        enum:
                                          - left
                                          - right
                                          - top
                                      fit:
                                        type: string
                                        enum:
                                          - contain
                                          - cover
                                      ratio:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - auto
                                              - '1:1'
                                              - '4:3'
                                              - '3:2'
                                              - '16:9'
                                          - type: 'null'
                                      height:
                                        type: string
                                        enum:
                                          - sm
                                          - md
                                          - lg
                                      textOverflow:
                                        default: wrap
                                        type: string
                                        enum:
                                          - wrap
                                          - clip
                                      maxLines:
                                        default: 2
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - fields
                                      - imagePosition
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: logo
                                  props:
                                    type: object
                                    properties:
                                      slot:
                                        type: string
                                        enum:
                                          - primary
                                          - secondary
                                          - footer
                                      align:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - slot
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: divider
                                  props:
                                    type: object
                                    properties:
                                      tone:
                                        type: string
                                        enum:
                                          - primary
                                          - secondary
                                          - muted
                                      lineStyle:
                                        type: string
                                        enum:
                                          - solid
                                          - dashed
                                          - dotted
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - tone
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: qrCode
                                  props:
                                    type: object
                                    properties:
                                      value:
                                        type: string
                                        maxLength: 1000
                                      size:
                                        default: 24
                                        type: integer
                                        minimum: 12
                                        maximum: 60
                                      align:
                                        default: left
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - value
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: spacer
                                  props:
                                    type: object
                                    properties:
                                      size:
                                        type: string
                                        enum:
                                          - sm
                                          - md
                                          - lg
                                          - xl
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - size
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: guidance
                                  props:
                                    type: object
                                    properties:
                                      source:
                                        type: string
                                        enum:
                                          - instructions
                                          - requirements
                                          - furnishedInstalledBy
                                      showGroupLabels:
                                        default: true
                                        type: boolean
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - source
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: areas
                                  props:
                                    type: object
                                    properties:
                                      columns:
                                        default: 4
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      showRoomNumbers:
                                        default: false
                                        type: boolean
                                      repeatEveryPage:
                                        type: boolean
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                      widths:
                        minItems: 1
                        maxItems: 5
                        type: array
                        items:
                          type: integer
                          minimum: 1
                          maximum: 8
                      background:
                        default: none
                        anyOf:
                          - type: string
                            enum:
                              - none
                              - primary
                              - secondary
                          - type: string
                            pattern: ^#[0-9A-F]{6}$
                      bleed:
                        default: false
                        type: boolean
                    required:
                      - id
                      - type
                      - cells
                    additionalProperties: false
            categoryVariants:
              maxItems: 100
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    maxLength: 120
                  name:
                    type: string
                    maxLength: 120
                  categoryIds:
                    maxItems: 100
                    type: array
                    items:
                      type: string
                      minLength: 1
                      maxLength: 120
                  subcategoryIds:
                    maxItems: 300
                    type: array
                    items:
                      type: string
                      minLength: 1
                      maxLength: 120
                  includeCover:
                    type: boolean
                  blocks:
                    maxItems: 80
                    type: array
                    items:
                      anyOf:
                        - oneOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: heading
                                props:
                                  type: object
                                  properties:
                                    text:
                                      type: string
                                      maxLength: 500
                                    level:
                                      type: string
                                      enum:
                                        - '1'
                                        - '2'
                                        - '3'
                                    align:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                    size:
                                      default: null
                                      anyOf:
                                        - type: number
                                          minimum: 0.5
                                          maximum: 3
                                        - type: 'null'
                                    weight:
                                      default: null
                                      anyOf:
                                        - type: string
                                          enum:
                                            - regular
                                            - medium
                                            - bold
                                        - type: 'null'
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - text
                                    - level
                                    - align
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: text
                                props:
                                  type: object
                                  properties:
                                    text:
                                      type: string
                                      maxLength: 8000
                                    align:
                                      default: left
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                    size:
                                      default: null
                                      anyOf:
                                        - type: number
                                          minimum: 0.5
                                          maximum: 3
                                        - type: 'null'
                                    weight:
                                      default: null
                                      anyOf:
                                        - type: string
                                          enum:
                                            - regular
                                            - medium
                                            - bold
                                        - type: 'null'
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - text
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: fieldList
                                props:
                                  type: object
                                  properties:
                                    fields:
                                      maxItems: 40
                                      type: array
                                      items:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                    columns:
                                      anyOf:
                                        - type: integer
                                          minimum: 1
                                          maximum: 3
                                        - type: string
                                          const: auto
                                    labelLayout:
                                      default: stacked
                                      type: string
                                      enum:
                                        - stacked
                                        - inline
                                    labelWidth:
                                      default: 35
                                      type: integer
                                      minimum: 5
                                      maximum: 60
                                    lineHeight:
                                      default: 1.4
                                      type: number
                                      minimum: 0.85
                                      maximum: 2.5
                                    fieldGap:
                                      default: 1
                                      type: number
                                      minimum: 0
                                      maximum: 4
                                    textOverflow:
                                      default: wrap
                                      type: string
                                      enum:
                                        - wrap
                                        - clip
                                    maxLines:
                                      default: 2
                                      type: integer
                                      minimum: 1
                                      maximum: 4
                                    columnWidths:
                                      maxItems: 3
                                      type: array
                                      items:
                                        type: integer
                                        minimum: 5
                                        maximum: 80
                                    columnAlign:
                                      maxItems: 3
                                      type: array
                                      items:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                    align:
                                      default: left
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - fields
                                    - columns
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: dataTable
                                props:
                                  type: object
                                  properties:
                                    source:
                                      default: components
                                      type: string
                                      enum:
                                        - components
                                        - items
                                    fields:
                                      minItems: 1
                                      maxItems: 30
                                      type: array
                                      items:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                    showHeader:
                                      type: boolean
                                    columnWidths:
                                      default: {}
                                      type: object
                                      propertyNames:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      additionalProperties:
                                        type: integer
                                        minimum: 5
                                        maximum: 80
                                    textOverflow:
                                      default: wrap
                                      type: string
                                      enum:
                                        - wrap
                                        - clip
                                    maxLines:
                                      default: 2
                                      type: integer
                                      minimum: 1
                                      maximum: 4
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - fields
                                    - showHeader
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: image
                                props:
                                  type: object
                                  properties:
                                    source:
                                      type: string
                                      enum:
                                        - primary
                                        - secondary
                                        - field
                                        - asset
                                    field:
                                      default: null
                                      anyOf:
                                        - type: string
                                          maxLength: 120
                                        - type: 'null'
                                    assetId:
                                      anyOf:
                                        - type: string
                                          minLength: 1
                                          maxLength: 120
                                        - type: 'null'
                                    fit:
                                      type: string
                                      enum:
                                        - contain
                                        - cover
                                    ratio:
                                      anyOf:
                                        - type: string
                                          enum:
                                            - auto
                                            - '1:1'
                                            - '4:3'
                                            - '3:2'
                                            - '16:9'
                                        - type: 'null'
                                    height:
                                      type: string
                                      enum:
                                        - sm
                                        - md
                                        - lg
                                    align:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                    caption:
                                      type: string
                                      maxLength: 500
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - source
                                    - fit
                                    - caption
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: gallery
                                props:
                                  type: object
                                  properties:
                                    columns:
                                      type: integer
                                      minimum: 2
                                      maximum: 8
                                    photos:
                                      default: all
                                      type: string
                                      enum:
                                        - all
                                        - additional
                                    slots:
                                      default: []
                                      maxItems: 8
                                      type: array
                                      items:
                                        anyOf:
                                          - type: string
                                            minLength: 1
                                            maxLength: 120
                                          - type: 'null'
                                    fit:
                                      type: string
                                      enum:
                                        - contain
                                        - cover
                                    ratio:
                                      anyOf:
                                        - type: string
                                          enum:
                                            - auto
                                            - '1:1'
                                            - '4:3'
                                            - '3:2'
                                            - '16:9'
                                        - type: 'null'
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - columns
                                    - fit
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: imageFields
                                props:
                                  type: object
                                  properties:
                                    fields:
                                      maxItems: 20
                                      type: array
                                      items:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                    imageField:
                                      default: null
                                      anyOf:
                                        - type: string
                                          minLength: 1
                                          maxLength: 120
                                        - type: 'null'
                                    imagePosition:
                                      type: string
                                      enum:
                                        - left
                                        - right
                                        - top
                                    fit:
                                      type: string
                                      enum:
                                        - contain
                                        - cover
                                    ratio:
                                      anyOf:
                                        - type: string
                                          enum:
                                            - auto
                                            - '1:1'
                                            - '4:3'
                                            - '3:2'
                                            - '16:9'
                                        - type: 'null'
                                    height:
                                      type: string
                                      enum:
                                        - sm
                                        - md
                                        - lg
                                    textOverflow:
                                      default: wrap
                                      type: string
                                      enum:
                                        - wrap
                                        - clip
                                    maxLines:
                                      default: 2
                                      type: integer
                                      minimum: 1
                                      maximum: 4
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - fields
                                    - imagePosition
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: logo
                                props:
                                  type: object
                                  properties:
                                    slot:
                                      type: string
                                      enum:
                                        - primary
                                        - secondary
                                        - footer
                                    align:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - slot
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: divider
                                props:
                                  type: object
                                  properties:
                                    tone:
                                      type: string
                                      enum:
                                        - primary
                                        - secondary
                                        - muted
                                    lineStyle:
                                      type: string
                                      enum:
                                        - solid
                                        - dashed
                                        - dotted
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - tone
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: qrCode
                                props:
                                  type: object
                                  properties:
                                    value:
                                      type: string
                                      maxLength: 1000
                                    size:
                                      default: 24
                                      type: integer
                                      minimum: 12
                                      maximum: 60
                                    align:
                                      default: left
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - value
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: spacer
                                props:
                                  type: object
                                  properties:
                                    size:
                                      type: string
                                      enum:
                                        - sm
                                        - md
                                        - lg
                                        - xl
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - size
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: guidance
                                props:
                                  type: object
                                  properties:
                                    source:
                                      type: string
                                      enum:
                                        - instructions
                                        - requirements
                                        - furnishedInstalledBy
                                    showGroupLabels:
                                      default: true
                                      type: boolean
                                    repeatEveryPage:
                                      type: boolean
                                  required:
                                    - source
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: areas
                                props:
                                  type: object
                                  properties:
                                    columns:
                                      default: 4
                                      type: integer
                                      minimum: 1
                                      maximum: 4
                                    showRoomNumbers:
                                      default: false
                                      type: boolean
                                    repeatEveryPage:
                                      type: boolean
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: schedule
                                props:
                                  type: object
                                  properties:
                                    groupBy:
                                      type: string
                                      enum:
                                        - none
                                        - category
                                        - area
                                        - areaTree
                                        - manufacturer
                                        - supplier
                                    showSubtotals:
                                      type: boolean
                                    dedupCategory:
                                      type: boolean
                                    subcategoryAsSubtitle:
                                      type: boolean
                                    showGrandTotal:
                                      type: boolean
                                    headerBold:
                                      type: boolean
                                    columnAlign:
                                      type: object
                                      propertyNames:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      additionalProperties:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                    textOverflow:
                                      type: string
                                      enum:
                                        - wrap
                                        - clip
                                    maxLines:
                                      type: integer
                                      minimum: 1
                                      maximum: 4
                                    showRoomNumbers:
                                      default: false
                                      type: boolean
                                    roomColumns:
                                      default: 4
                                      type: integer
                                      minimum: 1
                                      maximum: 4
                                    quantityBreakdown:
                                      default: false
                                      type: boolean
                                    bandDetails:
                                      default: none
                                      type: string
                                      enum:
                                        - none
                                        - company
                                    roomTotals:
                                      default: false
                                      type: boolean
                                    currency:
                                      default: null
                                      anyOf:
                                        - type: string
                                          pattern: ^[A-Z]{3}$
                                        - type: 'null'
                                    columns:
                                      minItems: 1
                                      maxItems: 30
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          label:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          width:
                                            anyOf:
                                              - type: integer
                                                minimum: 5
                                                maximum: 80
                                              - type: 'null'
                                        required:
                                          - key
                                          - label
                                          - width
                                        additionalProperties: false
                                  required:
                                    - groupBy
                                    - showSubtotals
                                    - dedupCategory
                                    - subcategoryAsSubtitle
                                    - showGrandTotal
                                    - headerBold
                                    - columnAlign
                                    - textOverflow
                                    - maxLines
                                    - columns
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: itemsGrid
                                props:
                                  type: object
                                  properties:
                                    columns:
                                      type: integer
                                      minimum: 1
                                      maximum: 4
                                    itemsPerPage:
                                      type: integer
                                      minimum: 1
                                      maximum: 12
                                    groupBy:
                                      default: none
                                      type: string
                                      enum:
                                        - none
                                        - category
                                        - area
                                    cardPer:
                                      default: item
                                      type: string
                                      enum:
                                        - item
                                        - unit
                                    cardBackground:
                                      default: '#FFFFFF'
                                      anyOf:
                                        - type: string
                                          enum:
                                            - none
                                            - primary
                                            - secondary
                                        - type: string
                                          pattern: ^#[0-9A-F]{6}$
                                    card:
                                      minItems: 1
                                      maxItems: 8
                                      type: array
                                      items:
                                        anyOf:
                                          - oneOf:
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: heading
                                                  props:
                                                    type: object
                                                    properties:
                                                      text:
                                                        type: string
                                                        maxLength: 500
                                                      level:
                                                        type: string
                                                        enum:
                                                          - '1'
                                                          - '2'
                                                          - '3'
                                                      align:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      size:
                                                        default: null
                                                        anyOf:
                                                          - type: number
                                                            minimum: 0.5
                                                            maximum: 3
                                                          - type: 'null'
                                                      weight:
                                                        default: null
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - regular
                                                              - medium
                                                              - bold
                                                          - type: 'null'
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - text
                                                      - level
                                                      - align
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: text
                                                  props:
                                                    type: object
                                                    properties:
                                                      text:
                                                        type: string
                                                        maxLength: 8000
                                                      align:
                                                        default: left
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      size:
                                                        default: null
                                                        anyOf:
                                                          - type: number
                                                            minimum: 0.5
                                                            maximum: 3
                                                          - type: 'null'
                                                      weight:
                                                        default: null
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - regular
                                                              - medium
                                                              - bold
                                                          - type: 'null'
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - text
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: fieldList
                                                  props:
                                                    type: object
                                                    properties:
                                                      fields:
                                                        maxItems: 40
                                                        type: array
                                                        items:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                      columns:
                                                        anyOf:
                                                          - type: integer
                                                            minimum: 1
                                                            maximum: 3
                                                          - type: string
                                                            const: auto
                                                      labelLayout:
                                                        default: stacked
                                                        type: string
                                                        enum:
                                                          - stacked
                                                          - inline
                                                      labelWidth:
                                                        default: 35
                                                        type: integer
                                                        minimum: 5
                                                        maximum: 60
                                                      lineHeight:
                                                        default: 1.4
                                                        type: number
                                                        minimum: 0.85
                                                        maximum: 2.5
                                                      fieldGap:
                                                        default: 1
                                                        type: number
                                                        minimum: 0
                                                        maximum: 4
                                                      textOverflow:
                                                        default: wrap
                                                        type: string
                                                        enum:
                                                          - wrap
                                                          - clip
                                                      maxLines:
                                                        default: 2
                                                        type: integer
                                                        minimum: 1
                                                        maximum: 4
                                                      columnWidths:
                                                        maxItems: 3
                                                        type: array
                                                        items:
                                                          type: integer
                                                          minimum: 5
                                                          maximum: 80
                                                      columnAlign:
                                                        maxItems: 3
                                                        type: array
                                                        items:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                      align:
                                                        default: left
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - fields
                                                      - columns
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: dataTable
                                                  props:
                                                    type: object
                                                    properties:
                                                      source:
                                                        default: components
                                                        type: string
                                                        enum:
                                                          - components
                                                          - items
                                                      fields:
                                                        minItems: 1
                                                        maxItems: 30
                                                        type: array
                                                        items:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                      showHeader:
                                                        type: boolean
                                                      columnWidths:
                                                        default: {}
                                                        type: object
                                                        propertyNames:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        additionalProperties:
                                                          type: integer
                                                          minimum: 5
                                                          maximum: 80
                                                      textOverflow:
                                                        default: wrap
                                                        type: string
                                                        enum:
                                                          - wrap
                                                          - clip
                                                      maxLines:
                                                        default: 2
                                                        type: integer
                                                        minimum: 1
                                                        maximum: 4
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - fields
                                                      - showHeader
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: image
                                                  props:
                                                    type: object
                                                    properties:
                                                      source:
                                                        type: string
                                                        enum:
                                                          - primary
                                                          - secondary
                                                          - field
                                                          - asset
                                                      field:
                                                        default: null
                                                        anyOf:
                                                          - type: string
                                                            maxLength: 120
                                                          - type: 'null'
                                                      assetId:
                                                        anyOf:
                                                          - type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          - type: 'null'
                                                      fit:
                                                        type: string
                                                        enum:
                                                          - contain
                                                          - cover
                                                      ratio:
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - auto
                                                              - '1:1'
                                                              - '4:3'
                                                              - '3:2'
                                                              - '16:9'
                                                          - type: 'null'
                                                      height:
                                                        type: string
                                                        enum:
                                                          - sm
                                                          - md
                                                          - lg
                                                      align:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      caption:
                                                        type: string
                                                        maxLength: 500
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - source
                                                      - fit
                                                      - caption
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: gallery
                                                  props:
                                                    type: object
                                                    properties:
                                                      columns:
                                                        type: integer
                                                        minimum: 2
                                                        maximum: 8
                                                      photos:
                                                        default: all
                                                        type: string
                                                        enum:
                                                          - all
                                                          - additional
                                                      slots:
                                                        default: []
                                                        maxItems: 8
                                                        type: array
                                                        items:
                                                          anyOf:
                                                            - type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            - type: 'null'
                                                      fit:
                                                        type: string
                                                        enum:
                                                          - contain
                                                          - cover
                                                      ratio:
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - auto
                                                              - '1:1'
                                                              - '4:3'
                                                              - '3:2'
                                                              - '16:9'
                                                          - type: 'null'
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - columns
                                                      - fit
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: imageFields
                                                  props:
                                                    type: object
                                                    properties:
                                                      fields:
                                                        maxItems: 20
                                                        type: array
                                                        items:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                      imageField:
                                                        default: null
                                                        anyOf:
                                                          - type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          - type: 'null'
                                                      imagePosition:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - right
                                                          - top
                                                      fit:
                                                        type: string
                                                        enum:
                                                          - contain
                                                          - cover
                                                      ratio:
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - auto
                                                              - '1:1'
                                                              - '4:3'
                                                              - '3:2'
                                                              - '16:9'
                                                          - type: 'null'
                                                      height:
                                                        type: string
                                                        enum:
                                                          - sm
                                                          - md
                                                          - lg
                                                      textOverflow:
                                                        default: wrap
                                                        type: string
                                                        enum:
                                                          - wrap
                                                          - clip
                                                      maxLines:
                                                        default: 2
                                                        type: integer
                                                        minimum: 1
                                                        maximum: 4
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - fields
                                                      - imagePosition
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: logo
                                                  props:
                                                    type: object
                                                    properties:
                                                      slot:
                                                        type: string
                                                        enum:
                                                          - primary
                                                          - secondary
                                                          - footer
                                                      align:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - slot
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: divider
                                                  props:
                                                    type: object
                                                    properties:
                                                      tone:
                                                        type: string
                                                        enum:
                                                          - primary
                                                          - secondary
                                                          - muted
                                                      lineStyle:
                                                        type: string
                                                        enum:
                                                          - solid
                                                          - dashed
                                                          - dotted
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - tone
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: qrCode
                                                  props:
                                                    type: object
                                                    properties:
                                                      value:
                                                        type: string
                                                        maxLength: 1000
                                                      size:
                                                        default: 24
                                                        type: integer
                                                        minimum: 12
                                                        maximum: 60
                                                      align:
                                                        default: left
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - value
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: spacer
                                                  props:
                                                    type: object
                                                    properties:
                                                      size:
                                                        type: string
                                                        enum:
                                                          - sm
                                                          - md
                                                          - lg
                                                          - xl
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - size
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: guidance
                                                  props:
                                                    type: object
                                                    properties:
                                                      source:
                                                        type: string
                                                        enum:
                                                          - instructions
                                                          - requirements
                                                          - furnishedInstalledBy
                                                      showGroupLabels:
                                                        default: true
                                                        type: boolean
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - source
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: areas
                                                  props:
                                                    type: object
                                                    properties:
                                                      columns:
                                                        default: 4
                                                        type: integer
                                                        minimum: 1
                                                        maximum: 4
                                                      showRoomNumbers:
                                                        default: false
                                                        type: boolean
                                                      repeatEveryPage:
                                                        type: boolean
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                          - type: object
                                            properties:
                                              id:
                                                type: string
                                                minLength: 1
                                                maxLength: 120
                                              type:
                                                type: string
                                                const: row
                                              cells:
                                                minItems: 1
                                                maxItems: 5
                                                type: array
                                                items:
                                                  minItems: 1
                                                  maxItems: 6
                                                  type: array
                                                  items:
                                                    oneOf:
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: heading
                                                          props:
                                                            type: object
                                                            properties:
                                                              text:
                                                                type: string
                                                                maxLength: 500
                                                              level:
                                                                type: string
                                                                enum:
                                                                  - '1'
                                                                  - '2'
                                                                  - '3'
                                                              align:
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - center
                                                                  - right
                                                              size:
                                                                default: null
                                                                anyOf:
                                                                  - type: number
                                                                    minimum: 0.5
                                                                    maximum: 3
                                                                  - type: 'null'
                                                              weight:
                                                                default: null
                                                                anyOf:
                                                                  - type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  - type: 'null'
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - text
                                                              - level
                                                              - align
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: text
                                                          props:
                                                            type: object
                                                            properties:
                                                              text:
                                                                type: string
                                                                maxLength: 8000
                                                              align:
                                                                default: left
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - center
                                                                  - right
                                                              size:
                                                                default: null
                                                                anyOf:
                                                                  - type: number
                                                                    minimum: 0.5
                                                                    maximum: 3
                                                                  - type: 'null'
                                                              weight:
                                                                default: null
                                                                anyOf:
                                                                  - type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  - type: 'null'
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - text
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: fieldList
                                                          props:
                                                            type: object
                                                            properties:
                                                              fields:
                                                                maxItems: 40
                                                                type: array
                                                                items:
                                                                  type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                              columns:
                                                                anyOf:
                                                                  - type: integer
                                                                    minimum: 1
                                                                    maximum: 3
                                                                  - type: string
                                                                    const: auto
                                                              labelLayout:
                                                                default: stacked
                                                                type: string
                                                                enum:
                                                                  - stacked
                                                                  - inline
                                                              labelWidth:
                                                                default: 35
                                                                type: integer
                                                                minimum: 5
                                                                maximum: 60
                                                              lineHeight:
                                                                default: 1.4
                                                                type: number
                                                                minimum: 0.85
                                                                maximum: 2.5
                                                              fieldGap:
                                                                default: 1
                                                                type: number
                                                                minimum: 0
                                                                maximum: 4
                                                              textOverflow:
                                                                default: wrap
                                                                type: string
                                                                enum:
                                                                  - wrap
                                                                  - clip
                                                              maxLines:
                                                                default: 2
                                                                type: integer
                                                                minimum: 1
                                                                maximum: 4
                                                              columnWidths:
                                                                maxItems: 3
                                                                type: array
                                                                items:
                                                                  type: integer
                                                                  minimum: 5
                                                                  maximum: 80
                                                              columnAlign:
                                                                maxItems: 3
                                                                type: array
                                                                items:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                              align:
                                                                default: left
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - center
                                                                  - right
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - fields
                                                              - columns
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: dataTable
                                                          props:
                                                            type: object
                                                            properties:
                                                              source:
                                                                default: components
                                                                type: string
                                                                enum:
                                                                  - components
                                                                  - items
                                                              fields:
                                                                minItems: 1
                                                                maxItems: 30
                                                                type: array
                                                                items:
                                                                  type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                              showHeader:
                                                                type: boolean
                                                              columnWidths:
                                                                default: {}
                                                                type: object
                                                                propertyNames:
                                                                  type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                                additionalProperties:
                                                                  type: integer
                                                                  minimum: 5
                                                                  maximum: 80
                                                              textOverflow:
                                                                default: wrap
                                                                type: string
                                                                enum:
                                                                  - wrap
                                                                  - clip
                                                              maxLines:
                                                                default: 2
                                                                type: integer
                                                                minimum: 1
                                                                maximum: 4
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - fields
                                                              - showHeader
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: image
                                                          props:
                                                            type: object
                                                            properties:
                                                              source:
                                                                type: string
                                                                enum:
                                                                  - primary
                                                                  - secondary
                                                                  - field
                                                                  - asset
                                                              field:
                                                                default: null
                                                                anyOf:
                                                                  - type: string
                                                                    maxLength: 120
                                                                  - type: 'null'
                                                              assetId:
                                                                anyOf:
                                                                  - type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                  - type: 'null'
                                                              fit:
                                                                type: string
                                                                enum:
                                                                  - contain
                                                                  - cover
                                                              ratio:
                                                                anyOf:
                                                                  - type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  - type: 'null'
                                                              height:
                                                                type: string
                                                                enum:
                                                                  - sm
                                                                  - md
                                                                  - lg
                                                              align:
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - center
                                                                  - right
                                                              caption:
                                                                type: string
                                                                maxLength: 500
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - source
                                                              - fit
                                                              - caption
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: gallery
                                                          props:
                                                            type: object
                                                            properties:
                                                              columns:
                                                                type: integer
                                                                minimum: 2
                                                                maximum: 8
                                                              photos:
                                                                default: all
                                                                type: string
                                                                enum:
                                                                  - all
                                                                  - additional
                                                              slots:
                                                                default: []
                                                                maxItems: 8
                                                                type: array
                                                                items:
                                                                  anyOf:
                                                                    - {}
                                                                    - {}
                                                              fit:
                                                                type: string
                                                                enum:
                                                                  - contain
                                                                  - cover
                                                              ratio:
                                                                anyOf:
                                                                  - type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  - type: 'null'
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - columns
                                                              - fit
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: imageFields
                                                          props:
                                                            type: object
                                                            properties:
                                                              fields:
                                                                maxItems: 20
                                                                type: array
                                                                items:
                                                                  type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                              imageField:
                                                                default: null
                                                                anyOf:
                                                                  - type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                  - type: 'null'
                                                              imagePosition:
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - right
                                                                  - top
                                                              fit:
                                                                type: string
                                                                enum:
                                                                  - contain
                                                                  - cover
                                                              ratio:
                                                                anyOf:
                                                                  - type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  - type: 'null'
                                                              height:
                                                                type: string
                                                                enum:
                                                                  - sm
                                                                  - md
                                                                  - lg
                                                              textOverflow:
                                                                default: wrap
                                                                type: string
                                                                enum:
                                                                  - wrap
                                                                  - clip
                                                              maxLines:
                                                                default: 2
                                                                type: integer
                                                                minimum: 1
                                                                maximum: 4
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - fields
                                                              - imagePosition
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: logo
                                                          props:
                                                            type: object
                                                            properties:
                                                              slot:
                                                                type: string
                                                                enum:
                                                                  - primary
                                                                  - secondary
                                                                  - footer
                                                              align:
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - center
                                                                  - right
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - slot
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: divider
                                                          props:
                                                            type: object
                                                            properties:
                                                              tone:
                                                                type: string
                                                                enum:
                                                                  - primary
                                                                  - secondary
                                                                  - muted
                                                              lineStyle:
                                                                type: string
                                                                enum:
                                                                  - solid
                                                                  - dashed
                                                                  - dotted
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - tone
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: qrCode
                                                          props:
                                                            type: object
                                                            properties:
                                                              value:
                                                                type: string
                                                                maxLength: 1000
                                                              size:
                                                                default: 24
                                                                type: integer
                                                                minimum: 12
                                                                maximum: 60
                                                              align:
                                                                default: left
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - center
                                                                  - right
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - value
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: spacer
                                                          props:
                                                            type: object
                                                            properties:
                                                              size:
                                                                type: string
                                                                enum:
                                                                  - sm
                                                                  - md
                                                                  - lg
                                                                  - xl
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - size
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: guidance
                                                          props:
                                                            type: object
                                                            properties:
                                                              source:
                                                                type: string
                                                                enum:
                                                                  - instructions
                                                                  - requirements
                                                                  - furnishedInstalledBy
                                                              showGroupLabels:
                                                                default: true
                                                                type: boolean
                                                              repeatEveryPage:
                                                                type: boolean
                                                            required:
                                                              - source
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                                      - type: object
                                                        properties:
                                                          id:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          type:
                                                            type: string
                                                            const: areas
                                                          props:
                                                            type: object
                                                            properties:
                                                              columns:
                                                                default: 4
                                                                type: integer
                                                                minimum: 1
                                                                maximum: 4
                                                              showRoomNumbers:
                                                                default: false
                                                                type: boolean
                                                              repeatEveryPage:
                                                                type: boolean
                                                            additionalProperties: false
                                                        required:
                                                          - id
                                                          - type
                                                          - props
                                                        additionalProperties: false
                                              widths:
                                                minItems: 1
                                                maxItems: 5
                                                type: array
                                                items:
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 8
                                              background:
                                                default: none
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - none
                                                      - primary
                                                      - secondary
                                                  - type: string
                                                    pattern: ^#[0-9A-F]{6}$
                                              bleed:
                                                default: false
                                                type: boolean
                                            required:
                                              - id
                                              - type
                                              - cells
                                            additionalProperties: false
                                  required:
                                    - columns
                                    - itemsPerPage
                                    - card
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: contents
                                props:
                                  type: object
                                  properties:
                                    columns:
                                      minItems: 1
                                      maxItems: 7
                                      type: array
                                      items:
                                        type: string
                                        enum:
                                          - refNumber
                                          - name
                                          - category
                                          - subcategory
                                          - quantity
                                          - page
                                          - viewDetails
                                          - categoryCoverDetail
                                    groupBy:
                                      type: string
                                      enum:
                                        - none
                                        - category
                                        - subcategory
                                        - area
                                        - manufacturer
                                        - supplier
                                    subcategoryAsSubtitle:
                                      type: boolean
                                    headerBold:
                                      type: boolean
                                    columnWidths:
                                      default: {}
                                      type: object
                                      propertyNames:
                                        type: string
                                        enum:
                                          - refNumber
                                          - name
                                          - category
                                          - subcategory
                                          - quantity
                                          - page
                                          - viewDetails
                                          - categoryCoverDetail
                                      additionalProperties:
                                        type: integer
                                        minimum: 5
                                        maximum: 80
                                    columnAlign:
                                      default: {}
                                      type: object
                                      propertyNames:
                                        type: string
                                        enum:
                                          - refNumber
                                          - name
                                          - category
                                          - subcategory
                                          - quantity
                                          - page
                                          - viewDetails
                                          - categoryCoverDetail
                                      additionalProperties:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                    showRoomNumbers:
                                      default: false
                                      type: boolean
                                    roomColumns:
                                      default: 4
                                      type: integer
                                      minimum: 1
                                      maximum: 4
                                    quantityBreakdown:
                                      default: false
                                      type: boolean
                                  required:
                                    - columns
                                    - groupBy
                                    - subcategoryAsSubtitle
                                    - headerBold
                                  additionalProperties: false
                              required:
                                - id
                                - type
                                - props
                              additionalProperties: false
                        - type: object
                          properties:
                            id:
                              type: string
                              minLength: 1
                              maxLength: 120
                            type:
                              type: string
                              const: row
                            cells:
                              minItems: 1
                              maxItems: 5
                              type: array
                              items:
                                minItems: 1
                                maxItems: 6
                                type: array
                                items:
                                  oneOf:
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: heading
                                        props:
                                          type: object
                                          properties:
                                            text:
                                              type: string
                                              maxLength: 500
                                            level:
                                              type: string
                                              enum:
                                                - '1'
                                                - '2'
                                                - '3'
                                            align:
                                              type: string
                                              enum:
                                                - left
                                                - center
                                                - right
                                            size:
                                              default: null
                                              anyOf:
                                                - type: number
                                                  minimum: 0.5
                                                  maximum: 3
                                                - type: 'null'
                                            weight:
                                              default: null
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - regular
                                                    - medium
                                                    - bold
                                                - type: 'null'
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - text
                                            - level
                                            - align
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: text
                                        props:
                                          type: object
                                          properties:
                                            text:
                                              type: string
                                              maxLength: 8000
                                            align:
                                              default: left
                                              type: string
                                              enum:
                                                - left
                                                - center
                                                - right
                                            size:
                                              default: null
                                              anyOf:
                                                - type: number
                                                  minimum: 0.5
                                                  maximum: 3
                                                - type: 'null'
                                            weight:
                                              default: null
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - regular
                                                    - medium
                                                    - bold
                                                - type: 'null'
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - text
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: fieldList
                                        props:
                                          type: object
                                          properties:
                                            fields:
                                              maxItems: 40
                                              type: array
                                              items:
                                                type: string
                                                minLength: 1
                                                maxLength: 120
                                            columns:
                                              anyOf:
                                                - type: integer
                                                  minimum: 1
                                                  maximum: 3
                                                - type: string
                                                  const: auto
                                            labelLayout:
                                              default: stacked
                                              type: string
                                              enum:
                                                - stacked
                                                - inline
                                            labelWidth:
                                              default: 35
                                              type: integer
                                              minimum: 5
                                              maximum: 60
                                            lineHeight:
                                              default: 1.4
                                              type: number
                                              minimum: 0.85
                                              maximum: 2.5
                                            fieldGap:
                                              default: 1
                                              type: number
                                              minimum: 0
                                              maximum: 4
                                            textOverflow:
                                              default: wrap
                                              type: string
                                              enum:
                                                - wrap
                                                - clip
                                            maxLines:
                                              default: 2
                                              type: integer
                                              minimum: 1
                                              maximum: 4
                                            columnWidths:
                                              maxItems: 3
                                              type: array
                                              items:
                                                type: integer
                                                minimum: 5
                                                maximum: 80
                                            columnAlign:
                                              maxItems: 3
                                              type: array
                                              items:
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                            align:
                                              default: left
                                              type: string
                                              enum:
                                                - left
                                                - center
                                                - right
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - fields
                                            - columns
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: dataTable
                                        props:
                                          type: object
                                          properties:
                                            source:
                                              default: components
                                              type: string
                                              enum:
                                                - components
                                                - items
                                            fields:
                                              minItems: 1
                                              maxItems: 30
                                              type: array
                                              items:
                                                type: string
                                                minLength: 1
                                                maxLength: 120
                                            showHeader:
                                              type: boolean
                                            columnWidths:
                                              default: {}
                                              type: object
                                              propertyNames:
                                                type: string
                                                minLength: 1
                                                maxLength: 120
                                              additionalProperties:
                                                type: integer
                                                minimum: 5
                                                maximum: 80
                                            textOverflow:
                                              default: wrap
                                              type: string
                                              enum:
                                                - wrap
                                                - clip
                                            maxLines:
                                              default: 2
                                              type: integer
                                              minimum: 1
                                              maximum: 4
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - fields
                                            - showHeader
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: image
                                        props:
                                          type: object
                                          properties:
                                            source:
                                              type: string
                                              enum:
                                                - primary
                                                - secondary
                                                - field
                                                - asset
                                            field:
                                              default: null
                                              anyOf:
                                                - type: string
                                                  maxLength: 120
                                                - type: 'null'
                                            assetId:
                                              anyOf:
                                                - type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                - type: 'null'
                                            fit:
                                              type: string
                                              enum:
                                                - contain
                                                - cover
                                            ratio:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - auto
                                                    - '1:1'
                                                    - '4:3'
                                                    - '3:2'
                                                    - '16:9'
                                                - type: 'null'
                                            height:
                                              type: string
                                              enum:
                                                - sm
                                                - md
                                                - lg
                                            align:
                                              type: string
                                              enum:
                                                - left
                                                - center
                                                - right
                                            caption:
                                              type: string
                                              maxLength: 500
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - source
                                            - fit
                                            - caption
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: gallery
                                        props:
                                          type: object
                                          properties:
                                            columns:
                                              type: integer
                                              minimum: 2
                                              maximum: 8
                                            photos:
                                              default: all
                                              type: string
                                              enum:
                                                - all
                                                - additional
                                            slots:
                                              default: []
                                              maxItems: 8
                                              type: array
                                              items:
                                                anyOf:
                                                  - type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  - type: 'null'
                                            fit:
                                              type: string
                                              enum:
                                                - contain
                                                - cover
                                            ratio:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - auto
                                                    - '1:1'
                                                    - '4:3'
                                                    - '3:2'
                                                    - '16:9'
                                                - type: 'null'
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - columns
                                            - fit
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: imageFields
                                        props:
                                          type: object
                                          properties:
                                            fields:
                                              maxItems: 20
                                              type: array
                                              items:
                                                type: string
                                                minLength: 1
                                                maxLength: 120
                                            imageField:
                                              default: null
                                              anyOf:
                                                - type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                - type: 'null'
                                            imagePosition:
                                              type: string
                                              enum:
                                                - left
                                                - right
                                                - top
                                            fit:
                                              type: string
                                              enum:
                                                - contain
                                                - cover
                                            ratio:
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - auto
                                                    - '1:1'
                                                    - '4:3'
                                                    - '3:2'
                                                    - '16:9'
                                                - type: 'null'
                                            height:
                                              type: string
                                              enum:
                                                - sm
                                                - md
                                                - lg
                                            textOverflow:
                                              default: wrap
                                              type: string
                                              enum:
                                                - wrap
                                                - clip
                                            maxLines:
                                              default: 2
                                              type: integer
                                              minimum: 1
                                              maximum: 4
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - fields
                                            - imagePosition
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: logo
                                        props:
                                          type: object
                                          properties:
                                            slot:
                                              type: string
                                              enum:
                                                - primary
                                                - secondary
                                                - footer
                                            align:
                                              type: string
                                              enum:
                                                - left
                                                - center
                                                - right
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - slot
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: divider
                                        props:
                                          type: object
                                          properties:
                                            tone:
                                              type: string
                                              enum:
                                                - primary
                                                - secondary
                                                - muted
                                            lineStyle:
                                              type: string
                                              enum:
                                                - solid
                                                - dashed
                                                - dotted
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - tone
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: qrCode
                                        props:
                                          type: object
                                          properties:
                                            value:
                                              type: string
                                              maxLength: 1000
                                            size:
                                              default: 24
                                              type: integer
                                              minimum: 12
                                              maximum: 60
                                            align:
                                              default: left
                                              type: string
                                              enum:
                                                - left
                                                - center
                                                - right
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - value
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: spacer
                                        props:
                                          type: object
                                          properties:
                                            size:
                                              type: string
                                              enum:
                                                - sm
                                                - md
                                                - lg
                                                - xl
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - size
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: guidance
                                        props:
                                          type: object
                                          properties:
                                            source:
                                              type: string
                                              enum:
                                                - instructions
                                                - requirements
                                                - furnishedInstalledBy
                                            showGroupLabels:
                                              default: true
                                              type: boolean
                                            repeatEveryPage:
                                              type: boolean
                                          required:
                                            - source
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        type:
                                          type: string
                                          const: areas
                                        props:
                                          type: object
                                          properties:
                                            columns:
                                              default: 4
                                              type: integer
                                              minimum: 1
                                              maximum: 4
                                            showRoomNumbers:
                                              default: false
                                              type: boolean
                                            repeatEveryPage:
                                              type: boolean
                                          additionalProperties: false
                                      required:
                                        - id
                                        - type
                                        - props
                                      additionalProperties: false
                            widths:
                              minItems: 1
                              maxItems: 5
                              type: array
                              items:
                                type: integer
                                minimum: 1
                                maximum: 8
                            background:
                              default: none
                              anyOf:
                                - type: string
                                  enum:
                                    - none
                                    - primary
                                    - secondary
                                - type: string
                                  pattern: ^#[0-9A-F]{6}$
                            bleed:
                              default: false
                              type: boolean
                          required:
                            - id
                            - type
                            - cells
                          additionalProperties: false
                required:
                  - id
                  - categoryIds
                  - subcategoryIds
                  - includeCover
                  - blocks
                additionalProperties: false
            variantOrder:
              maxItems: 101
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 120
            builderPages:
              maxItems: 40
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      kind:
                        type: string
                        const: pdf
                      id:
                        type: string
                        minLength: 1
                        maxLength: 120
                      name:
                        type: string
                        minLength: 1
                        maxLength: 120
                      assetId:
                        type: string
                        minLength: 1
                        maxLength: 120
                      pageCount:
                        type: integer
                        minimum: 1
                        maximum: 200
                    required:
                      - kind
                      - id
                      - name
                      - assetId
                      - pageCount
                    additionalProperties: false
                  - type: object
                    properties:
                      kind:
                        default: blocks
                        type: string
                        const: blocks
                      id:
                        type: string
                        minLength: 1
                        maxLength: 120
                      name:
                        type: string
                        minLength: 1
                        maxLength: 120
                      presentation:
                        type: object
                        properties:
                          page:
                            type: object
                            properties:
                              size:
                                type: string
                                enum:
                                  - A4
                                  - A3
                                  - letter
                              orientation:
                                type: string
                                enum:
                                  - portrait
                                  - landscape
                              margin:
                                type: string
                                enum:
                                  - compact
                                  - standard
                                  - generous
                            required:
                              - size
                              - orientation
                              - margin
                            additionalProperties: false
                          style:
                            type: object
                            properties:
                              fontFamily:
                                anyOf:
                                  - type: string
                                    enum:
                                      - roboto
                                      - source-serif
                                      - noto-sans
                                  - type: 'null'
                              primaryColor:
                                anyOf:
                                  - type: string
                                    pattern: ^#[0-9A-F]{6}$
                                  - type: 'null'
                              secondaryColor:
                                anyOf:
                                  - type: string
                                    pattern: ^#[0-9A-F]{6}$
                                  - type: 'null'
                              bodyScale:
                                anyOf:
                                  - type: number
                                    minimum: 0.8
                                    maximum: 1.25
                                  - type: 'null'
                              backgroundColor:
                                default: null
                                anyOf:
                                  - type: string
                                    pattern: ^#[0-9A-F]{6}$
                                  - type: 'null'
                            required:
                              - fontFamily
                              - primaryColor
                              - secondaryColor
                              - bodyScale
                            additionalProperties: false
                          header:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                              showLogo:
                                type: boolean
                              logoSlot:
                                type: string
                                enum:
                                  - primary
                                  - secondary
                                  - footer
                              logoPosition:
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              logoAlign:
                                default: center
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              logoSize:
                                type: string
                                enum:
                                  - S
                                  - M
                                  - L
                              text:
                                type: string
                                maxLength: 500
                              textPosition:
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                            required:
                              - enabled
                              - showLogo
                              - logoSlot
                              - logoPosition
                              - logoSize
                              - text
                              - textPosition
                            additionalProperties: false
                          footer:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                              text:
                                type: string
                                maxLength: 500
                              textPosition:
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              showPageNumbers:
                                type: boolean
                              numberPosition:
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                              showLogo:
                                type: boolean
                              logoSlot:
                                type: string
                                enum:
                                  - primary
                                  - secondary
                                  - footer
                              logoPosition:
                                default: center
                                type: string
                                enum:
                                  - left
                                  - center
                                  - right
                            required:
                              - enabled
                              - text
                              - textPosition
                              - showPageNumbers
                              - numberPosition
                              - showLogo
                              - logoSlot
                            additionalProperties: false
                          fitToPages:
                            default: 0
                            type: integer
                            minimum: 0
                            maximum: 2
                        required:
                          - page
                          - style
                          - header
                          - footer
                        additionalProperties: false
                      blocks:
                        maxItems: 80
                        type: array
                        items:
                          anyOf:
                            - oneOf:
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: heading
                                    props:
                                      type: object
                                      properties:
                                        text:
                                          type: string
                                          maxLength: 500
                                        level:
                                          type: string
                                          enum:
                                            - '1'
                                            - '2'
                                            - '3'
                                        align:
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                        size:
                                          default: null
                                          anyOf:
                                            - type: number
                                              minimum: 0.5
                                              maximum: 3
                                            - type: 'null'
                                        weight:
                                          default: null
                                          anyOf:
                                            - type: string
                                              enum:
                                                - regular
                                                - medium
                                                - bold
                                            - type: 'null'
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - text
                                        - level
                                        - align
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: text
                                    props:
                                      type: object
                                      properties:
                                        text:
                                          type: string
                                          maxLength: 8000
                                        align:
                                          default: left
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                        size:
                                          default: null
                                          anyOf:
                                            - type: number
                                              minimum: 0.5
                                              maximum: 3
                                            - type: 'null'
                                        weight:
                                          default: null
                                          anyOf:
                                            - type: string
                                              enum:
                                                - regular
                                                - medium
                                                - bold
                                            - type: 'null'
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - text
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: fieldList
                                    props:
                                      type: object
                                      properties:
                                        fields:
                                          maxItems: 40
                                          type: array
                                          items:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                        columns:
                                          anyOf:
                                            - type: integer
                                              minimum: 1
                                              maximum: 3
                                            - type: string
                                              const: auto
                                        labelLayout:
                                          default: stacked
                                          type: string
                                          enum:
                                            - stacked
                                            - inline
                                        labelWidth:
                                          default: 35
                                          type: integer
                                          minimum: 5
                                          maximum: 60
                                        lineHeight:
                                          default: 1.4
                                          type: number
                                          minimum: 0.85
                                          maximum: 2.5
                                        fieldGap:
                                          default: 1
                                          type: number
                                          minimum: 0
                                          maximum: 4
                                        textOverflow:
                                          default: wrap
                                          type: string
                                          enum:
                                            - wrap
                                            - clip
                                        maxLines:
                                          default: 2
                                          type: integer
                                          minimum: 1
                                          maximum: 4
                                        columnWidths:
                                          maxItems: 3
                                          type: array
                                          items:
                                            type: integer
                                            minimum: 5
                                            maximum: 80
                                        columnAlign:
                                          maxItems: 3
                                          type: array
                                          items:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                        align:
                                          default: left
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - fields
                                        - columns
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: dataTable
                                    props:
                                      type: object
                                      properties:
                                        source:
                                          default: components
                                          type: string
                                          enum:
                                            - components
                                            - items
                                        fields:
                                          minItems: 1
                                          maxItems: 30
                                          type: array
                                          items:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                        showHeader:
                                          type: boolean
                                        columnWidths:
                                          default: {}
                                          type: object
                                          propertyNames:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          additionalProperties:
                                            type: integer
                                            minimum: 5
                                            maximum: 80
                                        textOverflow:
                                          default: wrap
                                          type: string
                                          enum:
                                            - wrap
                                            - clip
                                        maxLines:
                                          default: 2
                                          type: integer
                                          minimum: 1
                                          maximum: 4
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - fields
                                        - showHeader
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: image
                                    props:
                                      type: object
                                      properties:
                                        source:
                                          type: string
                                          enum:
                                            - primary
                                            - secondary
                                            - field
                                            - asset
                                        field:
                                          default: null
                                          anyOf:
                                            - type: string
                                              maxLength: 120
                                            - type: 'null'
                                        assetId:
                                          anyOf:
                                            - type: string
                                              minLength: 1
                                              maxLength: 120
                                            - type: 'null'
                                        fit:
                                          type: string
                                          enum:
                                            - contain
                                            - cover
                                        ratio:
                                          anyOf:
                                            - type: string
                                              enum:
                                                - auto
                                                - '1:1'
                                                - '4:3'
                                                - '3:2'
                                                - '16:9'
                                            - type: 'null'
                                        height:
                                          type: string
                                          enum:
                                            - sm
                                            - md
                                            - lg
                                        align:
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                        caption:
                                          type: string
                                          maxLength: 500
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - source
                                        - fit
                                        - caption
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: gallery
                                    props:
                                      type: object
                                      properties:
                                        columns:
                                          type: integer
                                          minimum: 2
                                          maximum: 8
                                        photos:
                                          default: all
                                          type: string
                                          enum:
                                            - all
                                            - additional
                                        slots:
                                          default: []
                                          maxItems: 8
                                          type: array
                                          items:
                                            anyOf:
                                              - type: string
                                                minLength: 1
                                                maxLength: 120
                                              - type: 'null'
                                        fit:
                                          type: string
                                          enum:
                                            - contain
                                            - cover
                                        ratio:
                                          anyOf:
                                            - type: string
                                              enum:
                                                - auto
                                                - '1:1'
                                                - '4:3'
                                                - '3:2'
                                                - '16:9'
                                            - type: 'null'
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - columns
                                        - fit
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: imageFields
                                    props:
                                      type: object
                                      properties:
                                        fields:
                                          maxItems: 20
                                          type: array
                                          items:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                        imageField:
                                          default: null
                                          anyOf:
                                            - type: string
                                              minLength: 1
                                              maxLength: 120
                                            - type: 'null'
                                        imagePosition:
                                          type: string
                                          enum:
                                            - left
                                            - right
                                            - top
                                        fit:
                                          type: string
                                          enum:
                                            - contain
                                            - cover
                                        ratio:
                                          anyOf:
                                            - type: string
                                              enum:
                                                - auto
                                                - '1:1'
                                                - '4:3'
                                                - '3:2'
                                                - '16:9'
                                            - type: 'null'
                                        height:
                                          type: string
                                          enum:
                                            - sm
                                            - md
                                            - lg
                                        textOverflow:
                                          default: wrap
                                          type: string
                                          enum:
                                            - wrap
                                            - clip
                                        maxLines:
                                          default: 2
                                          type: integer
                                          minimum: 1
                                          maximum: 4
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - fields
                                        - imagePosition
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: logo
                                    props:
                                      type: object
                                      properties:
                                        slot:
                                          type: string
                                          enum:
                                            - primary
                                            - secondary
                                            - footer
                                        align:
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - slot
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: divider
                                    props:
                                      type: object
                                      properties:
                                        tone:
                                          type: string
                                          enum:
                                            - primary
                                            - secondary
                                            - muted
                                        lineStyle:
                                          type: string
                                          enum:
                                            - solid
                                            - dashed
                                            - dotted
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - tone
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: qrCode
                                    props:
                                      type: object
                                      properties:
                                        value:
                                          type: string
                                          maxLength: 1000
                                        size:
                                          default: 24
                                          type: integer
                                          minimum: 12
                                          maximum: 60
                                        align:
                                          default: left
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - value
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: spacer
                                    props:
                                      type: object
                                      properties:
                                        size:
                                          type: string
                                          enum:
                                            - sm
                                            - md
                                            - lg
                                            - xl
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - size
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: guidance
                                    props:
                                      type: object
                                      properties:
                                        source:
                                          type: string
                                          enum:
                                            - instructions
                                            - requirements
                                            - furnishedInstalledBy
                                        showGroupLabels:
                                          default: true
                                          type: boolean
                                        repeatEveryPage:
                                          type: boolean
                                      required:
                                        - source
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: areas
                                    props:
                                      type: object
                                      properties:
                                        columns:
                                          default: 4
                                          type: integer
                                          minimum: 1
                                          maximum: 4
                                        showRoomNumbers:
                                          default: false
                                          type: boolean
                                        repeatEveryPage:
                                          type: boolean
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: schedule
                                    props:
                                      type: object
                                      properties:
                                        groupBy:
                                          type: string
                                          enum:
                                            - none
                                            - category
                                            - area
                                            - areaTree
                                            - manufacturer
                                            - supplier
                                        showSubtotals:
                                          type: boolean
                                        dedupCategory:
                                          type: boolean
                                        subcategoryAsSubtitle:
                                          type: boolean
                                        showGrandTotal:
                                          type: boolean
                                        headerBold:
                                          type: boolean
                                        columnAlign:
                                          type: object
                                          propertyNames:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          additionalProperties:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                        textOverflow:
                                          type: string
                                          enum:
                                            - wrap
                                            - clip
                                        maxLines:
                                          type: integer
                                          minimum: 1
                                          maximum: 4
                                        showRoomNumbers:
                                          default: false
                                          type: boolean
                                        roomColumns:
                                          default: 4
                                          type: integer
                                          minimum: 1
                                          maximum: 4
                                        quantityBreakdown:
                                          default: false
                                          type: boolean
                                        bandDetails:
                                          default: none
                                          type: string
                                          enum:
                                            - none
                                            - company
                                        roomTotals:
                                          default: false
                                          type: boolean
                                        currency:
                                          default: null
                                          anyOf:
                                            - type: string
                                              pattern: ^[A-Z]{3}$
                                            - type: 'null'
                                        columns:
                                          minItems: 1
                                          maxItems: 30
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              key:
                                                type: string
                                                minLength: 1
                                                maxLength: 120
                                              label:
                                                type: string
                                                minLength: 1
                                                maxLength: 120
                                              width:
                                                anyOf:
                                                  - type: integer
                                                    minimum: 5
                                                    maximum: 80
                                                  - type: 'null'
                                            required:
                                              - key
                                              - label
                                              - width
                                            additionalProperties: false
                                      required:
                                        - groupBy
                                        - showSubtotals
                                        - dedupCategory
                                        - subcategoryAsSubtitle
                                        - showGrandTotal
                                        - headerBold
                                        - columnAlign
                                        - textOverflow
                                        - maxLines
                                        - columns
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: itemsGrid
                                    props:
                                      type: object
                                      properties:
                                        columns:
                                          type: integer
                                          minimum: 1
                                          maximum: 4
                                        itemsPerPage:
                                          type: integer
                                          minimum: 1
                                          maximum: 12
                                        groupBy:
                                          default: none
                                          type: string
                                          enum:
                                            - none
                                            - category
                                            - area
                                        cardPer:
                                          default: item
                                          type: string
                                          enum:
                                            - item
                                            - unit
                                        cardBackground:
                                          default: '#FFFFFF'
                                          anyOf:
                                            - type: string
                                              enum:
                                                - none
                                                - primary
                                                - secondary
                                            - type: string
                                              pattern: ^#[0-9A-F]{6}$
                                        card:
                                          minItems: 1
                                          maxItems: 8
                                          type: array
                                          items:
                                            anyOf:
                                              - oneOf:
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: heading
                                                      props:
                                                        type: object
                                                        properties:
                                                          text:
                                                            type: string
                                                            maxLength: 500
                                                          level:
                                                            type: string
                                                            enum:
                                                              - '1'
                                                              - '2'
                                                              - '3'
                                                          align:
                                                            type: string
                                                            enum:
                                                              - left
                                                              - center
                                                              - right
                                                          size:
                                                            default: null
                                                            anyOf:
                                                              - type: number
                                                                minimum: 0.5
                                                                maximum: 3
                                                              - type: 'null'
                                                          weight:
                                                            default: null
                                                            anyOf:
                                                              - type: string
                                                                enum:
                                                                  - regular
                                                                  - medium
                                                                  - bold
                                                              - type: 'null'
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - text
                                                          - level
                                                          - align
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: text
                                                      props:
                                                        type: object
                                                        properties:
                                                          text:
                                                            type: string
                                                            maxLength: 8000
                                                          align:
                                                            default: left
                                                            type: string
                                                            enum:
                                                              - left
                                                              - center
                                                              - right
                                                          size:
                                                            default: null
                                                            anyOf:
                                                              - type: number
                                                                minimum: 0.5
                                                                maximum: 3
                                                              - type: 'null'
                                                          weight:
                                                            default: null
                                                            anyOf:
                                                              - type: string
                                                                enum:
                                                                  - regular
                                                                  - medium
                                                                  - bold
                                                              - type: 'null'
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - text
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: fieldList
                                                      props:
                                                        type: object
                                                        properties:
                                                          fields:
                                                            maxItems: 40
                                                            type: array
                                                            items:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                          columns:
                                                            anyOf:
                                                              - type: integer
                                                                minimum: 1
                                                                maximum: 3
                                                              - type: string
                                                                const: auto
                                                          labelLayout:
                                                            default: stacked
                                                            type: string
                                                            enum:
                                                              - stacked
                                                              - inline
                                                          labelWidth:
                                                            default: 35
                                                            type: integer
                                                            minimum: 5
                                                            maximum: 60
                                                          lineHeight:
                                                            default: 1.4
                                                            type: number
                                                            minimum: 0.85
                                                            maximum: 2.5
                                                          fieldGap:
                                                            default: 1
                                                            type: number
                                                            minimum: 0
                                                            maximum: 4
                                                          textOverflow:
                                                            default: wrap
                                                            type: string
                                                            enum:
                                                              - wrap
                                                              - clip
                                                          maxLines:
                                                            default: 2
                                                            type: integer
                                                            minimum: 1
                                                            maximum: 4
                                                          columnWidths:
                                                            maxItems: 3
                                                            type: array
                                                            items:
                                                              type: integer
                                                              minimum: 5
                                                              maximum: 80
                                                          columnAlign:
                                                            maxItems: 3
                                                            type: array
                                                            items:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                          align:
                                                            default: left
                                                            type: string
                                                            enum:
                                                              - left
                                                              - center
                                                              - right
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - fields
                                                          - columns
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: dataTable
                                                      props:
                                                        type: object
                                                        properties:
                                                          source:
                                                            default: components
                                                            type: string
                                                            enum:
                                                              - components
                                                              - items
                                                          fields:
                                                            minItems: 1
                                                            maxItems: 30
                                                            type: array
                                                            items:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                          showHeader:
                                                            type: boolean
                                                          columnWidths:
                                                            default: {}
                                                            type: object
                                                            propertyNames:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            additionalProperties:
                                                              type: integer
                                                              minimum: 5
                                                              maximum: 80
                                                          textOverflow:
                                                            default: wrap
                                                            type: string
                                                            enum:
                                                              - wrap
                                                              - clip
                                                          maxLines:
                                                            default: 2
                                                            type: integer
                                                            minimum: 1
                                                            maximum: 4
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - fields
                                                          - showHeader
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: image
                                                      props:
                                                        type: object
                                                        properties:
                                                          source:
                                                            type: string
                                                            enum:
                                                              - primary
                                                              - secondary
                                                              - field
                                                              - asset
                                                          field:
                                                            default: null
                                                            anyOf:
                                                              - type: string
                                                                maxLength: 120
                                                              - type: 'null'
                                                          assetId:
                                                            anyOf:
                                                              - type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              - type: 'null'
                                                          fit:
                                                            type: string
                                                            enum:
                                                              - contain
                                                              - cover
                                                          ratio:
                                                            anyOf:
                                                              - type: string
                                                                enum:
                                                                  - auto
                                                                  - '1:1'
                                                                  - '4:3'
                                                                  - '3:2'
                                                                  - '16:9'
                                                              - type: 'null'
                                                          height:
                                                            type: string
                                                            enum:
                                                              - sm
                                                              - md
                                                              - lg
                                                          align:
                                                            type: string
                                                            enum:
                                                              - left
                                                              - center
                                                              - right
                                                          caption:
                                                            type: string
                                                            maxLength: 500
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - source
                                                          - fit
                                                          - caption
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: gallery
                                                      props:
                                                        type: object
                                                        properties:
                                                          columns:
                                                            type: integer
                                                            minimum: 2
                                                            maximum: 8
                                                          photos:
                                                            default: all
                                                            type: string
                                                            enum:
                                                              - all
                                                              - additional
                                                          slots:
                                                            default: []
                                                            maxItems: 8
                                                            type: array
                                                            items:
                                                              anyOf:
                                                                - type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                                - type: 'null'
                                                          fit:
                                                            type: string
                                                            enum:
                                                              - contain
                                                              - cover
                                                          ratio:
                                                            anyOf:
                                                              - type: string
                                                                enum:
                                                                  - auto
                                                                  - '1:1'
                                                                  - '4:3'
                                                                  - '3:2'
                                                                  - '16:9'
                                                              - type: 'null'
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - columns
                                                          - fit
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: imageFields
                                                      props:
                                                        type: object
                                                        properties:
                                                          fields:
                                                            maxItems: 20
                                                            type: array
                                                            items:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                          imageField:
                                                            default: null
                                                            anyOf:
                                                              - type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              - type: 'null'
                                                          imagePosition:
                                                            type: string
                                                            enum:
                                                              - left
                                                              - right
                                                              - top
                                                          fit:
                                                            type: string
                                                            enum:
                                                              - contain
                                                              - cover
                                                          ratio:
                                                            anyOf:
                                                              - type: string
                                                                enum:
                                                                  - auto
                                                                  - '1:1'
                                                                  - '4:3'
                                                                  - '3:2'
                                                                  - '16:9'
                                                              - type: 'null'
                                                          height:
                                                            type: string
                                                            enum:
                                                              - sm
                                                              - md
                                                              - lg
                                                          textOverflow:
                                                            default: wrap
                                                            type: string
                                                            enum:
                                                              - wrap
                                                              - clip
                                                          maxLines:
                                                            default: 2
                                                            type: integer
                                                            minimum: 1
                                                            maximum: 4
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - fields
                                                          - imagePosition
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: logo
                                                      props:
                                                        type: object
                                                        properties:
                                                          slot:
                                                            type: string
                                                            enum:
                                                              - primary
                                                              - secondary
                                                              - footer
                                                          align:
                                                            type: string
                                                            enum:
                                                              - left
                                                              - center
                                                              - right
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - slot
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: divider
                                                      props:
                                                        type: object
                                                        properties:
                                                          tone:
                                                            type: string
                                                            enum:
                                                              - primary
                                                              - secondary
                                                              - muted
                                                          lineStyle:
                                                            type: string
                                                            enum:
                                                              - solid
                                                              - dashed
                                                              - dotted
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - tone
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: qrCode
                                                      props:
                                                        type: object
                                                        properties:
                                                          value:
                                                            type: string
                                                            maxLength: 1000
                                                          size:
                                                            default: 24
                                                            type: integer
                                                            minimum: 12
                                                            maximum: 60
                                                          align:
                                                            default: left
                                                            type: string
                                                            enum:
                                                              - left
                                                              - center
                                                              - right
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - value
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: spacer
                                                      props:
                                                        type: object
                                                        properties:
                                                          size:
                                                            type: string
                                                            enum:
                                                              - sm
                                                              - md
                                                              - lg
                                                              - xl
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - size
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: guidance
                                                      props:
                                                        type: object
                                                        properties:
                                                          source:
                                                            type: string
                                                            enum:
                                                              - instructions
                                                              - requirements
                                                              - furnishedInstalledBy
                                                          showGroupLabels:
                                                            default: true
                                                            type: boolean
                                                          repeatEveryPage:
                                                            type: boolean
                                                        required:
                                                          - source
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      id:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      type:
                                                        type: string
                                                        const: areas
                                                      props:
                                                        type: object
                                                        properties:
                                                          columns:
                                                            default: 4
                                                            type: integer
                                                            minimum: 1
                                                            maximum: 4
                                                          showRoomNumbers:
                                                            default: false
                                                            type: boolean
                                                          repeatEveryPage:
                                                            type: boolean
                                                        additionalProperties: false
                                                    required:
                                                      - id
                                                      - type
                                                      - props
                                                    additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: row
                                                  cells:
                                                    minItems: 1
                                                    maxItems: 5
                                                    type: array
                                                    items:
                                                      minItems: 1
                                                      maxItems: 6
                                                      type: array
                                                      items:
                                                        oneOf:
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: heading
                                                              props:
                                                                type: object
                                                                properties:
                                                                  text:
                                                                    type: string
                                                                    maxLength: 500
                                                                  level:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  align:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  size:
                                                                    default: null
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  weight:
                                                                    default: null
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - text
                                                                  - level
                                                                  - align
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: text
                                                              props:
                                                                type: object
                                                                properties:
                                                                  text:
                                                                    type: string
                                                                    maxLength: 8000
                                                                  align:
                                                                    default: left
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  size:
                                                                    default: null
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  weight:
                                                                    default: null
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - text
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: fieldList
                                                              props:
                                                                type: object
                                                                properties:
                                                                  fields:
                                                                    maxItems: 40
                                                                    type: array
                                                                    items: {}
                                                                  columns:
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  labelLayout:
                                                                    default: stacked
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  labelWidth:
                                                                    default: 35
                                                                    type: integer
                                                                    minimum: 5
                                                                    maximum: 60
                                                                  lineHeight:
                                                                    default: 1.4
                                                                    type: number
                                                                    minimum: 0.85
                                                                    maximum: 2.5
                                                                  fieldGap:
                                                                    default: 1
                                                                    type: number
                                                                    minimum: 0
                                                                    maximum: 4
                                                                  textOverflow:
                                                                    default: wrap
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  maxLines:
                                                                    default: 2
                                                                    type: integer
                                                                    minimum: 1
                                                                    maximum: 4
                                                                  columnWidths:
                                                                    maxItems: 3
                                                                    type: array
                                                                    items: {}
                                                                  columnAlign:
                                                                    maxItems: 3
                                                                    type: array
                                                                    items: {}
                                                                  align:
                                                                    default: left
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - fields
                                                                  - columns
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: dataTable
                                                              props:
                                                                type: object
                                                                properties:
                                                                  source:
                                                                    default: components
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  fields:
                                                                    minItems: 1
                                                                    maxItems: 30
                                                                    type: array
                                                                    items: {}
                                                                  showHeader:
                                                                    type: boolean
                                                                  columnWidths:
                                                                    default: {}
                                                                    type: object
                                                                    propertyNames:
                                                                      type: {}
                                                                      minLength: {}
                                                                      maxLength: {}
                                                                    additionalProperties: {}
                                                                  textOverflow:
                                                                    default: wrap
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  maxLines:
                                                                    default: 2
                                                                    type: integer
                                                                    minimum: 1
                                                                    maximum: 4
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - fields
                                                                  - showHeader
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: image
                                                              props:
                                                                type: object
                                                                properties:
                                                                  source:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  field:
                                                                    default: null
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  assetId:
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  fit:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  ratio:
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  height:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  align:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  caption:
                                                                    type: string
                                                                    maxLength: 500
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - source
                                                                  - fit
                                                                  - caption
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: gallery
                                                              props:
                                                                type: object
                                                                properties:
                                                                  columns:
                                                                    type: integer
                                                                    minimum: 2
                                                                    maximum: 8
                                                                  photos:
                                                                    default: all
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  slots:
                                                                    default: []
                                                                    maxItems: 8
                                                                    type: array
                                                                    items: {}
                                                                  fit:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  ratio:
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - columns
                                                                  - fit
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: imageFields
                                                              props:
                                                                type: object
                                                                properties:
                                                                  fields:
                                                                    maxItems: 20
                                                                    type: array
                                                                    items: {}
                                                                  imageField:
                                                                    default: null
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  imagePosition:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  fit:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  ratio:
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                  height:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  textOverflow:
                                                                    default: wrap
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                  maxLines:
                                                                    default: 2
                                                                    type: integer
                                                                    minimum: 1
                                                                    maximum: 4
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - fields
                                                                  - imagePosition
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: logo
                                                              props:
                                                                type: object
                                                                properties:
                                                                  slot:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  align:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - slot
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: divider
                                                              props:
                                                                type: object
                                                                properties:
                                                                  tone:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  lineStyle:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - tone
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: qrCode
                                                              props:
                                                                type: object
                                                                properties:
                                                                  value:
                                                                    type: string
                                                                    maxLength: 1000
                                                                  size:
                                                                    default: 24
                                                                    type: integer
                                                                    minimum: 12
                                                                    maximum: 60
                                                                  align:
                                                                    default: left
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - value
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: spacer
                                                              props:
                                                                type: object
                                                                properties:
                                                                  size:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - size
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: guidance
                                                              props:
                                                                type: object
                                                                properties:
                                                                  source:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                  showGroupLabels:
                                                                    default: true
                                                                    type: boolean
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                required:
                                                                  - source
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                          - type: object
                                                            properties:
                                                              id:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              type:
                                                                type: string
                                                                const: areas
                                                              props:
                                                                type: object
                                                                properties:
                                                                  columns:
                                                                    default: 4
                                                                    type: integer
                                                                    minimum: 1
                                                                    maximum: 4
                                                                  showRoomNumbers:
                                                                    default: false
                                                                    type: boolean
                                                                  repeatEveryPage:
                                                                    type: boolean
                                                                additionalProperties: false
                                                            required:
                                                              - id
                                                              - type
                                                              - props
                                                            additionalProperties: false
                                                  widths:
                                                    minItems: 1
                                                    maxItems: 5
                                                    type: array
                                                    items:
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 8
                                                  background:
                                                    default: none
                                                    anyOf:
                                                      - type: string
                                                        enum:
                                                          - none
                                                          - primary
                                                          - secondary
                                                      - type: string
                                                        pattern: ^#[0-9A-F]{6}$
                                                  bleed:
                                                    default: false
                                                    type: boolean
                                                required:
                                                  - id
                                                  - type
                                                  - cells
                                                additionalProperties: false
                                      required:
                                        - columns
                                        - itemsPerPage
                                        - card
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    type:
                                      type: string
                                      const: contents
                                    props:
                                      type: object
                                      properties:
                                        columns:
                                          minItems: 1
                                          maxItems: 7
                                          type: array
                                          items:
                                            type: string
                                            enum:
                                              - refNumber
                                              - name
                                              - category
                                              - subcategory
                                              - quantity
                                              - page
                                              - viewDetails
                                              - categoryCoverDetail
                                        groupBy:
                                          type: string
                                          enum:
                                            - none
                                            - category
                                            - subcategory
                                            - area
                                            - manufacturer
                                            - supplier
                                        subcategoryAsSubtitle:
                                          type: boolean
                                        headerBold:
                                          type: boolean
                                        columnWidths:
                                          default: {}
                                          type: object
                                          propertyNames:
                                            type: string
                                            enum:
                                              - refNumber
                                              - name
                                              - category
                                              - subcategory
                                              - quantity
                                              - page
                                              - viewDetails
                                              - categoryCoverDetail
                                          additionalProperties:
                                            type: integer
                                            minimum: 5
                                            maximum: 80
                                        columnAlign:
                                          default: {}
                                          type: object
                                          propertyNames:
                                            type: string
                                            enum:
                                              - refNumber
                                              - name
                                              - category
                                              - subcategory
                                              - quantity
                                              - page
                                              - viewDetails
                                              - categoryCoverDetail
                                          additionalProperties:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                        showRoomNumbers:
                                          default: false
                                          type: boolean
                                        roomColumns:
                                          default: 4
                                          type: integer
                                          minimum: 1
                                          maximum: 4
                                        quantityBreakdown:
                                          default: false
                                          type: boolean
                                      required:
                                        - columns
                                        - groupBy
                                        - subcategoryAsSubtitle
                                        - headerBold
                                      additionalProperties: false
                                  required:
                                    - id
                                    - type
                                    - props
                                  additionalProperties: false
                            - type: object
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 120
                                type:
                                  type: string
                                  const: row
                                cells:
                                  minItems: 1
                                  maxItems: 5
                                  type: array
                                  items:
                                    minItems: 1
                                    maxItems: 6
                                    type: array
                                    items:
                                      oneOf:
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: heading
                                            props:
                                              type: object
                                              properties:
                                                text:
                                                  type: string
                                                  maxLength: 500
                                                level:
                                                  type: string
                                                  enum:
                                                    - '1'
                                                    - '2'
                                                    - '3'
                                                align:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                size:
                                                  default: null
                                                  anyOf:
                                                    - type: number
                                                      minimum: 0.5
                                                      maximum: 3
                                                    - type: 'null'
                                                weight:
                                                  default: null
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - regular
                                                        - medium
                                                        - bold
                                                    - type: 'null'
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - text
                                                - level
                                                - align
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: text
                                            props:
                                              type: object
                                              properties:
                                                text:
                                                  type: string
                                                  maxLength: 8000
                                                align:
                                                  default: left
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                size:
                                                  default: null
                                                  anyOf:
                                                    - type: number
                                                      minimum: 0.5
                                                      maximum: 3
                                                    - type: 'null'
                                                weight:
                                                  default: null
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - regular
                                                        - medium
                                                        - bold
                                                    - type: 'null'
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - text
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: fieldList
                                            props:
                                              type: object
                                              properties:
                                                fields:
                                                  maxItems: 40
                                                  type: array
                                                  items:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                columns:
                                                  anyOf:
                                                    - type: integer
                                                      minimum: 1
                                                      maximum: 3
                                                    - type: string
                                                      const: auto
                                                labelLayout:
                                                  default: stacked
                                                  type: string
                                                  enum:
                                                    - stacked
                                                    - inline
                                                labelWidth:
                                                  default: 35
                                                  type: integer
                                                  minimum: 5
                                                  maximum: 60
                                                lineHeight:
                                                  default: 1.4
                                                  type: number
                                                  minimum: 0.85
                                                  maximum: 2.5
                                                fieldGap:
                                                  default: 1
                                                  type: number
                                                  minimum: 0
                                                  maximum: 4
                                                textOverflow:
                                                  default: wrap
                                                  type: string
                                                  enum:
                                                    - wrap
                                                    - clip
                                                maxLines:
                                                  default: 2
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 4
                                                columnWidths:
                                                  maxItems: 3
                                                  type: array
                                                  items:
                                                    type: integer
                                                    minimum: 5
                                                    maximum: 80
                                                columnAlign:
                                                  maxItems: 3
                                                  type: array
                                                  items:
                                                    type: string
                                                    enum:
                                                      - left
                                                      - center
                                                      - right
                                                align:
                                                  default: left
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - fields
                                                - columns
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: dataTable
                                            props:
                                              type: object
                                              properties:
                                                source:
                                                  default: components
                                                  type: string
                                                  enum:
                                                    - components
                                                    - items
                                                fields:
                                                  minItems: 1
                                                  maxItems: 30
                                                  type: array
                                                  items:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                showHeader:
                                                  type: boolean
                                                columnWidths:
                                                  default: {}
                                                  type: object
                                                  propertyNames:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  additionalProperties:
                                                    type: integer
                                                    minimum: 5
                                                    maximum: 80
                                                textOverflow:
                                                  default: wrap
                                                  type: string
                                                  enum:
                                                    - wrap
                                                    - clip
                                                maxLines:
                                                  default: 2
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 4
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - fields
                                                - showHeader
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: image
                                            props:
                                              type: object
                                              properties:
                                                source:
                                                  type: string
                                                  enum:
                                                    - primary
                                                    - secondary
                                                    - field
                                                    - asset
                                                field:
                                                  default: null
                                                  anyOf:
                                                    - type: string
                                                      maxLength: 120
                                                    - type: 'null'
                                                assetId:
                                                  anyOf:
                                                    - type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    - type: 'null'
                                                fit:
                                                  type: string
                                                  enum:
                                                    - contain
                                                    - cover
                                                ratio:
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - auto
                                                        - '1:1'
                                                        - '4:3'
                                                        - '3:2'
                                                        - '16:9'
                                                    - type: 'null'
                                                height:
                                                  type: string
                                                  enum:
                                                    - sm
                                                    - md
                                                    - lg
                                                align:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                caption:
                                                  type: string
                                                  maxLength: 500
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - source
                                                - fit
                                                - caption
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: gallery
                                            props:
                                              type: object
                                              properties:
                                                columns:
                                                  type: integer
                                                  minimum: 2
                                                  maximum: 8
                                                photos:
                                                  default: all
                                                  type: string
                                                  enum:
                                                    - all
                                                    - additional
                                                slots:
                                                  default: []
                                                  maxItems: 8
                                                  type: array
                                                  items:
                                                    anyOf:
                                                      - type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      - type: 'null'
                                                fit:
                                                  type: string
                                                  enum:
                                                    - contain
                                                    - cover
                                                ratio:
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - auto
                                                        - '1:1'
                                                        - '4:3'
                                                        - '3:2'
                                                        - '16:9'
                                                    - type: 'null'
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - columns
                                                - fit
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: imageFields
                                            props:
                                              type: object
                                              properties:
                                                fields:
                                                  maxItems: 20
                                                  type: array
                                                  items:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                imageField:
                                                  default: null
                                                  anyOf:
                                                    - type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    - type: 'null'
                                                imagePosition:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - right
                                                    - top
                                                fit:
                                                  type: string
                                                  enum:
                                                    - contain
                                                    - cover
                                                ratio:
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - auto
                                                        - '1:1'
                                                        - '4:3'
                                                        - '3:2'
                                                        - '16:9'
                                                    - type: 'null'
                                                height:
                                                  type: string
                                                  enum:
                                                    - sm
                                                    - md
                                                    - lg
                                                textOverflow:
                                                  default: wrap
                                                  type: string
                                                  enum:
                                                    - wrap
                                                    - clip
                                                maxLines:
                                                  default: 2
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 4
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - fields
                                                - imagePosition
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: logo
                                            props:
                                              type: object
                                              properties:
                                                slot:
                                                  type: string
                                                  enum:
                                                    - primary
                                                    - secondary
                                                    - footer
                                                align:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - slot
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: divider
                                            props:
                                              type: object
                                              properties:
                                                tone:
                                                  type: string
                                                  enum:
                                                    - primary
                                                    - secondary
                                                    - muted
                                                lineStyle:
                                                  type: string
                                                  enum:
                                                    - solid
                                                    - dashed
                                                    - dotted
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - tone
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: qrCode
                                            props:
                                              type: object
                                              properties:
                                                value:
                                                  type: string
                                                  maxLength: 1000
                                                size:
                                                  default: 24
                                                  type: integer
                                                  minimum: 12
                                                  maximum: 60
                                                align:
                                                  default: left
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - value
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: spacer
                                            props:
                                              type: object
                                              properties:
                                                size:
                                                  type: string
                                                  enum:
                                                    - sm
                                                    - md
                                                    - lg
                                                    - xl
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - size
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: guidance
                                            props:
                                              type: object
                                              properties:
                                                source:
                                                  type: string
                                                  enum:
                                                    - instructions
                                                    - requirements
                                                    - furnishedInstalledBy
                                                showGroupLabels:
                                                  default: true
                                                  type: boolean
                                                repeatEveryPage:
                                                  type: boolean
                                              required:
                                                - source
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: areas
                                            props:
                                              type: object
                                              properties:
                                                columns:
                                                  default: 4
                                                  type: integer
                                                  minimum: 1
                                                  maximum: 4
                                                showRoomNumbers:
                                                  default: false
                                                  type: boolean
                                                repeatEveryPage:
                                                  type: boolean
                                              additionalProperties: false
                                          required:
                                            - id
                                            - type
                                            - props
                                          additionalProperties: false
                                widths:
                                  minItems: 1
                                  maxItems: 5
                                  type: array
                                  items:
                                    type: integer
                                    minimum: 1
                                    maximum: 8
                                background:
                                  default: none
                                  anyOf:
                                    - type: string
                                      enum:
                                        - none
                                        - primary
                                        - secondary
                                    - type: string
                                      pattern: ^#[0-9A-F]{6}$
                                bleed:
                                  default: false
                                  type: boolean
                              required:
                                - id
                                - type
                                - cells
                              additionalProperties: false
                      categoryVariants:
                        maxItems: 100
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              minLength: 1
                              maxLength: 120
                            name:
                              type: string
                              maxLength: 120
                            categoryIds:
                              maxItems: 100
                              type: array
                              items:
                                type: string
                                minLength: 1
                                maxLength: 120
                            subcategoryIds:
                              maxItems: 300
                              type: array
                              items:
                                type: string
                                minLength: 1
                                maxLength: 120
                            includeCover:
                              type: boolean
                            blocks:
                              maxItems: 80
                              type: array
                              items:
                                anyOf:
                                  - oneOf:
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: heading
                                          props:
                                            type: object
                                            properties:
                                              text:
                                                type: string
                                                maxLength: 500
                                              level:
                                                type: string
                                                enum:
                                                  - '1'
                                                  - '2'
                                                  - '3'
                                              align:
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              size:
                                                default: null
                                                anyOf:
                                                  - type: number
                                                    minimum: 0.5
                                                    maximum: 3
                                                  - type: 'null'
                                              weight:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - regular
                                                      - medium
                                                      - bold
                                                  - type: 'null'
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - text
                                              - level
                                              - align
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: text
                                          props:
                                            type: object
                                            properties:
                                              text:
                                                type: string
                                                maxLength: 8000
                                              align:
                                                default: left
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              size:
                                                default: null
                                                anyOf:
                                                  - type: number
                                                    minimum: 0.5
                                                    maximum: 3
                                                  - type: 'null'
                                              weight:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - regular
                                                      - medium
                                                      - bold
                                                  - type: 'null'
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - text
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: fieldList
                                          props:
                                            type: object
                                            properties:
                                              fields:
                                                maxItems: 40
                                                type: array
                                                items:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                              columns:
                                                anyOf:
                                                  - type: integer
                                                    minimum: 1
                                                    maximum: 3
                                                  - type: string
                                                    const: auto
                                              labelLayout:
                                                default: stacked
                                                type: string
                                                enum:
                                                  - stacked
                                                  - inline
                                              labelWidth:
                                                default: 35
                                                type: integer
                                                minimum: 5
                                                maximum: 60
                                              lineHeight:
                                                default: 1.4
                                                type: number
                                                minimum: 0.85
                                                maximum: 2.5
                                              fieldGap:
                                                default: 1
                                                type: number
                                                minimum: 0
                                                maximum: 4
                                              textOverflow:
                                                default: wrap
                                                type: string
                                                enum:
                                                  - wrap
                                                  - clip
                                              maxLines:
                                                default: 2
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              columnWidths:
                                                maxItems: 3
                                                type: array
                                                items:
                                                  type: integer
                                                  minimum: 5
                                                  maximum: 80
                                              columnAlign:
                                                maxItems: 3
                                                type: array
                                                items:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                              align:
                                                default: left
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - fields
                                              - columns
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: dataTable
                                          props:
                                            type: object
                                            properties:
                                              source:
                                                default: components
                                                type: string
                                                enum:
                                                  - components
                                                  - items
                                              fields:
                                                minItems: 1
                                                maxItems: 30
                                                type: array
                                                items:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                              showHeader:
                                                type: boolean
                                              columnWidths:
                                                default: {}
                                                type: object
                                                propertyNames:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                additionalProperties:
                                                  type: integer
                                                  minimum: 5
                                                  maximum: 80
                                              textOverflow:
                                                default: wrap
                                                type: string
                                                enum:
                                                  - wrap
                                                  - clip
                                              maxLines:
                                                default: 2
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - fields
                                              - showHeader
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: image
                                          props:
                                            type: object
                                            properties:
                                              source:
                                                type: string
                                                enum:
                                                  - primary
                                                  - secondary
                                                  - field
                                                  - asset
                                              field:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    maxLength: 120
                                                  - type: 'null'
                                              assetId:
                                                anyOf:
                                                  - type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  - type: 'null'
                                              fit:
                                                type: string
                                                enum:
                                                  - contain
                                                  - cover
                                              ratio:
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - auto
                                                      - '1:1'
                                                      - '4:3'
                                                      - '3:2'
                                                      - '16:9'
                                                  - type: 'null'
                                              height:
                                                type: string
                                                enum:
                                                  - sm
                                                  - md
                                                  - lg
                                              align:
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              caption:
                                                type: string
                                                maxLength: 500
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - source
                                              - fit
                                              - caption
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: gallery
                                          props:
                                            type: object
                                            properties:
                                              columns:
                                                type: integer
                                                minimum: 2
                                                maximum: 8
                                              photos:
                                                default: all
                                                type: string
                                                enum:
                                                  - all
                                                  - additional
                                              slots:
                                                default: []
                                                maxItems: 8
                                                type: array
                                                items:
                                                  anyOf:
                                                    - type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    - type: 'null'
                                              fit:
                                                type: string
                                                enum:
                                                  - contain
                                                  - cover
                                              ratio:
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - auto
                                                      - '1:1'
                                                      - '4:3'
                                                      - '3:2'
                                                      - '16:9'
                                                  - type: 'null'
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - columns
                                              - fit
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: imageFields
                                          props:
                                            type: object
                                            properties:
                                              fields:
                                                maxItems: 20
                                                type: array
                                                items:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                              imageField:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  - type: 'null'
                                              imagePosition:
                                                type: string
                                                enum:
                                                  - left
                                                  - right
                                                  - top
                                              fit:
                                                type: string
                                                enum:
                                                  - contain
                                                  - cover
                                              ratio:
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - auto
                                                      - '1:1'
                                                      - '4:3'
                                                      - '3:2'
                                                      - '16:9'
                                                  - type: 'null'
                                              height:
                                                type: string
                                                enum:
                                                  - sm
                                                  - md
                                                  - lg
                                              textOverflow:
                                                default: wrap
                                                type: string
                                                enum:
                                                  - wrap
                                                  - clip
                                              maxLines:
                                                default: 2
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - fields
                                              - imagePosition
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: logo
                                          props:
                                            type: object
                                            properties:
                                              slot:
                                                type: string
                                                enum:
                                                  - primary
                                                  - secondary
                                                  - footer
                                              align:
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - slot
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: divider
                                          props:
                                            type: object
                                            properties:
                                              tone:
                                                type: string
                                                enum:
                                                  - primary
                                                  - secondary
                                                  - muted
                                              lineStyle:
                                                type: string
                                                enum:
                                                  - solid
                                                  - dashed
                                                  - dotted
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - tone
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: qrCode
                                          props:
                                            type: object
                                            properties:
                                              value:
                                                type: string
                                                maxLength: 1000
                                              size:
                                                default: 24
                                                type: integer
                                                minimum: 12
                                                maximum: 60
                                              align:
                                                default: left
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - value
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: spacer
                                          props:
                                            type: object
                                            properties:
                                              size:
                                                type: string
                                                enum:
                                                  - sm
                                                  - md
                                                  - lg
                                                  - xl
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - size
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: guidance
                                          props:
                                            type: object
                                            properties:
                                              source:
                                                type: string
                                                enum:
                                                  - instructions
                                                  - requirements
                                                  - furnishedInstalledBy
                                              showGroupLabels:
                                                default: true
                                                type: boolean
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - source
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: areas
                                          props:
                                            type: object
                                            properties:
                                              columns:
                                                default: 4
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              showRoomNumbers:
                                                default: false
                                                type: boolean
                                              repeatEveryPage:
                                                type: boolean
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: schedule
                                          props:
                                            type: object
                                            properties:
                                              groupBy:
                                                type: string
                                                enum:
                                                  - none
                                                  - category
                                                  - area
                                                  - areaTree
                                                  - manufacturer
                                                  - supplier
                                              showSubtotals:
                                                type: boolean
                                              dedupCategory:
                                                type: boolean
                                              subcategoryAsSubtitle:
                                                type: boolean
                                              showGrandTotal:
                                                type: boolean
                                              headerBold:
                                                type: boolean
                                              columnAlign:
                                                type: object
                                                propertyNames:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                additionalProperties:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                              textOverflow:
                                                type: string
                                                enum:
                                                  - wrap
                                                  - clip
                                              maxLines:
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              showRoomNumbers:
                                                default: false
                                                type: boolean
                                              roomColumns:
                                                default: 4
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              quantityBreakdown:
                                                default: false
                                                type: boolean
                                              bandDetails:
                                                default: none
                                                type: string
                                                enum:
                                                  - none
                                                  - company
                                              roomTotals:
                                                default: false
                                                type: boolean
                                              currency:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    pattern: ^[A-Z]{3}$
                                                  - type: 'null'
                                              columns:
                                                minItems: 1
                                                maxItems: 30
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    label:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    width:
                                                      anyOf:
                                                        - type: integer
                                                          minimum: 5
                                                          maximum: 80
                                                        - type: 'null'
                                                  required:
                                                    - key
                                                    - label
                                                    - width
                                                  additionalProperties: false
                                            required:
                                              - groupBy
                                              - showSubtotals
                                              - dedupCategory
                                              - subcategoryAsSubtitle
                                              - showGrandTotal
                                              - headerBold
                                              - columnAlign
                                              - textOverflow
                                              - maxLines
                                              - columns
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: itemsGrid
                                          props:
                                            type: object
                                            properties:
                                              columns:
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              itemsPerPage:
                                                type: integer
                                                minimum: 1
                                                maximum: 12
                                              groupBy:
                                                default: none
                                                type: string
                                                enum:
                                                  - none
                                                  - category
                                                  - area
                                              cardPer:
                                                default: item
                                                type: string
                                                enum:
                                                  - item
                                                  - unit
                                              cardBackground:
                                                default: '#FFFFFF'
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - none
                                                      - primary
                                                      - secondary
                                                  - type: string
                                                    pattern: ^#[0-9A-F]{6}$
                                              card:
                                                minItems: 1
                                                maxItems: 8
                                                type: array
                                                items:
                                                  anyOf:
                                                    - oneOf:
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: heading
                                                            props:
                                                              type: object
                                                              properties:
                                                                text:
                                                                  type: string
                                                                  maxLength: 500
                                                                level:
                                                                  type: string
                                                                  enum:
                                                                    - '1'
                                                                    - '2'
                                                                    - '3'
                                                                align:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                size:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      minimum: {}
                                                                      maximum: {}
                                                                    - type: {}
                                                                weight:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - text
                                                                - level
                                                                - align
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: text
                                                            props:
                                                              type: object
                                                              properties:
                                                                text:
                                                                  type: string
                                                                  maxLength: 8000
                                                                align:
                                                                  default: left
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                size:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      minimum: {}
                                                                      maximum: {}
                                                                    - type: {}
                                                                weight:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - text
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: fieldList
                                                            props:
                                                              type: object
                                                              properties:
                                                                fields:
                                                                  maxItems: 40
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                columns:
                                                                  anyOf:
                                                                    - type: {}
                                                                      minimum: {}
                                                                      maximum: {}
                                                                    - type: {}
                                                                      const: {}
                                                                labelLayout:
                                                                  default: stacked
                                                                  type: string
                                                                  enum:
                                                                    - stacked
                                                                    - inline
                                                                labelWidth:
                                                                  default: 35
                                                                  type: integer
                                                                  minimum: 5
                                                                  maximum: 60
                                                                lineHeight:
                                                                  default: 1.4
                                                                  type: number
                                                                  minimum: 0.85
                                                                  maximum: 2.5
                                                                fieldGap:
                                                                  default: 1
                                                                  type: number
                                                                  minimum: 0
                                                                  maximum: 4
                                                                textOverflow:
                                                                  default: wrap
                                                                  type: string
                                                                  enum:
                                                                    - wrap
                                                                    - clip
                                                                maxLines:
                                                                  default: 2
                                                                  type: integer
                                                                  minimum: 1
                                                                  maximum: 4
                                                                columnWidths:
                                                                  maxItems: 3
                                                                  type: array
                                                                  items:
                                                                    type: integer
                                                                    minimum: 5
                                                                    maximum: 80
                                                                columnAlign:
                                                                  maxItems: 3
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                align:
                                                                  default: left
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - fields
                                                                - columns
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: dataTable
                                                            props:
                                                              type: object
                                                              properties:
                                                                source:
                                                                  default: components
                                                                  type: string
                                                                  enum:
                                                                    - components
                                                                    - items
                                                                fields:
                                                                  minItems: 1
                                                                  maxItems: 30
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                showHeader:
                                                                  type: boolean
                                                                columnWidths:
                                                                  default: {}
                                                                  type: object
                                                                  propertyNames:
                                                                    type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                  additionalProperties:
                                                                    type: integer
                                                                    minimum: 5
                                                                    maximum: 80
                                                                textOverflow:
                                                                  default: wrap
                                                                  type: string
                                                                  enum:
                                                                    - wrap
                                                                    - clip
                                                                maxLines:
                                                                  default: 2
                                                                  type: integer
                                                                  minimum: 1
                                                                  maximum: 4
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - fields
                                                                - showHeader
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: image
                                                            props:
                                                              type: object
                                                              properties:
                                                                source:
                                                                  type: string
                                                                  enum:
                                                                    - primary
                                                                    - secondary
                                                                    - field
                                                                    - asset
                                                                field:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      maxLength: {}
                                                                    - type: {}
                                                                assetId:
                                                                  anyOf:
                                                                    - type: {}
                                                                      minLength: {}
                                                                      maxLength: {}
                                                                    - type: {}
                                                                fit:
                                                                  type: string
                                                                  enum:
                                                                    - contain
                                                                    - cover
                                                                ratio:
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                height:
                                                                  type: string
                                                                  enum:
                                                                    - sm
                                                                    - md
                                                                    - lg
                                                                align:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                caption:
                                                                  type: string
                                                                  maxLength: 500
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - source
                                                                - fit
                                                                - caption
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: gallery
                                                            props:
                                                              type: object
                                                              properties:
                                                                columns:
                                                                  type: integer
                                                                  minimum: 2
                                                                  maximum: 8
                                                                photos:
                                                                  default: all
                                                                  type: string
                                                                  enum:
                                                                    - all
                                                                    - additional
                                                                slots:
                                                                  default: []
                                                                  maxItems: 8
                                                                  type: array
                                                                  items:
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                fit:
                                                                  type: string
                                                                  enum:
                                                                    - contain
                                                                    - cover
                                                                ratio:
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - columns
                                                                - fit
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: imageFields
                                                            props:
                                                              type: object
                                                              properties:
                                                                fields:
                                                                  maxItems: 20
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                imageField:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      minLength: {}
                                                                      maxLength: {}
                                                                    - type: {}
                                                                imagePosition:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - right
                                                                    - top
                                                                fit:
                                                                  type: string
                                                                  enum:
                                                                    - contain
                                                                    - cover
                                                                ratio:
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                height:
                                                                  type: string
                                                                  enum:
                                                                    - sm
                                                                    - md
                                                                    - lg
                                                                textOverflow:
                                                                  default: wrap
                                                                  type: string
                                                                  enum:
                                                                    - wrap
                                                                    - clip
                                                                maxLines:
                                                                  default: 2
                                                                  type: integer
                                                                  minimum: 1
                                                                  maximum: 4
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - fields
                                                                - imagePosition
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: logo
                                                            props:
                                                              type: object
                                                              properties:
                                                                slot:
                                                                  type: string
                                                                  enum:
                                                                    - primary
                                                                    - secondary
                                                                    - footer
                                                                align:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - slot
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: divider
                                                            props:
                                                              type: object
                                                              properties:
                                                                tone:
                                                                  type: string
                                                                  enum:
                                                                    - primary
                                                                    - secondary
                                                                    - muted
                                                                lineStyle:
                                                                  type: string
                                                                  enum:
                                                                    - solid
                                                                    - dashed
                                                                    - dotted
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - tone
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: qrCode
                                                            props:
                                                              type: object
                                                              properties:
                                                                value:
                                                                  type: string
                                                                  maxLength: 1000
                                                                size:
                                                                  default: 24
                                                                  type: integer
                                                                  minimum: 12
                                                                  maximum: 60
                                                                align:
                                                                  default: left
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - value
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: spacer
                                                            props:
                                                              type: object
                                                              properties:
                                                                size:
                                                                  type: string
                                                                  enum:
                                                                    - sm
                                                                    - md
                                                                    - lg
                                                                    - xl
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - size
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: guidance
                                                            props:
                                                              type: object
                                                              properties:
                                                                source:
                                                                  type: string
                                                                  enum:
                                                                    - instructions
                                                                    - requirements
                                                                    - furnishedInstalledBy
                                                                showGroupLabels:
                                                                  default: true
                                                                  type: boolean
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - source
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: areas
                                                            props:
                                                              type: object
                                                              properties:
                                                                columns:
                                                                  default: 4
                                                                  type: integer
                                                                  minimum: 1
                                                                  maximum: 4
                                                                showRoomNumbers:
                                                                  default: false
                                                                  type: boolean
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: row
                                                        cells:
                                                          minItems: 1
                                                          maxItems: 5
                                                          type: array
                                                          items:
                                                            minItems: 1
                                                            maxItems: 6
                                                            type: array
                                                            items:
                                                              oneOf:
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                                - type: object
                                                                  properties:
                                                                    id: {}
                                                                    type: {}
                                                                    props: {}
                                                                  required:
                                                                    - id
                                                                    - type
                                                                    - props
                                                                  additionalProperties: false
                                                        widths:
                                                          minItems: 1
                                                          maxItems: 5
                                                          type: array
                                                          items:
                                                            type: integer
                                                            minimum: 1
                                                            maximum: 8
                                                        background:
                                                          default: none
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - none
                                                                - primary
                                                                - secondary
                                                            - type: string
                                                              pattern: ^#[0-9A-F]{6}$
                                                        bleed:
                                                          default: false
                                                          type: boolean
                                                      required:
                                                        - id
                                                        - type
                                                        - cells
                                                      additionalProperties: false
                                            required:
                                              - columns
                                              - itemsPerPage
                                              - card
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: contents
                                          props:
                                            type: object
                                            properties:
                                              columns:
                                                minItems: 1
                                                maxItems: 7
                                                type: array
                                                items:
                                                  type: string
                                                  enum:
                                                    - refNumber
                                                    - name
                                                    - category
                                                    - subcategory
                                                    - quantity
                                                    - page
                                                    - viewDetails
                                                    - categoryCoverDetail
                                              groupBy:
                                                type: string
                                                enum:
                                                  - none
                                                  - category
                                                  - subcategory
                                                  - area
                                                  - manufacturer
                                                  - supplier
                                              subcategoryAsSubtitle:
                                                type: boolean
                                              headerBold:
                                                type: boolean
                                              columnWidths:
                                                default: {}
                                                type: object
                                                propertyNames:
                                                  type: string
                                                  enum:
                                                    - refNumber
                                                    - name
                                                    - category
                                                    - subcategory
                                                    - quantity
                                                    - page
                                                    - viewDetails
                                                    - categoryCoverDetail
                                                additionalProperties:
                                                  type: integer
                                                  minimum: 5
                                                  maximum: 80
                                              columnAlign:
                                                default: {}
                                                type: object
                                                propertyNames:
                                                  type: string
                                                  enum:
                                                    - refNumber
                                                    - name
                                                    - category
                                                    - subcategory
                                                    - quantity
                                                    - page
                                                    - viewDetails
                                                    - categoryCoverDetail
                                                additionalProperties:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                              showRoomNumbers:
                                                default: false
                                                type: boolean
                                              roomColumns:
                                                default: 4
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              quantityBreakdown:
                                                default: false
                                                type: boolean
                                            required:
                                              - columns
                                              - groupBy
                                              - subcategoryAsSubtitle
                                              - headerBold
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: row
                                      cells:
                                        minItems: 1
                                        maxItems: 5
                                        type: array
                                        items:
                                          minItems: 1
                                          maxItems: 6
                                          type: array
                                          items:
                                            oneOf:
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: heading
                                                  props:
                                                    type: object
                                                    properties:
                                                      text:
                                                        type: string
                                                        maxLength: 500
                                                      level:
                                                        type: string
                                                        enum:
                                                          - '1'
                                                          - '2'
                                                          - '3'
                                                      align:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      size:
                                                        default: null
                                                        anyOf:
                                                          - type: number
                                                            minimum: 0.5
                                                            maximum: 3
                                                          - type: 'null'
                                                      weight:
                                                        default: null
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - regular
                                                              - medium
                                                              - bold
                                                          - type: 'null'
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - text
                                                      - level
                                                      - align
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: text
                                                  props:
                                                    type: object
                                                    properties:
                                                      text:
                                                        type: string
                                                        maxLength: 8000
                                                      align:
                                                        default: left
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      size:
                                                        default: null
                                                        anyOf:
                                                          - type: number
                                                            minimum: 0.5
                                                            maximum: 3
                                                          - type: 'null'
                                                      weight:
                                                        default: null
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - regular
                                                              - medium
                                                              - bold
                                                          - type: 'null'
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - text
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: fieldList
                                                  props:
                                                    type: object
                                                    properties:
                                                      fields:
                                                        maxItems: 40
                                                        type: array
                                                        items:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                      columns:
                                                        anyOf:
                                                          - type: integer
                                                            minimum: 1
                                                            maximum: 3
                                                          - type: string
                                                            const: auto
                                                      labelLayout:
                                                        default: stacked
                                                        type: string
                                                        enum:
                                                          - stacked
                                                          - inline
                                                      labelWidth:
                                                        default: 35
                                                        type: integer
                                                        minimum: 5
                                                        maximum: 60
                                                      lineHeight:
                                                        default: 1.4
                                                        type: number
                                                        minimum: 0.85
                                                        maximum: 2.5
                                                      fieldGap:
                                                        default: 1
                                                        type: number
                                                        minimum: 0
                                                        maximum: 4
                                                      textOverflow:
                                                        default: wrap
                                                        type: string
                                                        enum:
                                                          - wrap
                                                          - clip
                                                      maxLines:
                                                        default: 2
                                                        type: integer
                                                        minimum: 1
                                                        maximum: 4
                                                      columnWidths:
                                                        maxItems: 3
                                                        type: array
                                                        items:
                                                          type: integer
                                                          minimum: 5
                                                          maximum: 80
                                                      columnAlign:
                                                        maxItems: 3
                                                        type: array
                                                        items:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                      align:
                                                        default: left
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - fields
                                                      - columns
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: dataTable
                                                  props:
                                                    type: object
                                                    properties:
                                                      source:
                                                        default: components
                                                        type: string
                                                        enum:
                                                          - components
                                                          - items
                                                      fields:
                                                        minItems: 1
                                                        maxItems: 30
                                                        type: array
                                                        items:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                      showHeader:
                                                        type: boolean
                                                      columnWidths:
                                                        default: {}
                                                        type: object
                                                        propertyNames:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        additionalProperties:
                                                          type: integer
                                                          minimum: 5
                                                          maximum: 80
                                                      textOverflow:
                                                        default: wrap
                                                        type: string
                                                        enum:
                                                          - wrap
                                                          - clip
                                                      maxLines:
                                                        default: 2
                                                        type: integer
                                                        minimum: 1
                                                        maximum: 4
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - fields
                                                      - showHeader
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: image
                                                  props:
                                                    type: object
                                                    properties:
                                                      source:
                                                        type: string
                                                        enum:
                                                          - primary
                                                          - secondary
                                                          - field
                                                          - asset
                                                      field:
                                                        default: null
                                                        anyOf:
                                                          - type: string
                                                            maxLength: 120
                                                          - type: 'null'
                                                      assetId:
                                                        anyOf:
                                                          - type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          - type: 'null'
                                                      fit:
                                                        type: string
                                                        enum:
                                                          - contain
                                                          - cover
                                                      ratio:
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - auto
                                                              - '1:1'
                                                              - '4:3'
                                                              - '3:2'
                                                              - '16:9'
                                                          - type: 'null'
                                                      height:
                                                        type: string
                                                        enum:
                                                          - sm
                                                          - md
                                                          - lg
                                                      align:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      caption:
                                                        type: string
                                                        maxLength: 500
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - source
                                                      - fit
                                                      - caption
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: gallery
                                                  props:
                                                    type: object
                                                    properties:
                                                      columns:
                                                        type: integer
                                                        minimum: 2
                                                        maximum: 8
                                                      photos:
                                                        default: all
                                                        type: string
                                                        enum:
                                                          - all
                                                          - additional
                                                      slots:
                                                        default: []
                                                        maxItems: 8
                                                        type: array
                                                        items:
                                                          anyOf:
                                                            - type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            - type: 'null'
                                                      fit:
                                                        type: string
                                                        enum:
                                                          - contain
                                                          - cover
                                                      ratio:
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - auto
                                                              - '1:1'
                                                              - '4:3'
                                                              - '3:2'
                                                              - '16:9'
                                                          - type: 'null'
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - columns
                                                      - fit
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: imageFields
                                                  props:
                                                    type: object
                                                    properties:
                                                      fields:
                                                        maxItems: 20
                                                        type: array
                                                        items:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                      imageField:
                                                        default: null
                                                        anyOf:
                                                          - type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          - type: 'null'
                                                      imagePosition:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - right
                                                          - top
                                                      fit:
                                                        type: string
                                                        enum:
                                                          - contain
                                                          - cover
                                                      ratio:
                                                        anyOf:
                                                          - type: string
                                                            enum:
                                                              - auto
                                                              - '1:1'
                                                              - '4:3'
                                                              - '3:2'
                                                              - '16:9'
                                                          - type: 'null'
                                                      height:
                                                        type: string
                                                        enum:
                                                          - sm
                                                          - md
                                                          - lg
                                                      textOverflow:
                                                        default: wrap
                                                        type: string
                                                        enum:
                                                          - wrap
                                                          - clip
                                                      maxLines:
                                                        default: 2
                                                        type: integer
                                                        minimum: 1
                                                        maximum: 4
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - fields
                                                      - imagePosition
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: logo
                                                  props:
                                                    type: object
                                                    properties:
                                                      slot:
                                                        type: string
                                                        enum:
                                                          - primary
                                                          - secondary
                                                          - footer
                                                      align:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - slot
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: divider
                                                  props:
                                                    type: object
                                                    properties:
                                                      tone:
                                                        type: string
                                                        enum:
                                                          - primary
                                                          - secondary
                                                          - muted
                                                      lineStyle:
                                                        type: string
                                                        enum:
                                                          - solid
                                                          - dashed
                                                          - dotted
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - tone
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: qrCode
                                                  props:
                                                    type: object
                                                    properties:
                                                      value:
                                                        type: string
                                                        maxLength: 1000
                                                      size:
                                                        default: 24
                                                        type: integer
                                                        minimum: 12
                                                        maximum: 60
                                                      align:
                                                        default: left
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - value
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: spacer
                                                  props:
                                                    type: object
                                                    properties:
                                                      size:
                                                        type: string
                                                        enum:
                                                          - sm
                                                          - md
                                                          - lg
                                                          - xl
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - size
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: guidance
                                                  props:
                                                    type: object
                                                    properties:
                                                      source:
                                                        type: string
                                                        enum:
                                                          - instructions
                                                          - requirements
                                                          - furnishedInstalledBy
                                                      showGroupLabels:
                                                        default: true
                                                        type: boolean
                                                      repeatEveryPage:
                                                        type: boolean
                                                    required:
                                                      - source
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  type:
                                                    type: string
                                                    const: areas
                                                  props:
                                                    type: object
                                                    properties:
                                                      columns:
                                                        default: 4
                                                        type: integer
                                                        minimum: 1
                                                        maximum: 4
                                                      showRoomNumbers:
                                                        default: false
                                                        type: boolean
                                                      repeatEveryPage:
                                                        type: boolean
                                                    additionalProperties: false
                                                required:
                                                  - id
                                                  - type
                                                  - props
                                                additionalProperties: false
                                      widths:
                                        minItems: 1
                                        maxItems: 5
                                        type: array
                                        items:
                                          type: integer
                                          minimum: 1
                                          maximum: 8
                                      background:
                                        default: none
                                        anyOf:
                                          - type: string
                                            enum:
                                              - none
                                              - primary
                                              - secondary
                                          - type: string
                                            pattern: ^#[0-9A-F]{6}$
                                      bleed:
                                        default: false
                                        type: boolean
                                    required:
                                      - id
                                      - type
                                      - cells
                                    additionalProperties: false
                          required:
                            - id
                            - categoryIds
                            - subcategoryIds
                            - includeCover
                            - blocks
                          additionalProperties: false
                      variantOrder:
                        maxItems: 101
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 120
                      categoryCover:
                        type: object
                        properties:
                          fields:
                            maxItems: 3
                            type: array
                            items:
                              type: string
                              enum:
                                - instructions
                                - itemCount
                                - code
                          deduplicateItemFields:
                            type: boolean
                          includeDefault:
                            default: true
                            type: boolean
                        required:
                          - deduplicateItemFields
                        additionalProperties: false
                    required:
                      - id
                      - name
                      - presentation
                      - blocks
                      - categoryVariants
                      - variantOrder
                    additionalProperties: false
            pageOrder:
              maxItems: 44
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 120
            categoryCover:
              type: object
              properties:
                fields:
                  maxItems: 3
                  type: array
                  items:
                    type: string
                    enum:
                      - instructions
                      - itemCount
                      - code
                deduplicateItemFields:
                  type: boolean
                includeDefault:
                  default: true
                  type: boolean
              required:
                - deduplicateItemFields
              additionalProperties: false
            pagePresentation:
              type: object
              propertyNames:
                type: string
                enum:
                  - cover
                  - index
                  - product
                  - disclaimer
              additionalProperties:
                type: object
                properties:
                  page:
                    type: object
                    properties:
                      size:
                        type: string
                        enum:
                          - A4
                          - A3
                          - letter
                      orientation:
                        type: string
                        enum:
                          - portrait
                          - landscape
                      margin:
                        type: string
                        enum:
                          - compact
                          - standard
                          - generous
                    required:
                      - size
                      - orientation
                      - margin
                    additionalProperties: false
                  style:
                    type: object
                    properties:
                      fontFamily:
                        anyOf:
                          - type: string
                            enum:
                              - roboto
                              - source-serif
                              - noto-sans
                          - type: 'null'
                      primaryColor:
                        anyOf:
                          - type: string
                            pattern: ^#[0-9A-F]{6}$
                          - type: 'null'
                      secondaryColor:
                        anyOf:
                          - type: string
                            pattern: ^#[0-9A-F]{6}$
                          - type: 'null'
                      bodyScale:
                        anyOf:
                          - type: number
                            minimum: 0.8
                            maximum: 1.25
                          - type: 'null'
                      backgroundColor:
                        default: null
                        anyOf:
                          - type: string
                            pattern: ^#[0-9A-F]{6}$
                          - type: 'null'
                    required:
                      - fontFamily
                      - primaryColor
                      - secondaryColor
                      - bodyScale
                    additionalProperties: false
                  header:
                    type: object
                    properties:
                      enabled:
                        type: boolean
                      showLogo:
                        type: boolean
                      logoSlot:
                        type: string
                        enum:
                          - primary
                          - secondary
                          - footer
                      logoPosition:
                        type: string
                        enum:
                          - left
                          - center
                          - right
                      logoAlign:
                        default: center
                        type: string
                        enum:
                          - left
                          - center
                          - right
                      logoSize:
                        type: string
                        enum:
                          - S
                          - M
                          - L
                      text:
                        type: string
                        maxLength: 500
                      textPosition:
                        type: string
                        enum:
                          - left
                          - center
                          - right
                    required:
                      - enabled
                      - showLogo
                      - logoSlot
                      - logoPosition
                      - logoSize
                      - text
                      - textPosition
                    additionalProperties: false
                  footer:
                    type: object
                    properties:
                      enabled:
                        type: boolean
                      text:
                        type: string
                        maxLength: 500
                      textPosition:
                        type: string
                        enum:
                          - left
                          - center
                          - right
                      showPageNumbers:
                        type: boolean
                      numberPosition:
                        type: string
                        enum:
                          - left
                          - center
                          - right
                      showLogo:
                        type: boolean
                      logoSlot:
                        type: string
                        enum:
                          - primary
                          - secondary
                          - footer
                      logoPosition:
                        default: center
                        type: string
                        enum:
                          - left
                          - center
                          - right
                    required:
                      - enabled
                      - text
                      - textPosition
                      - showPageNumbers
                      - numberPosition
                      - showLogo
                      - logoSlot
                    additionalProperties: false
                  fitToPages:
                    default: 0
                    type: integer
                    minimum: 0
                    maximum: 2
                required:
                  - page
                  - style
                  - header
                  - footer
                additionalProperties: false
            pageBlocks:
              type: object
              properties:
                cover:
                  maxItems: 80
                  type: array
                  items:
                    anyOf:
                      - oneOf:
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: heading
                              props:
                                type: object
                                properties:
                                  text:
                                    type: string
                                    maxLength: 500
                                  level:
                                    type: string
                                    enum:
                                      - '1'
                                      - '2'
                                      - '3'
                                  align:
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  size:
                                    default: null
                                    anyOf:
                                      - type: number
                                        minimum: 0.5
                                        maximum: 3
                                      - type: 'null'
                                  weight:
                                    default: null
                                    anyOf:
                                      - type: string
                                        enum:
                                          - regular
                                          - medium
                                          - bold
                                      - type: 'null'
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - text
                                  - level
                                  - align
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: text
                              props:
                                type: object
                                properties:
                                  text:
                                    type: string
                                    maxLength: 8000
                                  align:
                                    default: left
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  size:
                                    default: null
                                    anyOf:
                                      - type: number
                                        minimum: 0.5
                                        maximum: 3
                                      - type: 'null'
                                  weight:
                                    default: null
                                    anyOf:
                                      - type: string
                                        enum:
                                          - regular
                                          - medium
                                          - bold
                                      - type: 'null'
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - text
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: fieldList
                              props:
                                type: object
                                properties:
                                  fields:
                                    maxItems: 40
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                  columns:
                                    anyOf:
                                      - type: integer
                                        minimum: 1
                                        maximum: 3
                                      - type: string
                                        const: auto
                                  labelLayout:
                                    default: stacked
                                    type: string
                                    enum:
                                      - stacked
                                      - inline
                                  labelWidth:
                                    default: 35
                                    type: integer
                                    minimum: 5
                                    maximum: 60
                                  lineHeight:
                                    default: 1.4
                                    type: number
                                    minimum: 0.85
                                    maximum: 2.5
                                  fieldGap:
                                    default: 1
                                    type: number
                                    minimum: 0
                                    maximum: 4
                                  textOverflow:
                                    default: wrap
                                    type: string
                                    enum:
                                      - wrap
                                      - clip
                                  maxLines:
                                    default: 2
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  columnWidths:
                                    maxItems: 3
                                    type: array
                                    items:
                                      type: integer
                                      minimum: 5
                                      maximum: 80
                                  columnAlign:
                                    maxItems: 3
                                    type: array
                                    items:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                  align:
                                    default: left
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - fields
                                  - columns
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: dataTable
                              props:
                                type: object
                                properties:
                                  source:
                                    default: components
                                    type: string
                                    enum:
                                      - components
                                      - items
                                  fields:
                                    minItems: 1
                                    maxItems: 30
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                  showHeader:
                                    type: boolean
                                  columnWidths:
                                    default: {}
                                    type: object
                                    propertyNames:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    additionalProperties:
                                      type: integer
                                      minimum: 5
                                      maximum: 80
                                  textOverflow:
                                    default: wrap
                                    type: string
                                    enum:
                                      - wrap
                                      - clip
                                  maxLines:
                                    default: 2
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - fields
                                  - showHeader
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: image
                              props:
                                type: object
                                properties:
                                  source:
                                    type: string
                                    enum:
                                      - primary
                                      - secondary
                                      - field
                                      - asset
                                  field:
                                    default: null
                                    anyOf:
                                      - type: string
                                        maxLength: 120
                                      - type: 'null'
                                  assetId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 120
                                      - type: 'null'
                                  fit:
                                    type: string
                                    enum:
                                      - contain
                                      - cover
                                  ratio:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - auto
                                          - '1:1'
                                          - '4:3'
                                          - '3:2'
                                          - '16:9'
                                      - type: 'null'
                                  height:
                                    type: string
                                    enum:
                                      - sm
                                      - md
                                      - lg
                                  align:
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  caption:
                                    type: string
                                    maxLength: 500
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - source
                                  - fit
                                  - caption
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: gallery
                              props:
                                type: object
                                properties:
                                  columns:
                                    type: integer
                                    minimum: 2
                                    maximum: 8
                                  photos:
                                    default: all
                                    type: string
                                    enum:
                                      - all
                                      - additional
                                  slots:
                                    default: []
                                    maxItems: 8
                                    type: array
                                    items:
                                      anyOf:
                                        - type: string
                                          minLength: 1
                                          maxLength: 120
                                        - type: 'null'
                                  fit:
                                    type: string
                                    enum:
                                      - contain
                                      - cover
                                  ratio:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - auto
                                          - '1:1'
                                          - '4:3'
                                          - '3:2'
                                          - '16:9'
                                      - type: 'null'
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - columns
                                  - fit
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: imageFields
                              props:
                                type: object
                                properties:
                                  fields:
                                    maxItems: 20
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                  imageField:
                                    default: null
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 120
                                      - type: 'null'
                                  imagePosition:
                                    type: string
                                    enum:
                                      - left
                                      - right
                                      - top
                                  fit:
                                    type: string
                                    enum:
                                      - contain
                                      - cover
                                  ratio:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - auto
                                          - '1:1'
                                          - '4:3'
                                          - '3:2'
                                          - '16:9'
                                      - type: 'null'
                                  height:
                                    type: string
                                    enum:
                                      - sm
                                      - md
                                      - lg
                                  textOverflow:
                                    default: wrap
                                    type: string
                                    enum:
                                      - wrap
                                      - clip
                                  maxLines:
                                    default: 2
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - fields
                                  - imagePosition
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: logo
                              props:
                                type: object
                                properties:
                                  slot:
                                    type: string
                                    enum:
                                      - primary
                                      - secondary
                                      - footer
                                  align:
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - slot
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: divider
                              props:
                                type: object
                                properties:
                                  tone:
                                    type: string
                                    enum:
                                      - primary
                                      - secondary
                                      - muted
                                  lineStyle:
                                    type: string
                                    enum:
                                      - solid
                                      - dashed
                                      - dotted
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - tone
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: qrCode
                              props:
                                type: object
                                properties:
                                  value:
                                    type: string
                                    maxLength: 1000
                                  size:
                                    default: 24
                                    type: integer
                                    minimum: 12
                                    maximum: 60
                                  align:
                                    default: left
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - value
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: spacer
                              props:
                                type: object
                                properties:
                                  size:
                                    type: string
                                    enum:
                                      - sm
                                      - md
                                      - lg
                                      - xl
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - size
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: guidance
                              props:
                                type: object
                                properties:
                                  source:
                                    type: string
                                    enum:
                                      - instructions
                                      - requirements
                                      - furnishedInstalledBy
                                  showGroupLabels:
                                    default: true
                                    type: boolean
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - source
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: areas
                              props:
                                type: object
                                properties:
                                  columns:
                                    default: 4
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  showRoomNumbers:
                                    default: false
                                    type: boolean
                                  repeatEveryPage:
                                    type: boolean
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: schedule
                              props:
                                type: object
                                properties:
                                  groupBy:
                                    type: string
                                    enum:
                                      - none
                                      - category
                                      - area
                                      - areaTree
                                      - manufacturer
                                      - supplier
                                  showSubtotals:
                                    type: boolean
                                  dedupCategory:
                                    type: boolean
                                  subcategoryAsSubtitle:
                                    type: boolean
                                  showGrandTotal:
                                    type: boolean
                                  headerBold:
                                    type: boolean
                                  columnAlign:
                                    type: object
                                    propertyNames:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    additionalProperties:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                  textOverflow:
                                    type: string
                                    enum:
                                      - wrap
                                      - clip
                                  maxLines:
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  showRoomNumbers:
                                    default: false
                                    type: boolean
                                  roomColumns:
                                    default: 4
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  quantityBreakdown:
                                    default: false
                                    type: boolean
                                  bandDetails:
                                    default: none
                                    type: string
                                    enum:
                                      - none
                                      - company
                                  roomTotals:
                                    default: false
                                    type: boolean
                                  currency:
                                    default: null
                                    anyOf:
                                      - type: string
                                        pattern: ^[A-Z]{3}$
                                      - type: 'null'
                                  columns:
                                    minItems: 1
                                    maxItems: 30
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        label:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        width:
                                          anyOf:
                                            - type: integer
                                              minimum: 5
                                              maximum: 80
                                            - type: 'null'
                                      required:
                                        - key
                                        - label
                                        - width
                                      additionalProperties: false
                                required:
                                  - groupBy
                                  - showSubtotals
                                  - dedupCategory
                                  - subcategoryAsSubtitle
                                  - showGrandTotal
                                  - headerBold
                                  - columnAlign
                                  - textOverflow
                                  - maxLines
                                  - columns
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: itemsGrid
                              props:
                                type: object
                                properties:
                                  columns:
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  itemsPerPage:
                                    type: integer
                                    minimum: 1
                                    maximum: 12
                                  groupBy:
                                    default: none
                                    type: string
                                    enum:
                                      - none
                                      - category
                                      - area
                                  cardPer:
                                    default: item
                                    type: string
                                    enum:
                                      - item
                                      - unit
                                  cardBackground:
                                    default: '#FFFFFF'
                                    anyOf:
                                      - type: string
                                        enum:
                                          - none
                                          - primary
                                          - secondary
                                      - type: string
                                        pattern: ^#[0-9A-F]{6}$
                                  card:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      anyOf:
                                        - oneOf:
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: heading
                                                props:
                                                  type: object
                                                  properties:
                                                    text:
                                                      type: string
                                                      maxLength: 500
                                                    level:
                                                      type: string
                                                      enum:
                                                        - '1'
                                                        - '2'
                                                        - '3'
                                                    align:
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    size:
                                                      default: null
                                                      anyOf:
                                                        - type: number
                                                          minimum: 0.5
                                                          maximum: 3
                                                        - type: 'null'
                                                    weight:
                                                      default: null
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - regular
                                                            - medium
                                                            - bold
                                                        - type: 'null'
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - text
                                                    - level
                                                    - align
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: text
                                                props:
                                                  type: object
                                                  properties:
                                                    text:
                                                      type: string
                                                      maxLength: 8000
                                                    align:
                                                      default: left
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    size:
                                                      default: null
                                                      anyOf:
                                                        - type: number
                                                          minimum: 0.5
                                                          maximum: 3
                                                        - type: 'null'
                                                    weight:
                                                      default: null
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - regular
                                                            - medium
                                                            - bold
                                                        - type: 'null'
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - text
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: fieldList
                                                props:
                                                  type: object
                                                  properties:
                                                    fields:
                                                      maxItems: 40
                                                      type: array
                                                      items:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                    columns:
                                                      anyOf:
                                                        - type: integer
                                                          minimum: 1
                                                          maximum: 3
                                                        - type: string
                                                          const: auto
                                                    labelLayout:
                                                      default: stacked
                                                      type: string
                                                      enum:
                                                        - stacked
                                                        - inline
                                                    labelWidth:
                                                      default: 35
                                                      type: integer
                                                      minimum: 5
                                                      maximum: 60
                                                    lineHeight:
                                                      default: 1.4
                                                      type: number
                                                      minimum: 0.85
                                                      maximum: 2.5
                                                    fieldGap:
                                                      default: 1
                                                      type: number
                                                      minimum: 0
                                                      maximum: 4
                                                    textOverflow:
                                                      default: wrap
                                                      type: string
                                                      enum:
                                                        - wrap
                                                        - clip
                                                    maxLines:
                                                      default: 2
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 4
                                                    columnWidths:
                                                      maxItems: 3
                                                      type: array
                                                      items:
                                                        type: integer
                                                        minimum: 5
                                                        maximum: 80
                                                    columnAlign:
                                                      maxItems: 3
                                                      type: array
                                                      items:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                    align:
                                                      default: left
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - fields
                                                    - columns
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: dataTable
                                                props:
                                                  type: object
                                                  properties:
                                                    source:
                                                      default: components
                                                      type: string
                                                      enum:
                                                        - components
                                                        - items
                                                    fields:
                                                      minItems: 1
                                                      maxItems: 30
                                                      type: array
                                                      items:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                    showHeader:
                                                      type: boolean
                                                    columnWidths:
                                                      default: {}
                                                      type: object
                                                      propertyNames:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      additionalProperties:
                                                        type: integer
                                                        minimum: 5
                                                        maximum: 80
                                                    textOverflow:
                                                      default: wrap
                                                      type: string
                                                      enum:
                                                        - wrap
                                                        - clip
                                                    maxLines:
                                                      default: 2
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 4
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - fields
                                                    - showHeader
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: image
                                                props:
                                                  type: object
                                                  properties:
                                                    source:
                                                      type: string
                                                      enum:
                                                        - primary
                                                        - secondary
                                                        - field
                                                        - asset
                                                    field:
                                                      default: null
                                                      anyOf:
                                                        - type: string
                                                          maxLength: 120
                                                        - type: 'null'
                                                    assetId:
                                                      anyOf:
                                                        - type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        - type: 'null'
                                                    fit:
                                                      type: string
                                                      enum:
                                                        - contain
                                                        - cover
                                                    ratio:
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - auto
                                                            - '1:1'
                                                            - '4:3'
                                                            - '3:2'
                                                            - '16:9'
                                                        - type: 'null'
                                                    height:
                                                      type: string
                                                      enum:
                                                        - sm
                                                        - md
                                                        - lg
                                                    align:
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    caption:
                                                      type: string
                                                      maxLength: 500
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - source
                                                    - fit
                                                    - caption
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: gallery
                                                props:
                                                  type: object
                                                  properties:
                                                    columns:
                                                      type: integer
                                                      minimum: 2
                                                      maximum: 8
                                                    photos:
                                                      default: all
                                                      type: string
                                                      enum:
                                                        - all
                                                        - additional
                                                    slots:
                                                      default: []
                                                      maxItems: 8
                                                      type: array
                                                      items:
                                                        anyOf:
                                                          - type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          - type: 'null'
                                                    fit:
                                                      type: string
                                                      enum:
                                                        - contain
                                                        - cover
                                                    ratio:
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - auto
                                                            - '1:1'
                                                            - '4:3'
                                                            - '3:2'
                                                            - '16:9'
                                                        - type: 'null'
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - columns
                                                    - fit
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: imageFields
                                                props:
                                                  type: object
                                                  properties:
                                                    fields:
                                                      maxItems: 20
                                                      type: array
                                                      items:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                    imageField:
                                                      default: null
                                                      anyOf:
                                                        - type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        - type: 'null'
                                                    imagePosition:
                                                      type: string
                                                      enum:
                                                        - left
                                                        - right
                                                        - top
                                                    fit:
                                                      type: string
                                                      enum:
                                                        - contain
                                                        - cover
                                                    ratio:
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - auto
                                                            - '1:1'
                                                            - '4:3'
                                                            - '3:2'
                                                            - '16:9'
                                                        - type: 'null'
                                                    height:
                                                      type: string
                                                      enum:
                                                        - sm
                                                        - md
                                                        - lg
                                                    textOverflow:
                                                      default: wrap
                                                      type: string
                                                      enum:
                                                        - wrap
                                                        - clip
                                                    maxLines:
                                                      default: 2
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 4
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - fields
                                                    - imagePosition
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: logo
                                                props:
                                                  type: object
                                                  properties:
                                                    slot:
                                                      type: string
                                                      enum:
                                                        - primary
                                                        - secondary
                                                        - footer
                                                    align:
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - slot
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: divider
                                                props:
                                                  type: object
                                                  properties:
                                                    tone:
                                                      type: string
                                                      enum:
                                                        - primary
                                                        - secondary
                                                        - muted
                                                    lineStyle:
                                                      type: string
                                                      enum:
                                                        - solid
                                                        - dashed
                                                        - dotted
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - tone
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: qrCode
                                                props:
                                                  type: object
                                                  properties:
                                                    value:
                                                      type: string
                                                      maxLength: 1000
                                                    size:
                                                      default: 24
                                                      type: integer
                                                      minimum: 12
                                                      maximum: 60
                                                    align:
                                                      default: left
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - value
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: spacer
                                                props:
                                                  type: object
                                                  properties:
                                                    size:
                                                      type: string
                                                      enum:
                                                        - sm
                                                        - md
                                                        - lg
                                                        - xl
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - size
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: guidance
                                                props:
                                                  type: object
                                                  properties:
                                                    source:
                                                      type: string
                                                      enum:
                                                        - instructions
                                                        - requirements
                                                        - furnishedInstalledBy
                                                    showGroupLabels:
                                                      default: true
                                                      type: boolean
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - source
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: areas
                                                props:
                                                  type: object
                                                  properties:
                                                    columns:
                                                      default: 4
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 4
                                                    showRoomNumbers:
                                                      default: false
                                                      type: boolean
                                                    repeatEveryPage:
                                                      type: boolean
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: row
                                            cells:
                                              minItems: 1
                                              maxItems: 5
                                              type: array
                                              items:
                                                minItems: 1
                                                maxItems: 6
                                                type: array
                                                items:
                                                  oneOf:
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: heading
                                                        props:
                                                          type: object
                                                          properties:
                                                            text:
                                                              type: string
                                                              maxLength: 500
                                                            level:
                                                              type: string
                                                              enum:
                                                                - '1'
                                                                - '2'
                                                                - '3'
                                                            align:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            size:
                                                              default: null
                                                              anyOf:
                                                                - type: number
                                                                  minimum: 0.5
                                                                  maximum: 3
                                                                - type: 'null'
                                                            weight:
                                                              default: null
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - regular
                                                                    - medium
                                                                    - bold
                                                                - type: 'null'
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - text
                                                            - level
                                                            - align
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: text
                                                        props:
                                                          type: object
                                                          properties:
                                                            text:
                                                              type: string
                                                              maxLength: 8000
                                                            align:
                                                              default: left
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            size:
                                                              default: null
                                                              anyOf:
                                                                - type: number
                                                                  minimum: 0.5
                                                                  maximum: 3
                                                                - type: 'null'
                                                            weight:
                                                              default: null
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - regular
                                                                    - medium
                                                                    - bold
                                                                - type: 'null'
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - text
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: fieldList
                                                        props:
                                                          type: object
                                                          properties:
                                                            fields:
                                                              maxItems: 40
                                                              type: array
                                                              items:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                            columns:
                                                              anyOf:
                                                                - type: integer
                                                                  minimum: 1
                                                                  maximum: 3
                                                                - type: string
                                                                  const: auto
                                                            labelLayout:
                                                              default: stacked
                                                              type: string
                                                              enum:
                                                                - stacked
                                                                - inline
                                                            labelWidth:
                                                              default: 35
                                                              type: integer
                                                              minimum: 5
                                                              maximum: 60
                                                            lineHeight:
                                                              default: 1.4
                                                              type: number
                                                              minimum: 0.85
                                                              maximum: 2.5
                                                            fieldGap:
                                                              default: 1
                                                              type: number
                                                              minimum: 0
                                                              maximum: 4
                                                            textOverflow:
                                                              default: wrap
                                                              type: string
                                                              enum:
                                                                - wrap
                                                                - clip
                                                            maxLines:
                                                              default: 2
                                                              type: integer
                                                              minimum: 1
                                                              maximum: 4
                                                            columnWidths:
                                                              maxItems: 3
                                                              type: array
                                                              items:
                                                                type: integer
                                                                minimum: 5
                                                                maximum: 80
                                                            columnAlign:
                                                              maxItems: 3
                                                              type: array
                                                              items:
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - center
                                                                  - right
                                                            align:
                                                              default: left
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - fields
                                                            - columns
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: dataTable
                                                        props:
                                                          type: object
                                                          properties:
                                                            source:
                                                              default: components
                                                              type: string
                                                              enum:
                                                                - components
                                                                - items
                                                            fields:
                                                              minItems: 1
                                                              maxItems: 30
                                                              type: array
                                                              items:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                            showHeader:
                                                              type: boolean
                                                            columnWidths:
                                                              default: {}
                                                              type: object
                                                              propertyNames:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              additionalProperties:
                                                                type: integer
                                                                minimum: 5
                                                                maximum: 80
                                                            textOverflow:
                                                              default: wrap
                                                              type: string
                                                              enum:
                                                                - wrap
                                                                - clip
                                                            maxLines:
                                                              default: 2
                                                              type: integer
                                                              minimum: 1
                                                              maximum: 4
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - fields
                                                            - showHeader
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: image
                                                        props:
                                                          type: object
                                                          properties:
                                                            source:
                                                              type: string
                                                              enum:
                                                                - primary
                                                                - secondary
                                                                - field
                                                                - asset
                                                            field:
                                                              default: null
                                                              anyOf:
                                                                - type: string
                                                                  maxLength: 120
                                                                - type: 'null'
                                                            assetId:
                                                              anyOf:
                                                                - type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                                - type: 'null'
                                                            fit:
                                                              type: string
                                                              enum:
                                                                - contain
                                                                - cover
                                                            ratio:
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - auto
                                                                    - '1:1'
                                                                    - '4:3'
                                                                    - '3:2'
                                                                    - '16:9'
                                                                - type: 'null'
                                                            height:
                                                              type: string
                                                              enum:
                                                                - sm
                                                                - md
                                                                - lg
                                                            align:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            caption:
                                                              type: string
                                                              maxLength: 500
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - source
                                                            - fit
                                                            - caption
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: gallery
                                                        props:
                                                          type: object
                                                          properties:
                                                            columns:
                                                              type: integer
                                                              minimum: 2
                                                              maximum: 8
                                                            photos:
                                                              default: all
                                                              type: string
                                                              enum:
                                                                - all
                                                                - additional
                                                            slots:
                                                              default: []
                                                              maxItems: 8
                                                              type: array
                                                              items:
                                                                anyOf:
                                                                  - type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                  - type: 'null'
                                                            fit:
                                                              type: string
                                                              enum:
                                                                - contain
                                                                - cover
                                                            ratio:
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - auto
                                                                    - '1:1'
                                                                    - '4:3'
                                                                    - '3:2'
                                                                    - '16:9'
                                                                - type: 'null'
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - columns
                                                            - fit
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: imageFields
                                                        props:
                                                          type: object
                                                          properties:
                                                            fields:
                                                              maxItems: 20
                                                              type: array
                                                              items:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                            imageField:
                                                              default: null
                                                              anyOf:
                                                                - type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                                - type: 'null'
                                                            imagePosition:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - right
                                                                - top
                                                            fit:
                                                              type: string
                                                              enum:
                                                                - contain
                                                                - cover
                                                            ratio:
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - auto
                                                                    - '1:1'
                                                                    - '4:3'
                                                                    - '3:2'
                                                                    - '16:9'
                                                                - type: 'null'
                                                            height:
                                                              type: string
                                                              enum:
                                                                - sm
                                                                - md
                                                                - lg
                                                            textOverflow:
                                                              default: wrap
                                                              type: string
                                                              enum:
                                                                - wrap
                                                                - clip
                                                            maxLines:
                                                              default: 2
                                                              type: integer
                                                              minimum: 1
                                                              maximum: 4
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - fields
                                                            - imagePosition
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: logo
                                                        props:
                                                          type: object
                                                          properties:
                                                            slot:
                                                              type: string
                                                              enum:
                                                                - primary
                                                                - secondary
                                                                - footer
                                                            align:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - slot
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: divider
                                                        props:
                                                          type: object
                                                          properties:
                                                            tone:
                                                              type: string
                                                              enum:
                                                                - primary
                                                                - secondary
                                                                - muted
                                                            lineStyle:
                                                              type: string
                                                              enum:
                                                                - solid
                                                                - dashed
                                                                - dotted
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - tone
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: qrCode
                                                        props:
                                                          type: object
                                                          properties:
                                                            value:
                                                              type: string
                                                              maxLength: 1000
                                                            size:
                                                              default: 24
                                                              type: integer
                                                              minimum: 12
                                                              maximum: 60
                                                            align:
                                                              default: left
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - value
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: spacer
                                                        props:
                                                          type: object
                                                          properties:
                                                            size:
                                                              type: string
                                                              enum:
                                                                - sm
                                                                - md
                                                                - lg
                                                                - xl
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - size
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: guidance
                                                        props:
                                                          type: object
                                                          properties:
                                                            source:
                                                              type: string
                                                              enum:
                                                                - instructions
                                                                - requirements
                                                                - furnishedInstalledBy
                                                            showGroupLabels:
                                                              default: true
                                                              type: boolean
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - source
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: areas
                                                        props:
                                                          type: object
                                                          properties:
                                                            columns:
                                                              default: 4
                                                              type: integer
                                                              minimum: 1
                                                              maximum: 4
                                                            showRoomNumbers:
                                                              default: false
                                                              type: boolean
                                                            repeatEveryPage:
                                                              type: boolean
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                            widths:
                                              minItems: 1
                                              maxItems: 5
                                              type: array
                                              items:
                                                type: integer
                                                minimum: 1
                                                maximum: 8
                                            background:
                                              default: none
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - none
                                                    - primary
                                                    - secondary
                                                - type: string
                                                  pattern: ^#[0-9A-F]{6}$
                                            bleed:
                                              default: false
                                              type: boolean
                                          required:
                                            - id
                                            - type
                                            - cells
                                          additionalProperties: false
                                required:
                                  - columns
                                  - itemsPerPage
                                  - card
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: contents
                              props:
                                type: object
                                properties:
                                  columns:
                                    minItems: 1
                                    maxItems: 7
                                    type: array
                                    items:
                                      type: string
                                      enum:
                                        - refNumber
                                        - name
                                        - category
                                        - subcategory
                                        - quantity
                                        - page
                                        - viewDetails
                                        - categoryCoverDetail
                                  groupBy:
                                    type: string
                                    enum:
                                      - none
                                      - category
                                      - subcategory
                                      - area
                                      - manufacturer
                                      - supplier
                                  subcategoryAsSubtitle:
                                    type: boolean
                                  headerBold:
                                    type: boolean
                                  columnWidths:
                                    default: {}
                                    type: object
                                    propertyNames:
                                      type: string
                                      enum:
                                        - refNumber
                                        - name
                                        - category
                                        - subcategory
                                        - quantity
                                        - page
                                        - viewDetails
                                        - categoryCoverDetail
                                    additionalProperties:
                                      type: integer
                                      minimum: 5
                                      maximum: 80
                                  columnAlign:
                                    default: {}
                                    type: object
                                    propertyNames:
                                      type: string
                                      enum:
                                        - refNumber
                                        - name
                                        - category
                                        - subcategory
                                        - quantity
                                        - page
                                        - viewDetails
                                        - categoryCoverDetail
                                    additionalProperties:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                  showRoomNumbers:
                                    default: false
                                    type: boolean
                                  roomColumns:
                                    default: 4
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  quantityBreakdown:
                                    default: false
                                    type: boolean
                                required:
                                  - columns
                                  - groupBy
                                  - subcategoryAsSubtitle
                                  - headerBold
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: row
                          cells:
                            minItems: 1
                            maxItems: 5
                            type: array
                            items:
                              minItems: 1
                              maxItems: 6
                              type: array
                              items:
                                oneOf:
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: heading
                                      props:
                                        type: object
                                        properties:
                                          text:
                                            type: string
                                            maxLength: 500
                                          level:
                                            type: string
                                            enum:
                                              - '1'
                                              - '2'
                                              - '3'
                                          align:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          size:
                                            default: null
                                            anyOf:
                                              - type: number
                                                minimum: 0.5
                                                maximum: 3
                                              - type: 'null'
                                          weight:
                                            default: null
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - regular
                                                  - medium
                                                  - bold
                                              - type: 'null'
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - text
                                          - level
                                          - align
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: text
                                      props:
                                        type: object
                                        properties:
                                          text:
                                            type: string
                                            maxLength: 8000
                                          align:
                                            default: left
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          size:
                                            default: null
                                            anyOf:
                                              - type: number
                                                minimum: 0.5
                                                maximum: 3
                                              - type: 'null'
                                          weight:
                                            default: null
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - regular
                                                  - medium
                                                  - bold
                                              - type: 'null'
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - text
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: fieldList
                                      props:
                                        type: object
                                        properties:
                                          fields:
                                            maxItems: 40
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                          columns:
                                            anyOf:
                                              - type: integer
                                                minimum: 1
                                                maximum: 3
                                              - type: string
                                                const: auto
                                          labelLayout:
                                            default: stacked
                                            type: string
                                            enum:
                                              - stacked
                                              - inline
                                          labelWidth:
                                            default: 35
                                            type: integer
                                            minimum: 5
                                            maximum: 60
                                          lineHeight:
                                            default: 1.4
                                            type: number
                                            minimum: 0.85
                                            maximum: 2.5
                                          fieldGap:
                                            default: 1
                                            type: number
                                            minimum: 0
                                            maximum: 4
                                          textOverflow:
                                            default: wrap
                                            type: string
                                            enum:
                                              - wrap
                                              - clip
                                          maxLines:
                                            default: 2
                                            type: integer
                                            minimum: 1
                                            maximum: 4
                                          columnWidths:
                                            maxItems: 3
                                            type: array
                                            items:
                                              type: integer
                                              minimum: 5
                                              maximum: 80
                                          columnAlign:
                                            maxItems: 3
                                            type: array
                                            items:
                                              type: string
                                              enum:
                                                - left
                                                - center
                                                - right
                                          align:
                                            default: left
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - fields
                                          - columns
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: dataTable
                                      props:
                                        type: object
                                        properties:
                                          source:
                                            default: components
                                            type: string
                                            enum:
                                              - components
                                              - items
                                          fields:
                                            minItems: 1
                                            maxItems: 30
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                          showHeader:
                                            type: boolean
                                          columnWidths:
                                            default: {}
                                            type: object
                                            propertyNames:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            additionalProperties:
                                              type: integer
                                              minimum: 5
                                              maximum: 80
                                          textOverflow:
                                            default: wrap
                                            type: string
                                            enum:
                                              - wrap
                                              - clip
                                          maxLines:
                                            default: 2
                                            type: integer
                                            minimum: 1
                                            maximum: 4
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - fields
                                          - showHeader
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: image
                                      props:
                                        type: object
                                        properties:
                                          source:
                                            type: string
                                            enum:
                                              - primary
                                              - secondary
                                              - field
                                              - asset
                                          field:
                                            default: null
                                            anyOf:
                                              - type: string
                                                maxLength: 120
                                              - type: 'null'
                                          assetId:
                                            anyOf:
                                              - type: string
                                                minLength: 1
                                                maxLength: 120
                                              - type: 'null'
                                          fit:
                                            type: string
                                            enum:
                                              - contain
                                              - cover
                                          ratio:
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - auto
                                                  - '1:1'
                                                  - '4:3'
                                                  - '3:2'
                                                  - '16:9'
                                              - type: 'null'
                                          height:
                                            type: string
                                            enum:
                                              - sm
                                              - md
                                              - lg
                                          align:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          caption:
                                            type: string
                                            maxLength: 500
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - source
                                          - fit
                                          - caption
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: gallery
                                      props:
                                        type: object
                                        properties:
                                          columns:
                                            type: integer
                                            minimum: 2
                                            maximum: 8
                                          photos:
                                            default: all
                                            type: string
                                            enum:
                                              - all
                                              - additional
                                          slots:
                                            default: []
                                            maxItems: 8
                                            type: array
                                            items:
                                              anyOf:
                                                - type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                - type: 'null'
                                          fit:
                                            type: string
                                            enum:
                                              - contain
                                              - cover
                                          ratio:
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - auto
                                                  - '1:1'
                                                  - '4:3'
                                                  - '3:2'
                                                  - '16:9'
                                              - type: 'null'
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - columns
                                          - fit
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: imageFields
                                      props:
                                        type: object
                                        properties:
                                          fields:
                                            maxItems: 20
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                          imageField:
                                            default: null
                                            anyOf:
                                              - type: string
                                                minLength: 1
                                                maxLength: 120
                                              - type: 'null'
                                          imagePosition:
                                            type: string
                                            enum:
                                              - left
                                              - right
                                              - top
                                          fit:
                                            type: string
                                            enum:
                                              - contain
                                              - cover
                                          ratio:
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - auto
                                                  - '1:1'
                                                  - '4:3'
                                                  - '3:2'
                                                  - '16:9'
                                              - type: 'null'
                                          height:
                                            type: string
                                            enum:
                                              - sm
                                              - md
                                              - lg
                                          textOverflow:
                                            default: wrap
                                            type: string
                                            enum:
                                              - wrap
                                              - clip
                                          maxLines:
                                            default: 2
                                            type: integer
                                            minimum: 1
                                            maximum: 4
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - fields
                                          - imagePosition
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: logo
                                      props:
                                        type: object
                                        properties:
                                          slot:
                                            type: string
                                            enum:
                                              - primary
                                              - secondary
                                              - footer
                                          align:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - slot
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: divider
                                      props:
                                        type: object
                                        properties:
                                          tone:
                                            type: string
                                            enum:
                                              - primary
                                              - secondary
                                              - muted
                                          lineStyle:
                                            type: string
                                            enum:
                                              - solid
                                              - dashed
                                              - dotted
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - tone
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: qrCode
                                      props:
                                        type: object
                                        properties:
                                          value:
                                            type: string
                                            maxLength: 1000
                                          size:
                                            default: 24
                                            type: integer
                                            minimum: 12
                                            maximum: 60
                                          align:
                                            default: left
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - value
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: spacer
                                      props:
                                        type: object
                                        properties:
                                          size:
                                            type: string
                                            enum:
                                              - sm
                                              - md
                                              - lg
                                              - xl
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - size
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: guidance
                                      props:
                                        type: object
                                        properties:
                                          source:
                                            type: string
                                            enum:
                                              - instructions
                                              - requirements
                                              - furnishedInstalledBy
                                          showGroupLabels:
                                            default: true
                                            type: boolean
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - source
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: areas
                                      props:
                                        type: object
                                        properties:
                                          columns:
                                            default: 4
                                            type: integer
                                            minimum: 1
                                            maximum: 4
                                          showRoomNumbers:
                                            default: false
                                            type: boolean
                                          repeatEveryPage:
                                            type: boolean
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                          widths:
                            minItems: 1
                            maxItems: 5
                            type: array
                            items:
                              type: integer
                              minimum: 1
                              maximum: 8
                          background:
                            default: none
                            anyOf:
                              - type: string
                                enum:
                                  - none
                                  - primary
                                  - secondary
                              - type: string
                                pattern: ^#[0-9A-F]{6}$
                          bleed:
                            default: false
                            type: boolean
                        required:
                          - id
                          - type
                          - cells
                        additionalProperties: false
                index:
                  maxItems: 80
                  type: array
                  items:
                    anyOf:
                      - oneOf:
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: heading
                              props:
                                type: object
                                properties:
                                  text:
                                    type: string
                                    maxLength: 500
                                  level:
                                    type: string
                                    enum:
                                      - '1'
                                      - '2'
                                      - '3'
                                  align:
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  size:
                                    default: null
                                    anyOf:
                                      - type: number
                                        minimum: 0.5
                                        maximum: 3
                                      - type: 'null'
                                  weight:
                                    default: null
                                    anyOf:
                                      - type: string
                                        enum:
                                          - regular
                                          - medium
                                          - bold
                                      - type: 'null'
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - text
                                  - level
                                  - align
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: text
                              props:
                                type: object
                                properties:
                                  text:
                                    type: string
                                    maxLength: 8000
                                  align:
                                    default: left
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  size:
                                    default: null
                                    anyOf:
                                      - type: number
                                        minimum: 0.5
                                        maximum: 3
                                      - type: 'null'
                                  weight:
                                    default: null
                                    anyOf:
                                      - type: string
                                        enum:
                                          - regular
                                          - medium
                                          - bold
                                      - type: 'null'
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - text
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: fieldList
                              props:
                                type: object
                                properties:
                                  fields:
                                    maxItems: 40
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                  columns:
                                    anyOf:
                                      - type: integer
                                        minimum: 1
                                        maximum: 3
                                      - type: string
                                        const: auto
                                  labelLayout:
                                    default: stacked
                                    type: string
                                    enum:
                                      - stacked
                                      - inline
                                  labelWidth:
                                    default: 35
                                    type: integer
                                    minimum: 5
                                    maximum: 60
                                  lineHeight:
                                    default: 1.4
                                    type: number
                                    minimum: 0.85
                                    maximum: 2.5
                                  fieldGap:
                                    default: 1
                                    type: number
                                    minimum: 0
                                    maximum: 4
                                  textOverflow:
                                    default: wrap
                                    type: string
                                    enum:
                                      - wrap
                                      - clip
                                  maxLines:
                                    default: 2
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  columnWidths:
                                    maxItems: 3
                                    type: array
                                    items:
                                      type: integer
                                      minimum: 5
                                      maximum: 80
                                  columnAlign:
                                    maxItems: 3
                                    type: array
                                    items:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                  align:
                                    default: left
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - fields
                                  - columns
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: dataTable
                              props:
                                type: object
                                properties:
                                  source:
                                    default: components
                                    type: string
                                    enum:
                                      - components
                                      - items
                                  fields:
                                    minItems: 1
                                    maxItems: 30
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                  showHeader:
                                    type: boolean
                                  columnWidths:
                                    default: {}
                                    type: object
                                    propertyNames:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    additionalProperties:
                                      type: integer
                                      minimum: 5
                                      maximum: 80
                                  textOverflow:
                                    default: wrap
                                    type: string
                                    enum:
                                      - wrap
                                      - clip
                                  maxLines:
                                    default: 2
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - fields
                                  - showHeader
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: image
                              props:
                                type: object
                                properties:
                                  source:
                                    type: string
                                    enum:
                                      - primary
                                      - secondary
                                      - field
                                      - asset
                                  field:
                                    default: null
                                    anyOf:
                                      - type: string
                                        maxLength: 120
                                      - type: 'null'
                                  assetId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 120
                                      - type: 'null'
                                  fit:
                                    type: string
                                    enum:
                                      - contain
                                      - cover
                                  ratio:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - auto
                                          - '1:1'
                                          - '4:3'
                                          - '3:2'
                                          - '16:9'
                                      - type: 'null'
                                  height:
                                    type: string
                                    enum:
                                      - sm
                                      - md
                                      - lg
                                  align:
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  caption:
                                    type: string
                                    maxLength: 500
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - source
                                  - fit
                                  - caption
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: gallery
                              props:
                                type: object
                                properties:
                                  columns:
                                    type: integer
                                    minimum: 2
                                    maximum: 8
                                  photos:
                                    default: all
                                    type: string
                                    enum:
                                      - all
                                      - additional
                                  slots:
                                    default: []
                                    maxItems: 8
                                    type: array
                                    items:
                                      anyOf:
                                        - type: string
                                          minLength: 1
                                          maxLength: 120
                                        - type: 'null'
                                  fit:
                                    type: string
                                    enum:
                                      - contain
                                      - cover
                                  ratio:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - auto
                                          - '1:1'
                                          - '4:3'
                                          - '3:2'
                                          - '16:9'
                                      - type: 'null'
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - columns
                                  - fit
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: imageFields
                              props:
                                type: object
                                properties:
                                  fields:
                                    maxItems: 20
                                    type: array
                                    items:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                  imageField:
                                    default: null
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                        maxLength: 120
                                      - type: 'null'
                                  imagePosition:
                                    type: string
                                    enum:
                                      - left
                                      - right
                                      - top
                                  fit:
                                    type: string
                                    enum:
                                      - contain
                                      - cover
                                  ratio:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - auto
                                          - '1:1'
                                          - '4:3'
                                          - '3:2'
                                          - '16:9'
                                      - type: 'null'
                                  height:
                                    type: string
                                    enum:
                                      - sm
                                      - md
                                      - lg
                                  textOverflow:
                                    default: wrap
                                    type: string
                                    enum:
                                      - wrap
                                      - clip
                                  maxLines:
                                    default: 2
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - fields
                                  - imagePosition
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: logo
                              props:
                                type: object
                                properties:
                                  slot:
                                    type: string
                                    enum:
                                      - primary
                                      - secondary
                                      - footer
                                  align:
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - slot
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: divider
                              props:
                                type: object
                                properties:
                                  tone:
                                    type: string
                                    enum:
                                      - primary
                                      - secondary
                                      - muted
                                  lineStyle:
                                    type: string
                                    enum:
                                      - solid
                                      - dashed
                                      - dotted
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - tone
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: qrCode
                              props:
                                type: object
                                properties:
                                  value:
                                    type: string
                                    maxLength: 1000
                                  size:
                                    default: 24
                                    type: integer
                                    minimum: 12
                                    maximum: 60
                                  align:
                                    default: left
                                    type: string
                                    enum:
                                      - left
                                      - center
                                      - right
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - value
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: spacer
                              props:
                                type: object
                                properties:
                                  size:
                                    type: string
                                    enum:
                                      - sm
                                      - md
                                      - lg
                                      - xl
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - size
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: guidance
                              props:
                                type: object
                                properties:
                                  source:
                                    type: string
                                    enum:
                                      - instructions
                                      - requirements
                                      - furnishedInstalledBy
                                  showGroupLabels:
                                    default: true
                                    type: boolean
                                  repeatEveryPage:
                                    type: boolean
                                required:
                                  - source
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: areas
                              props:
                                type: object
                                properties:
                                  columns:
                                    default: 4
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  showRoomNumbers:
                                    default: false
                                    type: boolean
                                  repeatEveryPage:
                                    type: boolean
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: schedule
                              props:
                                type: object
                                properties:
                                  groupBy:
                                    type: string
                                    enum:
                                      - none
                                      - category
                                      - area
                                      - areaTree
                                      - manufacturer
                                      - supplier
                                  showSubtotals:
                                    type: boolean
                                  dedupCategory:
                                    type: boolean
                                  subcategoryAsSubtitle:
                                    type: boolean
                                  showGrandTotal:
                                    type: boolean
                                  headerBold:
                                    type: boolean
                                  columnAlign:
                                    type: object
                                    propertyNames:
                                      type: string
                                      minLength: 1
                                      maxLength: 120
                                    additionalProperties:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                  textOverflow:
                                    type: string
                                    enum:
                                      - wrap
                                      - clip
                                  maxLines:
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  showRoomNumbers:
                                    default: false
                                    type: boolean
                                  roomColumns:
                                    default: 4
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  quantityBreakdown:
                                    default: false
                                    type: boolean
                                  bandDetails:
                                    default: none
                                    type: string
                                    enum:
                                      - none
                                      - company
                                  roomTotals:
                                    default: false
                                    type: boolean
                                  currency:
                                    default: null
                                    anyOf:
                                      - type: string
                                        pattern: ^[A-Z]{3}$
                                      - type: 'null'
                                  columns:
                                    minItems: 1
                                    maxItems: 30
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        label:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        width:
                                          anyOf:
                                            - type: integer
                                              minimum: 5
                                              maximum: 80
                                            - type: 'null'
                                      required:
                                        - key
                                        - label
                                        - width
                                      additionalProperties: false
                                required:
                                  - groupBy
                                  - showSubtotals
                                  - dedupCategory
                                  - subcategoryAsSubtitle
                                  - showGrandTotal
                                  - headerBold
                                  - columnAlign
                                  - textOverflow
                                  - maxLines
                                  - columns
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: itemsGrid
                              props:
                                type: object
                                properties:
                                  columns:
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  itemsPerPage:
                                    type: integer
                                    minimum: 1
                                    maximum: 12
                                  groupBy:
                                    default: none
                                    type: string
                                    enum:
                                      - none
                                      - category
                                      - area
                                  cardPer:
                                    default: item
                                    type: string
                                    enum:
                                      - item
                                      - unit
                                  cardBackground:
                                    default: '#FFFFFF'
                                    anyOf:
                                      - type: string
                                        enum:
                                          - none
                                          - primary
                                          - secondary
                                      - type: string
                                        pattern: ^#[0-9A-F]{6}$
                                  card:
                                    minItems: 1
                                    maxItems: 8
                                    type: array
                                    items:
                                      anyOf:
                                        - oneOf:
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: heading
                                                props:
                                                  type: object
                                                  properties:
                                                    text:
                                                      type: string
                                                      maxLength: 500
                                                    level:
                                                      type: string
                                                      enum:
                                                        - '1'
                                                        - '2'
                                                        - '3'
                                                    align:
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    size:
                                                      default: null
                                                      anyOf:
                                                        - type: number
                                                          minimum: 0.5
                                                          maximum: 3
                                                        - type: 'null'
                                                    weight:
                                                      default: null
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - regular
                                                            - medium
                                                            - bold
                                                        - type: 'null'
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - text
                                                    - level
                                                    - align
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: text
                                                props:
                                                  type: object
                                                  properties:
                                                    text:
                                                      type: string
                                                      maxLength: 8000
                                                    align:
                                                      default: left
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    size:
                                                      default: null
                                                      anyOf:
                                                        - type: number
                                                          minimum: 0.5
                                                          maximum: 3
                                                        - type: 'null'
                                                    weight:
                                                      default: null
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - regular
                                                            - medium
                                                            - bold
                                                        - type: 'null'
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - text
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: fieldList
                                                props:
                                                  type: object
                                                  properties:
                                                    fields:
                                                      maxItems: 40
                                                      type: array
                                                      items:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                    columns:
                                                      anyOf:
                                                        - type: integer
                                                          minimum: 1
                                                          maximum: 3
                                                        - type: string
                                                          const: auto
                                                    labelLayout:
                                                      default: stacked
                                                      type: string
                                                      enum:
                                                        - stacked
                                                        - inline
                                                    labelWidth:
                                                      default: 35
                                                      type: integer
                                                      minimum: 5
                                                      maximum: 60
                                                    lineHeight:
                                                      default: 1.4
                                                      type: number
                                                      minimum: 0.85
                                                      maximum: 2.5
                                                    fieldGap:
                                                      default: 1
                                                      type: number
                                                      minimum: 0
                                                      maximum: 4
                                                    textOverflow:
                                                      default: wrap
                                                      type: string
                                                      enum:
                                                        - wrap
                                                        - clip
                                                    maxLines:
                                                      default: 2
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 4
                                                    columnWidths:
                                                      maxItems: 3
                                                      type: array
                                                      items:
                                                        type: integer
                                                        minimum: 5
                                                        maximum: 80
                                                    columnAlign:
                                                      maxItems: 3
                                                      type: array
                                                      items:
                                                        type: string
                                                        enum:
                                                          - left
                                                          - center
                                                          - right
                                                    align:
                                                      default: left
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - fields
                                                    - columns
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: dataTable
                                                props:
                                                  type: object
                                                  properties:
                                                    source:
                                                      default: components
                                                      type: string
                                                      enum:
                                                        - components
                                                        - items
                                                    fields:
                                                      minItems: 1
                                                      maxItems: 30
                                                      type: array
                                                      items:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                    showHeader:
                                                      type: boolean
                                                    columnWidths:
                                                      default: {}
                                                      type: object
                                                      propertyNames:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                      additionalProperties:
                                                        type: integer
                                                        minimum: 5
                                                        maximum: 80
                                                    textOverflow:
                                                      default: wrap
                                                      type: string
                                                      enum:
                                                        - wrap
                                                        - clip
                                                    maxLines:
                                                      default: 2
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 4
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - fields
                                                    - showHeader
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: image
                                                props:
                                                  type: object
                                                  properties:
                                                    source:
                                                      type: string
                                                      enum:
                                                        - primary
                                                        - secondary
                                                        - field
                                                        - asset
                                                    field:
                                                      default: null
                                                      anyOf:
                                                        - type: string
                                                          maxLength: 120
                                                        - type: 'null'
                                                    assetId:
                                                      anyOf:
                                                        - type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        - type: 'null'
                                                    fit:
                                                      type: string
                                                      enum:
                                                        - contain
                                                        - cover
                                                    ratio:
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - auto
                                                            - '1:1'
                                                            - '4:3'
                                                            - '3:2'
                                                            - '16:9'
                                                        - type: 'null'
                                                    height:
                                                      type: string
                                                      enum:
                                                        - sm
                                                        - md
                                                        - lg
                                                    align:
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    caption:
                                                      type: string
                                                      maxLength: 500
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - source
                                                    - fit
                                                    - caption
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: gallery
                                                props:
                                                  type: object
                                                  properties:
                                                    columns:
                                                      type: integer
                                                      minimum: 2
                                                      maximum: 8
                                                    photos:
                                                      default: all
                                                      type: string
                                                      enum:
                                                        - all
                                                        - additional
                                                    slots:
                                                      default: []
                                                      maxItems: 8
                                                      type: array
                                                      items:
                                                        anyOf:
                                                          - type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          - type: 'null'
                                                    fit:
                                                      type: string
                                                      enum:
                                                        - contain
                                                        - cover
                                                    ratio:
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - auto
                                                            - '1:1'
                                                            - '4:3'
                                                            - '3:2'
                                                            - '16:9'
                                                        - type: 'null'
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - columns
                                                    - fit
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: imageFields
                                                props:
                                                  type: object
                                                  properties:
                                                    fields:
                                                      maxItems: 20
                                                      type: array
                                                      items:
                                                        type: string
                                                        minLength: 1
                                                        maxLength: 120
                                                    imageField:
                                                      default: null
                                                      anyOf:
                                                        - type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        - type: 'null'
                                                    imagePosition:
                                                      type: string
                                                      enum:
                                                        - left
                                                        - right
                                                        - top
                                                    fit:
                                                      type: string
                                                      enum:
                                                        - contain
                                                        - cover
                                                    ratio:
                                                      anyOf:
                                                        - type: string
                                                          enum:
                                                            - auto
                                                            - '1:1'
                                                            - '4:3'
                                                            - '3:2'
                                                            - '16:9'
                                                        - type: 'null'
                                                    height:
                                                      type: string
                                                      enum:
                                                        - sm
                                                        - md
                                                        - lg
                                                    textOverflow:
                                                      default: wrap
                                                      type: string
                                                      enum:
                                                        - wrap
                                                        - clip
                                                    maxLines:
                                                      default: 2
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 4
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - fields
                                                    - imagePosition
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: logo
                                                props:
                                                  type: object
                                                  properties:
                                                    slot:
                                                      type: string
                                                      enum:
                                                        - primary
                                                        - secondary
                                                        - footer
                                                    align:
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - slot
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: divider
                                                props:
                                                  type: object
                                                  properties:
                                                    tone:
                                                      type: string
                                                      enum:
                                                        - primary
                                                        - secondary
                                                        - muted
                                                    lineStyle:
                                                      type: string
                                                      enum:
                                                        - solid
                                                        - dashed
                                                        - dotted
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - tone
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: qrCode
                                                props:
                                                  type: object
                                                  properties:
                                                    value:
                                                      type: string
                                                      maxLength: 1000
                                                    size:
                                                      default: 24
                                                      type: integer
                                                      minimum: 12
                                                      maximum: 60
                                                    align:
                                                      default: left
                                                      type: string
                                                      enum:
                                                        - left
                                                        - center
                                                        - right
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - value
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: spacer
                                                props:
                                                  type: object
                                                  properties:
                                                    size:
                                                      type: string
                                                      enum:
                                                        - sm
                                                        - md
                                                        - lg
                                                        - xl
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - size
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: guidance
                                                props:
                                                  type: object
                                                  properties:
                                                    source:
                                                      type: string
                                                      enum:
                                                        - instructions
                                                        - requirements
                                                        - furnishedInstalledBy
                                                    showGroupLabels:
                                                      default: true
                                                      type: boolean
                                                    repeatEveryPage:
                                                      type: boolean
                                                  required:
                                                    - source
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: areas
                                                props:
                                                  type: object
                                                  properties:
                                                    columns:
                                                      default: 4
                                                      type: integer
                                                      minimum: 1
                                                      maximum: 4
                                                    showRoomNumbers:
                                                      default: false
                                                      type: boolean
                                                    repeatEveryPage:
                                                      type: boolean
                                                  additionalProperties: false
                                              required:
                                                - id
                                                - type
                                                - props
                                              additionalProperties: false
                                        - type: object
                                          properties:
                                            id:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            type:
                                              type: string
                                              const: row
                                            cells:
                                              minItems: 1
                                              maxItems: 5
                                              type: array
                                              items:
                                                minItems: 1
                                                maxItems: 6
                                                type: array
                                                items:
                                                  oneOf:
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: heading
                                                        props:
                                                          type: object
                                                          properties:
                                                            text:
                                                              type: string
                                                              maxLength: 500
                                                            level:
                                                              type: string
                                                              enum:
                                                                - '1'
                                                                - '2'
                                                                - '3'
                                                            align:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            size:
                                                              default: null
                                                              anyOf:
                                                                - type: number
                                                                  minimum: 0.5
                                                                  maximum: 3
                                                                - type: 'null'
                                                            weight:
                                                              default: null
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - regular
                                                                    - medium
                                                                    - bold
                                                                - type: 'null'
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - text
                                                            - level
                                                            - align
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: text
                                                        props:
                                                          type: object
                                                          properties:
                                                            text:
                                                              type: string
                                                              maxLength: 8000
                                                            align:
                                                              default: left
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            size:
                                                              default: null
                                                              anyOf:
                                                                - type: number
                                                                  minimum: 0.5
                                                                  maximum: 3
                                                                - type: 'null'
                                                            weight:
                                                              default: null
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - regular
                                                                    - medium
                                                                    - bold
                                                                - type: 'null'
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - text
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: fieldList
                                                        props:
                                                          type: object
                                                          properties:
                                                            fields:
                                                              maxItems: 40
                                                              type: array
                                                              items:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                            columns:
                                                              anyOf:
                                                                - type: integer
                                                                  minimum: 1
                                                                  maximum: 3
                                                                - type: string
                                                                  const: auto
                                                            labelLayout:
                                                              default: stacked
                                                              type: string
                                                              enum:
                                                                - stacked
                                                                - inline
                                                            labelWidth:
                                                              default: 35
                                                              type: integer
                                                              minimum: 5
                                                              maximum: 60
                                                            lineHeight:
                                                              default: 1.4
                                                              type: number
                                                              minimum: 0.85
                                                              maximum: 2.5
                                                            fieldGap:
                                                              default: 1
                                                              type: number
                                                              minimum: 0
                                                              maximum: 4
                                                            textOverflow:
                                                              default: wrap
                                                              type: string
                                                              enum:
                                                                - wrap
                                                                - clip
                                                            maxLines:
                                                              default: 2
                                                              type: integer
                                                              minimum: 1
                                                              maximum: 4
                                                            columnWidths:
                                                              maxItems: 3
                                                              type: array
                                                              items:
                                                                type: integer
                                                                minimum: 5
                                                                maximum: 80
                                                            columnAlign:
                                                              maxItems: 3
                                                              type: array
                                                              items:
                                                                type: string
                                                                enum:
                                                                  - left
                                                                  - center
                                                                  - right
                                                            align:
                                                              default: left
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - fields
                                                            - columns
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: dataTable
                                                        props:
                                                          type: object
                                                          properties:
                                                            source:
                                                              default: components
                                                              type: string
                                                              enum:
                                                                - components
                                                                - items
                                                            fields:
                                                              minItems: 1
                                                              maxItems: 30
                                                              type: array
                                                              items:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                            showHeader:
                                                              type: boolean
                                                            columnWidths:
                                                              default: {}
                                                              type: object
                                                              propertyNames:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              additionalProperties:
                                                                type: integer
                                                                minimum: 5
                                                                maximum: 80
                                                            textOverflow:
                                                              default: wrap
                                                              type: string
                                                              enum:
                                                                - wrap
                                                                - clip
                                                            maxLines:
                                                              default: 2
                                                              type: integer
                                                              minimum: 1
                                                              maximum: 4
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - fields
                                                            - showHeader
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: image
                                                        props:
                                                          type: object
                                                          properties:
                                                            source:
                                                              type: string
                                                              enum:
                                                                - primary
                                                                - secondary
                                                                - field
                                                                - asset
                                                            field:
                                                              default: null
                                                              anyOf:
                                                                - type: string
                                                                  maxLength: 120
                                                                - type: 'null'
                                                            assetId:
                                                              anyOf:
                                                                - type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                                - type: 'null'
                                                            fit:
                                                              type: string
                                                              enum:
                                                                - contain
                                                                - cover
                                                            ratio:
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - auto
                                                                    - '1:1'
                                                                    - '4:3'
                                                                    - '3:2'
                                                                    - '16:9'
                                                                - type: 'null'
                                                            height:
                                                              type: string
                                                              enum:
                                                                - sm
                                                                - md
                                                                - lg
                                                            align:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            caption:
                                                              type: string
                                                              maxLength: 500
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - source
                                                            - fit
                                                            - caption
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: gallery
                                                        props:
                                                          type: object
                                                          properties:
                                                            columns:
                                                              type: integer
                                                              minimum: 2
                                                              maximum: 8
                                                            photos:
                                                              default: all
                                                              type: string
                                                              enum:
                                                                - all
                                                                - additional
                                                            slots:
                                                              default: []
                                                              maxItems: 8
                                                              type: array
                                                              items:
                                                                anyOf:
                                                                  - type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                  - type: 'null'
                                                            fit:
                                                              type: string
                                                              enum:
                                                                - contain
                                                                - cover
                                                            ratio:
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - auto
                                                                    - '1:1'
                                                                    - '4:3'
                                                                    - '3:2'
                                                                    - '16:9'
                                                                - type: 'null'
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - columns
                                                            - fit
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: imageFields
                                                        props:
                                                          type: object
                                                          properties:
                                                            fields:
                                                              maxItems: 20
                                                              type: array
                                                              items:
                                                                type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                            imageField:
                                                              default: null
                                                              anyOf:
                                                                - type: string
                                                                  minLength: 1
                                                                  maxLength: 120
                                                                - type: 'null'
                                                            imagePosition:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - right
                                                                - top
                                                            fit:
                                                              type: string
                                                              enum:
                                                                - contain
                                                                - cover
                                                            ratio:
                                                              anyOf:
                                                                - type: string
                                                                  enum:
                                                                    - auto
                                                                    - '1:1'
                                                                    - '4:3'
                                                                    - '3:2'
                                                                    - '16:9'
                                                                - type: 'null'
                                                            height:
                                                              type: string
                                                              enum:
                                                                - sm
                                                                - md
                                                                - lg
                                                            textOverflow:
                                                              default: wrap
                                                              type: string
                                                              enum:
                                                                - wrap
                                                                - clip
                                                            maxLines:
                                                              default: 2
                                                              type: integer
                                                              minimum: 1
                                                              maximum: 4
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - fields
                                                            - imagePosition
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: logo
                                                        props:
                                                          type: object
                                                          properties:
                                                            slot:
                                                              type: string
                                                              enum:
                                                                - primary
                                                                - secondary
                                                                - footer
                                                            align:
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - slot
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: divider
                                                        props:
                                                          type: object
                                                          properties:
                                                            tone:
                                                              type: string
                                                              enum:
                                                                - primary
                                                                - secondary
                                                                - muted
                                                            lineStyle:
                                                              type: string
                                                              enum:
                                                                - solid
                                                                - dashed
                                                                - dotted
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - tone
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: qrCode
                                                        props:
                                                          type: object
                                                          properties:
                                                            value:
                                                              type: string
                                                              maxLength: 1000
                                                            size:
                                                              default: 24
                                                              type: integer
                                                              minimum: 12
                                                              maximum: 60
                                                            align:
                                                              default: left
                                                              type: string
                                                              enum:
                                                                - left
                                                                - center
                                                                - right
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - value
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: spacer
                                                        props:
                                                          type: object
                                                          properties:
                                                            size:
                                                              type: string
                                                              enum:
                                                                - sm
                                                                - md
                                                                - lg
                                                                - xl
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - size
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: guidance
                                                        props:
                                                          type: object
                                                          properties:
                                                            source:
                                                              type: string
                                                              enum:
                                                                - instructions
                                                                - requirements
                                                                - furnishedInstalledBy
                                                            showGroupLabels:
                                                              default: true
                                                              type: boolean
                                                            repeatEveryPage:
                                                              type: boolean
                                                          required:
                                                            - source
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                                    - type: object
                                                      properties:
                                                        id:
                                                          type: string
                                                          minLength: 1
                                                          maxLength: 120
                                                        type:
                                                          type: string
                                                          const: areas
                                                        props:
                                                          type: object
                                                          properties:
                                                            columns:
                                                              default: 4
                                                              type: integer
                                                              minimum: 1
                                                              maximum: 4
                                                            showRoomNumbers:
                                                              default: false
                                                              type: boolean
                                                            repeatEveryPage:
                                                              type: boolean
                                                          additionalProperties: false
                                                      required:
                                                        - id
                                                        - type
                                                        - props
                                                      additionalProperties: false
                                            widths:
                                              minItems: 1
                                              maxItems: 5
                                              type: array
                                              items:
                                                type: integer
                                                minimum: 1
                                                maximum: 8
                                            background:
                                              default: none
                                              anyOf:
                                                - type: string
                                                  enum:
                                                    - none
                                                    - primary
                                                    - secondary
                                                - type: string
                                                  pattern: ^#[0-9A-F]{6}$
                                            bleed:
                                              default: false
                                              type: boolean
                                          required:
                                            - id
                                            - type
                                            - cells
                                          additionalProperties: false
                                required:
                                  - columns
                                  - itemsPerPage
                                  - card
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: contents
                              props:
                                type: object
                                properties:
                                  columns:
                                    minItems: 1
                                    maxItems: 7
                                    type: array
                                    items:
                                      type: string
                                      enum:
                                        - refNumber
                                        - name
                                        - category
                                        - subcategory
                                        - quantity
                                        - page
                                        - viewDetails
                                        - categoryCoverDetail
                                  groupBy:
                                    type: string
                                    enum:
                                      - none
                                      - category
                                      - subcategory
                                      - area
                                      - manufacturer
                                      - supplier
                                  subcategoryAsSubtitle:
                                    type: boolean
                                  headerBold:
                                    type: boolean
                                  columnWidths:
                                    default: {}
                                    type: object
                                    propertyNames:
                                      type: string
                                      enum:
                                        - refNumber
                                        - name
                                        - category
                                        - subcategory
                                        - quantity
                                        - page
                                        - viewDetails
                                        - categoryCoverDetail
                                    additionalProperties:
                                      type: integer
                                      minimum: 5
                                      maximum: 80
                                  columnAlign:
                                    default: {}
                                    type: object
                                    propertyNames:
                                      type: string
                                      enum:
                                        - refNumber
                                        - name
                                        - category
                                        - subcategory
                                        - quantity
                                        - page
                                        - viewDetails
                                        - categoryCoverDetail
                                    additionalProperties:
                                      type: string
                                      enum:
                                        - left
                                        - center
                                        - right
                                  showRoomNumbers:
                                    default: false
                                    type: boolean
                                  roomColumns:
                                    default: 4
                                    type: integer
                                    minimum: 1
                                    maximum: 4
                                  quantityBreakdown:
                                    default: false
                                    type: boolean
                                required:
                                  - columns
                                  - groupBy
                                  - subcategoryAsSubtitle
                                  - headerBold
                                additionalProperties: false
                            required:
                              - id
                              - type
                              - props
                            additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 120
                          type:
                            type: string
                            const: row
                          cells:
                            minItems: 1
                            maxItems: 5
                            type: array
                            items:
                              minItems: 1
                              maxItems: 6
                              type: array
                              items:
                                oneOf:
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: heading
                                      props:
                                        type: object
                                        properties:
                                          text:
                                            type: string
                                            maxLength: 500
                                          level:
                                            type: string
                                            enum:
                                              - '1'
                                              - '2'
                                              - '3'
                                          align:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          size:
                                            default: null
                                            anyOf:
                                              - type: number
                                                minimum: 0.5
                                                maximum: 3
                                              - type: 'null'
                                          weight:
                                            default: null
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - regular
                                                  - medium
                                                  - bold
                                              - type: 'null'
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - text
                                          - level
                                          - align
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: text
                                      props:
                                        type: object
                                        properties:
                                          text:
                                            type: string
                                            maxLength: 8000
                                          align:
                                            default: left
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          size:
                                            default: null
                                            anyOf:
                                              - type: number
                                                minimum: 0.5
                                                maximum: 3
                                              - type: 'null'
                                          weight:
                                            default: null
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - regular
                                                  - medium
                                                  - bold
                                              - type: 'null'
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - text
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: fieldList
                                      props:
                                        type: object
                                        properties:
                                          fields:
                                            maxItems: 40
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                          columns:
                                            anyOf:
                                              - type: integer
                                                minimum: 1
                                                maximum: 3
                                              - type: string
                                                const: auto
                                          labelLayout:
                                            default: stacked
                                            type: string
                                            enum:
                                              - stacked
                                              - inline
                                          labelWidth:
                                            default: 35
                                            type: integer
                                            minimum: 5
                                            maximum: 60
                                          lineHeight:
                                            default: 1.4
                                            type: number
                                            minimum: 0.85
                                            maximum: 2.5
                                          fieldGap:
                                            default: 1
                                            type: number
                                            minimum: 0
                                            maximum: 4
                                          textOverflow:
                                            default: wrap
                                            type: string
                                            enum:
                                              - wrap
                                              - clip
                                          maxLines:
                                            default: 2
                                            type: integer
                                            minimum: 1
                                            maximum: 4
                                          columnWidths:
                                            maxItems: 3
                                            type: array
                                            items:
                                              type: integer
                                              minimum: 5
                                              maximum: 80
                                          columnAlign:
                                            maxItems: 3
                                            type: array
                                            items:
                                              type: string
                                              enum:
                                                - left
                                                - center
                                                - right
                                          align:
                                            default: left
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - fields
                                          - columns
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: dataTable
                                      props:
                                        type: object
                                        properties:
                                          source:
                                            default: components
                                            type: string
                                            enum:
                                              - components
                                              - items
                                          fields:
                                            minItems: 1
                                            maxItems: 30
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                          showHeader:
                                            type: boolean
                                          columnWidths:
                                            default: {}
                                            type: object
                                            propertyNames:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            additionalProperties:
                                              type: integer
                                              minimum: 5
                                              maximum: 80
                                          textOverflow:
                                            default: wrap
                                            type: string
                                            enum:
                                              - wrap
                                              - clip
                                          maxLines:
                                            default: 2
                                            type: integer
                                            minimum: 1
                                            maximum: 4
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - fields
                                          - showHeader
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: image
                                      props:
                                        type: object
                                        properties:
                                          source:
                                            type: string
                                            enum:
                                              - primary
                                              - secondary
                                              - field
                                              - asset
                                          field:
                                            default: null
                                            anyOf:
                                              - type: string
                                                maxLength: 120
                                              - type: 'null'
                                          assetId:
                                            anyOf:
                                              - type: string
                                                minLength: 1
                                                maxLength: 120
                                              - type: 'null'
                                          fit:
                                            type: string
                                            enum:
                                              - contain
                                              - cover
                                          ratio:
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - auto
                                                  - '1:1'
                                                  - '4:3'
                                                  - '3:2'
                                                  - '16:9'
                                              - type: 'null'
                                          height:
                                            type: string
                                            enum:
                                              - sm
                                              - md
                                              - lg
                                          align:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          caption:
                                            type: string
                                            maxLength: 500
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - source
                                          - fit
                                          - caption
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: gallery
                                      props:
                                        type: object
                                        properties:
                                          columns:
                                            type: integer
                                            minimum: 2
                                            maximum: 8
                                          photos:
                                            default: all
                                            type: string
                                            enum:
                                              - all
                                              - additional
                                          slots:
                                            default: []
                                            maxItems: 8
                                            type: array
                                            items:
                                              anyOf:
                                                - type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                - type: 'null'
                                          fit:
                                            type: string
                                            enum:
                                              - contain
                                              - cover
                                          ratio:
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - auto
                                                  - '1:1'
                                                  - '4:3'
                                                  - '3:2'
                                                  - '16:9'
                                              - type: 'null'
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - columns
                                          - fit
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: imageFields
                                      props:
                                        type: object
                                        properties:
                                          fields:
                                            maxItems: 20
                                            type: array
                                            items:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                          imageField:
                                            default: null
                                            anyOf:
                                              - type: string
                                                minLength: 1
                                                maxLength: 120
                                              - type: 'null'
                                          imagePosition:
                                            type: string
                                            enum:
                                              - left
                                              - right
                                              - top
                                          fit:
                                            type: string
                                            enum:
                                              - contain
                                              - cover
                                          ratio:
                                            anyOf:
                                              - type: string
                                                enum:
                                                  - auto
                                                  - '1:1'
                                                  - '4:3'
                                                  - '3:2'
                                                  - '16:9'
                                              - type: 'null'
                                          height:
                                            type: string
                                            enum:
                                              - sm
                                              - md
                                              - lg
                                          textOverflow:
                                            default: wrap
                                            type: string
                                            enum:
                                              - wrap
                                              - clip
                                          maxLines:
                                            default: 2
                                            type: integer
                                            minimum: 1
                                            maximum: 4
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - fields
                                          - imagePosition
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: logo
                                      props:
                                        type: object
                                        properties:
                                          slot:
                                            type: string
                                            enum:
                                              - primary
                                              - secondary
                                              - footer
                                          align:
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - slot
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: divider
                                      props:
                                        type: object
                                        properties:
                                          tone:
                                            type: string
                                            enum:
                                              - primary
                                              - secondary
                                              - muted
                                          lineStyle:
                                            type: string
                                            enum:
                                              - solid
                                              - dashed
                                              - dotted
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - tone
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: qrCode
                                      props:
                                        type: object
                                        properties:
                                          value:
                                            type: string
                                            maxLength: 1000
                                          size:
                                            default: 24
                                            type: integer
                                            minimum: 12
                                            maximum: 60
                                          align:
                                            default: left
                                            type: string
                                            enum:
                                              - left
                                              - center
                                              - right
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - value
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: spacer
                                      props:
                                        type: object
                                        properties:
                                          size:
                                            type: string
                                            enum:
                                              - sm
                                              - md
                                              - lg
                                              - xl
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - size
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: guidance
                                      props:
                                        type: object
                                        properties:
                                          source:
                                            type: string
                                            enum:
                                              - instructions
                                              - requirements
                                              - furnishedInstalledBy
                                          showGroupLabels:
                                            default: true
                                            type: boolean
                                          repeatEveryPage:
                                            type: boolean
                                        required:
                                          - source
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                                  - type: object
                                    properties:
                                      id:
                                        type: string
                                        minLength: 1
                                        maxLength: 120
                                      type:
                                        type: string
                                        const: areas
                                      props:
                                        type: object
                                        properties:
                                          columns:
                                            default: 4
                                            type: integer
                                            minimum: 1
                                            maximum: 4
                                          showRoomNumbers:
                                            default: false
                                            type: boolean
                                          repeatEveryPage:
                                            type: boolean
                                        additionalProperties: false
                                    required:
                                      - id
                                      - type
                                      - props
                                    additionalProperties: false
                          widths:
                            minItems: 1
                            maxItems: 5
                            type: array
                            items:
                              type: integer
                              minimum: 1
                              maximum: 8
                          background:
                            default: none
                            anyOf:
                              - type: string
                                enum:
                                  - none
                                  - primary
                                  - secondary
                              - type: string
                                pattern: ^#[0-9A-F]{6}$
                          bleed:
                            default: false
                            type: boolean
                        required:
                          - id
                          - type
                          - cells
                        additionalProperties: false
                disclaimer:
                  anyOf:
                    - maxItems: 80
                      type: array
                      items:
                        anyOf:
                          - oneOf:
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: heading
                                  props:
                                    type: object
                                    properties:
                                      text:
                                        type: string
                                        maxLength: 500
                                      level:
                                        type: string
                                        enum:
                                          - '1'
                                          - '2'
                                          - '3'
                                      align:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      size:
                                        default: null
                                        anyOf:
                                          - type: number
                                            minimum: 0.5
                                            maximum: 3
                                          - type: 'null'
                                      weight:
                                        default: null
                                        anyOf:
                                          - type: string
                                            enum:
                                              - regular
                                              - medium
                                              - bold
                                          - type: 'null'
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - text
                                      - level
                                      - align
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: text
                                  props:
                                    type: object
                                    properties:
                                      text:
                                        type: string
                                        maxLength: 8000
                                      align:
                                        default: left
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      size:
                                        default: null
                                        anyOf:
                                          - type: number
                                            minimum: 0.5
                                            maximum: 3
                                          - type: 'null'
                                      weight:
                                        default: null
                                        anyOf:
                                          - type: string
                                            enum:
                                              - regular
                                              - medium
                                              - bold
                                          - type: 'null'
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - text
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: fieldList
                                  props:
                                    type: object
                                    properties:
                                      fields:
                                        maxItems: 40
                                        type: array
                                        items:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                      columns:
                                        anyOf:
                                          - type: integer
                                            minimum: 1
                                            maximum: 3
                                          - type: string
                                            const: auto
                                      labelLayout:
                                        default: stacked
                                        type: string
                                        enum:
                                          - stacked
                                          - inline
                                      labelWidth:
                                        default: 35
                                        type: integer
                                        minimum: 5
                                        maximum: 60
                                      lineHeight:
                                        default: 1.4
                                        type: number
                                        minimum: 0.85
                                        maximum: 2.5
                                      fieldGap:
                                        default: 1
                                        type: number
                                        minimum: 0
                                        maximum: 4
                                      textOverflow:
                                        default: wrap
                                        type: string
                                        enum:
                                          - wrap
                                          - clip
                                      maxLines:
                                        default: 2
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      columnWidths:
                                        maxItems: 3
                                        type: array
                                        items:
                                          type: integer
                                          minimum: 5
                                          maximum: 80
                                      columnAlign:
                                        maxItems: 3
                                        type: array
                                        items:
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                      align:
                                        default: left
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - fields
                                      - columns
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: dataTable
                                  props:
                                    type: object
                                    properties:
                                      source:
                                        default: components
                                        type: string
                                        enum:
                                          - components
                                          - items
                                      fields:
                                        minItems: 1
                                        maxItems: 30
                                        type: array
                                        items:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                      showHeader:
                                        type: boolean
                                      columnWidths:
                                        default: {}
                                        type: object
                                        propertyNames:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        additionalProperties:
                                          type: integer
                                          minimum: 5
                                          maximum: 80
                                      textOverflow:
                                        default: wrap
                                        type: string
                                        enum:
                                          - wrap
                                          - clip
                                      maxLines:
                                        default: 2
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - fields
                                      - showHeader
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: image
                                  props:
                                    type: object
                                    properties:
                                      source:
                                        type: string
                                        enum:
                                          - primary
                                          - secondary
                                          - field
                                          - asset
                                      field:
                                        default: null
                                        anyOf:
                                          - type: string
                                            maxLength: 120
                                          - type: 'null'
                                      assetId:
                                        anyOf:
                                          - type: string
                                            minLength: 1
                                            maxLength: 120
                                          - type: 'null'
                                      fit:
                                        type: string
                                        enum:
                                          - contain
                                          - cover
                                      ratio:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - auto
                                              - '1:1'
                                              - '4:3'
                                              - '3:2'
                                              - '16:9'
                                          - type: 'null'
                                      height:
                                        type: string
                                        enum:
                                          - sm
                                          - md
                                          - lg
                                      align:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      caption:
                                        type: string
                                        maxLength: 500
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - source
                                      - fit
                                      - caption
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: gallery
                                  props:
                                    type: object
                                    properties:
                                      columns:
                                        type: integer
                                        minimum: 2
                                        maximum: 8
                                      photos:
                                        default: all
                                        type: string
                                        enum:
                                          - all
                                          - additional
                                      slots:
                                        default: []
                                        maxItems: 8
                                        type: array
                                        items:
                                          anyOf:
                                            - type: string
                                              minLength: 1
                                              maxLength: 120
                                            - type: 'null'
                                      fit:
                                        type: string
                                        enum:
                                          - contain
                                          - cover
                                      ratio:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - auto
                                              - '1:1'
                                              - '4:3'
                                              - '3:2'
                                              - '16:9'
                                          - type: 'null'
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - columns
                                      - fit
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: imageFields
                                  props:
                                    type: object
                                    properties:
                                      fields:
                                        maxItems: 20
                                        type: array
                                        items:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                      imageField:
                                        default: null
                                        anyOf:
                                          - type: string
                                            minLength: 1
                                            maxLength: 120
                                          - type: 'null'
                                      imagePosition:
                                        type: string
                                        enum:
                                          - left
                                          - right
                                          - top
                                      fit:
                                        type: string
                                        enum:
                                          - contain
                                          - cover
                                      ratio:
                                        anyOf:
                                          - type: string
                                            enum:
                                              - auto
                                              - '1:1'
                                              - '4:3'
                                              - '3:2'
                                              - '16:9'
                                          - type: 'null'
                                      height:
                                        type: string
                                        enum:
                                          - sm
                                          - md
                                          - lg
                                      textOverflow:
                                        default: wrap
                                        type: string
                                        enum:
                                          - wrap
                                          - clip
                                      maxLines:
                                        default: 2
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - fields
                                      - imagePosition
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: logo
                                  props:
                                    type: object
                                    properties:
                                      slot:
                                        type: string
                                        enum:
                                          - primary
                                          - secondary
                                          - footer
                                      align:
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - slot
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: divider
                                  props:
                                    type: object
                                    properties:
                                      tone:
                                        type: string
                                        enum:
                                          - primary
                                          - secondary
                                          - muted
                                      lineStyle:
                                        type: string
                                        enum:
                                          - solid
                                          - dashed
                                          - dotted
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - tone
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: qrCode
                                  props:
                                    type: object
                                    properties:
                                      value:
                                        type: string
                                        maxLength: 1000
                                      size:
                                        default: 24
                                        type: integer
                                        minimum: 12
                                        maximum: 60
                                      align:
                                        default: left
                                        type: string
                                        enum:
                                          - left
                                          - center
                                          - right
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - value
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: spacer
                                  props:
                                    type: object
                                    properties:
                                      size:
                                        type: string
                                        enum:
                                          - sm
                                          - md
                                          - lg
                                          - xl
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - size
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: guidance
                                  props:
                                    type: object
                                    properties:
                                      source:
                                        type: string
                                        enum:
                                          - instructions
                                          - requirements
                                          - furnishedInstalledBy
                                      showGroupLabels:
                                        default: true
                                        type: boolean
                                      repeatEveryPage:
                                        type: boolean
                                    required:
                                      - source
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: areas
                                  props:
                                    type: object
                                    properties:
                                      columns:
                                        default: 4
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      showRoomNumbers:
                                        default: false
                                        type: boolean
                                      repeatEveryPage:
                                        type: boolean
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: schedule
                                  props:
                                    type: object
                                    properties:
                                      groupBy:
                                        type: string
                                        enum:
                                          - none
                                          - category
                                          - area
                                          - areaTree
                                          - manufacturer
                                          - supplier
                                      showSubtotals:
                                        type: boolean
                                      dedupCategory:
                                        type: boolean
                                      subcategoryAsSubtitle:
                                        type: boolean
                                      showGrandTotal:
                                        type: boolean
                                      headerBold:
                                        type: boolean
                                      columnAlign:
                                        type: object
                                        propertyNames:
                                          type: string
                                          minLength: 1
                                          maxLength: 120
                                        additionalProperties:
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                      textOverflow:
                                        type: string
                                        enum:
                                          - wrap
                                          - clip
                                      maxLines:
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      showRoomNumbers:
                                        default: false
                                        type: boolean
                                      roomColumns:
                                        default: 4
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      quantityBreakdown:
                                        default: false
                                        type: boolean
                                      bandDetails:
                                        default: none
                                        type: string
                                        enum:
                                          - none
                                          - company
                                      roomTotals:
                                        default: false
                                        type: boolean
                                      currency:
                                        default: null
                                        anyOf:
                                          - type: string
                                            pattern: ^[A-Z]{3}$
                                          - type: 'null'
                                      columns:
                                        minItems: 1
                                        maxItems: 30
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            label:
                                              type: string
                                              minLength: 1
                                              maxLength: 120
                                            width:
                                              anyOf:
                                                - type: integer
                                                  minimum: 5
                                                  maximum: 80
                                                - type: 'null'
                                          required:
                                            - key
                                            - label
                                            - width
                                          additionalProperties: false
                                    required:
                                      - groupBy
                                      - showSubtotals
                                      - dedupCategory
                                      - subcategoryAsSubtitle
                                      - showGrandTotal
                                      - headerBold
                                      - columnAlign
                                      - textOverflow
                                      - maxLines
                                      - columns
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: itemsGrid
                                  props:
                                    type: object
                                    properties:
                                      columns:
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      itemsPerPage:
                                        type: integer
                                        minimum: 1
                                        maximum: 12
                                      groupBy:
                                        default: none
                                        type: string
                                        enum:
                                          - none
                                          - category
                                          - area
                                      cardPer:
                                        default: item
                                        type: string
                                        enum:
                                          - item
                                          - unit
                                      cardBackground:
                                        default: '#FFFFFF'
                                        anyOf:
                                          - type: string
                                            enum:
                                              - none
                                              - primary
                                              - secondary
                                          - type: string
                                            pattern: ^#[0-9A-F]{6}$
                                      card:
                                        minItems: 1
                                        maxItems: 8
                                        type: array
                                        items:
                                          anyOf:
                                            - oneOf:
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: heading
                                                    props:
                                                      type: object
                                                      properties:
                                                        text:
                                                          type: string
                                                          maxLength: 500
                                                        level:
                                                          type: string
                                                          enum:
                                                            - '1'
                                                            - '2'
                                                            - '3'
                                                        align:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        size:
                                                          default: null
                                                          anyOf:
                                                            - type: number
                                                              minimum: 0.5
                                                              maximum: 3
                                                            - type: 'null'
                                                        weight:
                                                          default: null
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - regular
                                                                - medium
                                                                - bold
                                                            - type: 'null'
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - text
                                                        - level
                                                        - align
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: text
                                                    props:
                                                      type: object
                                                      properties:
                                                        text:
                                                          type: string
                                                          maxLength: 8000
                                                        align:
                                                          default: left
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        size:
                                                          default: null
                                                          anyOf:
                                                            - type: number
                                                              minimum: 0.5
                                                              maximum: 3
                                                            - type: 'null'
                                                        weight:
                                                          default: null
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - regular
                                                                - medium
                                                                - bold
                                                            - type: 'null'
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - text
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: fieldList
                                                    props:
                                                      type: object
                                                      properties:
                                                        fields:
                                                          maxItems: 40
                                                          type: array
                                                          items:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                        columns:
                                                          anyOf:
                                                            - type: integer
                                                              minimum: 1
                                                              maximum: 3
                                                            - type: string
                                                              const: auto
                                                        labelLayout:
                                                          default: stacked
                                                          type: string
                                                          enum:
                                                            - stacked
                                                            - inline
                                                        labelWidth:
                                                          default: 35
                                                          type: integer
                                                          minimum: 5
                                                          maximum: 60
                                                        lineHeight:
                                                          default: 1.4
                                                          type: number
                                                          minimum: 0.85
                                                          maximum: 2.5
                                                        fieldGap:
                                                          default: 1
                                                          type: number
                                                          minimum: 0
                                                          maximum: 4
                                                        textOverflow:
                                                          default: wrap
                                                          type: string
                                                          enum:
                                                            - wrap
                                                            - clip
                                                        maxLines:
                                                          default: 2
                                                          type: integer
                                                          minimum: 1
                                                          maximum: 4
                                                        columnWidths:
                                                          maxItems: 3
                                                          type: array
                                                          items:
                                                            type: integer
                                                            minimum: 5
                                                            maximum: 80
                                                        columnAlign:
                                                          maxItems: 3
                                                          type: array
                                                          items:
                                                            type: string
                                                            enum:
                                                              - left
                                                              - center
                                                              - right
                                                        align:
                                                          default: left
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - fields
                                                        - columns
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: dataTable
                                                    props:
                                                      type: object
                                                      properties:
                                                        source:
                                                          default: components
                                                          type: string
                                                          enum:
                                                            - components
                                                            - items
                                                        fields:
                                                          minItems: 1
                                                          maxItems: 30
                                                          type: array
                                                          items:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                        showHeader:
                                                          type: boolean
                                                        columnWidths:
                                                          default: {}
                                                          type: object
                                                          propertyNames:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                          additionalProperties:
                                                            type: integer
                                                            minimum: 5
                                                            maximum: 80
                                                        textOverflow:
                                                          default: wrap
                                                          type: string
                                                          enum:
                                                            - wrap
                                                            - clip
                                                        maxLines:
                                                          default: 2
                                                          type: integer
                                                          minimum: 1
                                                          maximum: 4
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - fields
                                                        - showHeader
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: image
                                                    props:
                                                      type: object
                                                      properties:
                                                        source:
                                                          type: string
                                                          enum:
                                                            - primary
                                                            - secondary
                                                            - field
                                                            - asset
                                                        field:
                                                          default: null
                                                          anyOf:
                                                            - type: string
                                                              maxLength: 120
                                                            - type: 'null'
                                                        assetId:
                                                          anyOf:
                                                            - type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            - type: 'null'
                                                        fit:
                                                          type: string
                                                          enum:
                                                            - contain
                                                            - cover
                                                        ratio:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - auto
                                                                - '1:1'
                                                                - '4:3'
                                                                - '3:2'
                                                                - '16:9'
                                                            - type: 'null'
                                                        height:
                                                          type: string
                                                          enum:
                                                            - sm
                                                            - md
                                                            - lg
                                                        align:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        caption:
                                                          type: string
                                                          maxLength: 500
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - source
                                                        - fit
                                                        - caption
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: gallery
                                                    props:
                                                      type: object
                                                      properties:
                                                        columns:
                                                          type: integer
                                                          minimum: 2
                                                          maximum: 8
                                                        photos:
                                                          default: all
                                                          type: string
                                                          enum:
                                                            - all
                                                            - additional
                                                        slots:
                                                          default: []
                                                          maxItems: 8
                                                          type: array
                                                          items:
                                                            anyOf:
                                                              - type: string
                                                                minLength: 1
                                                                maxLength: 120
                                                              - type: 'null'
                                                        fit:
                                                          type: string
                                                          enum:
                                                            - contain
                                                            - cover
                                                        ratio:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - auto
                                                                - '1:1'
                                                                - '4:3'
                                                                - '3:2'
                                                                - '16:9'
                                                            - type: 'null'
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - columns
                                                        - fit
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: imageFields
                                                    props:
                                                      type: object
                                                      properties:
                                                        fields:
                                                          maxItems: 20
                                                          type: array
                                                          items:
                                                            type: string
                                                            minLength: 1
                                                            maxLength: 120
                                                        imageField:
                                                          default: null
                                                          anyOf:
                                                            - type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            - type: 'null'
                                                        imagePosition:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - right
                                                            - top
                                                        fit:
                                                          type: string
                                                          enum:
                                                            - contain
                                                            - cover
                                                        ratio:
                                                          anyOf:
                                                            - type: string
                                                              enum:
                                                                - auto
                                                                - '1:1'
                                                                - '4:3'
                                                                - '3:2'
                                                                - '16:9'
                                                            - type: 'null'
                                                        height:
                                                          type: string
                                                          enum:
                                                            - sm
                                                            - md
                                                            - lg
                                                        textOverflow:
                                                          default: wrap
                                                          type: string
                                                          enum:
                                                            - wrap
                                                            - clip
                                                        maxLines:
                                                          default: 2
                                                          type: integer
                                                          minimum: 1
                                                          maximum: 4
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - fields
                                                        - imagePosition
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: logo
                                                    props:
                                                      type: object
                                                      properties:
                                                        slot:
                                                          type: string
                                                          enum:
                                                            - primary
                                                            - secondary
                                                            - footer
                                                        align:
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - slot
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: divider
                                                    props:
                                                      type: object
                                                      properties:
                                                        tone:
                                                          type: string
                                                          enum:
                                                            - primary
                                                            - secondary
                                                            - muted
                                                        lineStyle:
                                                          type: string
                                                          enum:
                                                            - solid
                                                            - dashed
                                                            - dotted
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - tone
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: qrCode
                                                    props:
                                                      type: object
                                                      properties:
                                                        value:
                                                          type: string
                                                          maxLength: 1000
                                                        size:
                                                          default: 24
                                                          type: integer
                                                          minimum: 12
                                                          maximum: 60
                                                        align:
                                                          default: left
                                                          type: string
                                                          enum:
                                                            - left
                                                            - center
                                                            - right
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - value
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: spacer
                                                    props:
                                                      type: object
                                                      properties:
                                                        size:
                                                          type: string
                                                          enum:
                                                            - sm
                                                            - md
                                                            - lg
                                                            - xl
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - size
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: guidance
                                                    props:
                                                      type: object
                                                      properties:
                                                        source:
                                                          type: string
                                                          enum:
                                                            - instructions
                                                            - requirements
                                                            - furnishedInstalledBy
                                                        showGroupLabels:
                                                          default: true
                                                          type: boolean
                                                        repeatEveryPage:
                                                          type: boolean
                                                      required:
                                                        - source
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    id:
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    type:
                                                      type: string
                                                      const: areas
                                                    props:
                                                      type: object
                                                      properties:
                                                        columns:
                                                          default: 4
                                                          type: integer
                                                          minimum: 1
                                                          maximum: 4
                                                        showRoomNumbers:
                                                          default: false
                                                          type: boolean
                                                        repeatEveryPage:
                                                          type: boolean
                                                      additionalProperties: false
                                                  required:
                                                    - id
                                                    - type
                                                    - props
                                                  additionalProperties: false
                                            - type: object
                                              properties:
                                                id:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                type:
                                                  type: string
                                                  const: row
                                                cells:
                                                  minItems: 1
                                                  maxItems: 5
                                                  type: array
                                                  items:
                                                    minItems: 1
                                                    maxItems: 6
                                                    type: array
                                                    items:
                                                      oneOf:
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: heading
                                                            props:
                                                              type: object
                                                              properties:
                                                                text:
                                                                  type: string
                                                                  maxLength: 500
                                                                level:
                                                                  type: string
                                                                  enum:
                                                                    - '1'
                                                                    - '2'
                                                                    - '3'
                                                                align:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                size:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      minimum: {}
                                                                      maximum: {}
                                                                    - type: {}
                                                                weight:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - text
                                                                - level
                                                                - align
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: text
                                                            props:
                                                              type: object
                                                              properties:
                                                                text:
                                                                  type: string
                                                                  maxLength: 8000
                                                                align:
                                                                  default: left
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                size:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      minimum: {}
                                                                      maximum: {}
                                                                    - type: {}
                                                                weight:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - text
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: fieldList
                                                            props:
                                                              type: object
                                                              properties:
                                                                fields:
                                                                  maxItems: 40
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                columns:
                                                                  anyOf:
                                                                    - type: {}
                                                                      minimum: {}
                                                                      maximum: {}
                                                                    - type: {}
                                                                      const: {}
                                                                labelLayout:
                                                                  default: stacked
                                                                  type: string
                                                                  enum:
                                                                    - stacked
                                                                    - inline
                                                                labelWidth:
                                                                  default: 35
                                                                  type: integer
                                                                  minimum: 5
                                                                  maximum: 60
                                                                lineHeight:
                                                                  default: 1.4
                                                                  type: number
                                                                  minimum: 0.85
                                                                  maximum: 2.5
                                                                fieldGap:
                                                                  default: 1
                                                                  type: number
                                                                  minimum: 0
                                                                  maximum: 4
                                                                textOverflow:
                                                                  default: wrap
                                                                  type: string
                                                                  enum:
                                                                    - wrap
                                                                    - clip
                                                                maxLines:
                                                                  default: 2
                                                                  type: integer
                                                                  minimum: 1
                                                                  maximum: 4
                                                                columnWidths:
                                                                  maxItems: 3
                                                                  type: array
                                                                  items:
                                                                    type: integer
                                                                    minimum: 5
                                                                    maximum: 80
                                                                columnAlign:
                                                                  maxItems: 3
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                                    enum:
                                                                      - {}
                                                                      - {}
                                                                      - {}
                                                                align:
                                                                  default: left
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - fields
                                                                - columns
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: dataTable
                                                            props:
                                                              type: object
                                                              properties:
                                                                source:
                                                                  default: components
                                                                  type: string
                                                                  enum:
                                                                    - components
                                                                    - items
                                                                fields:
                                                                  minItems: 1
                                                                  maxItems: 30
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                showHeader:
                                                                  type: boolean
                                                                columnWidths:
                                                                  default: {}
                                                                  type: object
                                                                  propertyNames:
                                                                    type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                  additionalProperties:
                                                                    type: integer
                                                                    minimum: 5
                                                                    maximum: 80
                                                                textOverflow:
                                                                  default: wrap
                                                                  type: string
                                                                  enum:
                                                                    - wrap
                                                                    - clip
                                                                maxLines:
                                                                  default: 2
                                                                  type: integer
                                                                  minimum: 1
                                                                  maximum: 4
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - fields
                                                                - showHeader
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: image
                                                            props:
                                                              type: object
                                                              properties:
                                                                source:
                                                                  type: string
                                                                  enum:
                                                                    - primary
                                                                    - secondary
                                                                    - field
                                                                    - asset
                                                                field:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      maxLength: {}
                                                                    - type: {}
                                                                assetId:
                                                                  anyOf:
                                                                    - type: {}
                                                                      minLength: {}
                                                                      maxLength: {}
                                                                    - type: {}
                                                                fit:
                                                                  type: string
                                                                  enum:
                                                                    - contain
                                                                    - cover
                                                                ratio:
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                height:
                                                                  type: string
                                                                  enum:
                                                                    - sm
                                                                    - md
                                                                    - lg
                                                                align:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                caption:
                                                                  type: string
                                                                  maxLength: 500
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - source
                                                                - fit
                                                                - caption
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: gallery
                                                            props:
                                                              type: object
                                                              properties:
                                                                columns:
                                                                  type: integer
                                                                  minimum: 2
                                                                  maximum: 8
                                                                photos:
                                                                  default: all
                                                                  type: string
                                                                  enum:
                                                                    - all
                                                                    - additional
                                                                slots:
                                                                  default: []
                                                                  maxItems: 8
                                                                  type: array
                                                                  items:
                                                                    anyOf:
                                                                      - {}
                                                                      - {}
                                                                fit:
                                                                  type: string
                                                                  enum:
                                                                    - contain
                                                                    - cover
                                                                ratio:
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - columns
                                                                - fit
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: imageFields
                                                            props:
                                                              type: object
                                                              properties:
                                                                fields:
                                                                  maxItems: 20
                                                                  type: array
                                                                  items:
                                                                    type: string
                                                                    minLength: 1
                                                                    maxLength: 120
                                                                imageField:
                                                                  default: null
                                                                  anyOf:
                                                                    - type: {}
                                                                      minLength: {}
                                                                      maxLength: {}
                                                                    - type: {}
                                                                imagePosition:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - right
                                                                    - top
                                                                fit:
                                                                  type: string
                                                                  enum:
                                                                    - contain
                                                                    - cover
                                                                ratio:
                                                                  anyOf:
                                                                    - type: {}
                                                                      enum: {}
                                                                    - type: {}
                                                                height:
                                                                  type: string
                                                                  enum:
                                                                    - sm
                                                                    - md
                                                                    - lg
                                                                textOverflow:
                                                                  default: wrap
                                                                  type: string
                                                                  enum:
                                                                    - wrap
                                                                    - clip
                                                                maxLines:
                                                                  default: 2
                                                                  type: integer
                                                                  minimum: 1
                                                                  maximum: 4
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - fields
                                                                - imagePosition
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: logo
                                                            props:
                                                              type: object
                                                              properties:
                                                                slot:
                                                                  type: string
                                                                  enum:
                                                                    - primary
                                                                    - secondary
                                                                    - footer
                                                                align:
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - slot
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: divider
                                                            props:
                                                              type: object
                                                              properties:
                                                                tone:
                                                                  type: string
                                                                  enum:
                                                                    - primary
                                                                    - secondary
                                                                    - muted
                                                                lineStyle:
                                                                  type: string
                                                                  enum:
                                                                    - solid
                                                                    - dashed
                                                                    - dotted
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - tone
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: qrCode
                                                            props:
                                                              type: object
                                                              properties:
                                                                value:
                                                                  type: string
                                                                  maxLength: 1000
                                                                size:
                                                                  default: 24
                                                                  type: integer
                                                                  minimum: 12
                                                                  maximum: 60
                                                                align:
                                                                  default: left
                                                                  type: string
                                                                  enum:
                                                                    - left
                                                                    - center
                                                                    - right
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - value
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: spacer
                                                            props:
                                                              type: object
                                                              properties:
                                                                size:
                                                                  type: string
                                                                  enum:
                                                                    - sm
                                                                    - md
                                                                    - lg
                                                                    - xl
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - size
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: guidance
                                                            props:
                                                              type: object
                                                              properties:
                                                                source:
                                                                  type: string
                                                                  enum:
                                                                    - instructions
                                                                    - requirements
                                                                    - furnishedInstalledBy
                                                                showGroupLabels:
                                                                  default: true
                                                                  type: boolean
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              required:
                                                                - source
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                        - type: object
                                                          properties:
                                                            id:
                                                              type: string
                                                              minLength: 1
                                                              maxLength: 120
                                                            type:
                                                              type: string
                                                              const: areas
                                                            props:
                                                              type: object
                                                              properties:
                                                                columns:
                                                                  default: 4
                                                                  type: integer
                                                                  minimum: 1
                                                                  maximum: 4
                                                                showRoomNumbers:
                                                                  default: false
                                                                  type: boolean
                                                                repeatEveryPage:
                                                                  type: boolean
                                                              additionalProperties: false
                                                          required:
                                                            - id
                                                            - type
                                                            - props
                                                          additionalProperties: false
                                                widths:
                                                  minItems: 1
                                                  maxItems: 5
                                                  type: array
                                                  items:
                                                    type: integer
                                                    minimum: 1
                                                    maximum: 8
                                                background:
                                                  default: none
                                                  anyOf:
                                                    - type: string
                                                      enum:
                                                        - none
                                                        - primary
                                                        - secondary
                                                    - type: string
                                                      pattern: ^#[0-9A-F]{6}$
                                                bleed:
                                                  default: false
                                                  type: boolean
                                              required:
                                                - id
                                                - type
                                                - cells
                                              additionalProperties: false
                                    required:
                                      - columns
                                      - itemsPerPage
                                      - card
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                              - type: object
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 120
                                  type:
                                    type: string
                                    const: contents
                                  props:
                                    type: object
                                    properties:
                                      columns:
                                        minItems: 1
                                        maxItems: 7
                                        type: array
                                        items:
                                          type: string
                                          enum:
                                            - refNumber
                                            - name
                                            - category
                                            - subcategory
                                            - quantity
                                            - page
                                            - viewDetails
                                            - categoryCoverDetail
                                      groupBy:
                                        type: string
                                        enum:
                                          - none
                                          - category
                                          - subcategory
                                          - area
                                          - manufacturer
                                          - supplier
                                      subcategoryAsSubtitle:
                                        type: boolean
                                      headerBold:
                                        type: boolean
                                      columnWidths:
                                        default: {}
                                        type: object
                                        propertyNames:
                                          type: string
                                          enum:
                                            - refNumber
                                            - name
                                            - category
                                            - subcategory
                                            - quantity
                                            - page
                                            - viewDetails
                                            - categoryCoverDetail
                                        additionalProperties:
                                          type: integer
                                          minimum: 5
                                          maximum: 80
                                      columnAlign:
                                        default: {}
                                        type: object
                                        propertyNames:
                                          type: string
                                          enum:
                                            - refNumber
                                            - name
                                            - category
                                            - subcategory
                                            - quantity
                                            - page
                                            - viewDetails
                                            - categoryCoverDetail
                                        additionalProperties:
                                          type: string
                                          enum:
                                            - left
                                            - center
                                            - right
                                      showRoomNumbers:
                                        default: false
                                        type: boolean
                                      roomColumns:
                                        default: 4
                                        type: integer
                                        minimum: 1
                                        maximum: 4
                                      quantityBreakdown:
                                        default: false
                                        type: boolean
                                    required:
                                      - columns
                                      - groupBy
                                      - subcategoryAsSubtitle
                                      - headerBold
                                    additionalProperties: false
                                required:
                                  - id
                                  - type
                                  - props
                                additionalProperties: false
                          - type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 120
                              type:
                                type: string
                                const: row
                              cells:
                                minItems: 1
                                maxItems: 5
                                type: array
                                items:
                                  minItems: 1
                                  maxItems: 6
                                  type: array
                                  items:
                                    oneOf:
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: heading
                                          props:
                                            type: object
                                            properties:
                                              text:
                                                type: string
                                                maxLength: 500
                                              level:
                                                type: string
                                                enum:
                                                  - '1'
                                                  - '2'
                                                  - '3'
                                              align:
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              size:
                                                default: null
                                                anyOf:
                                                  - type: number
                                                    minimum: 0.5
                                                    maximum: 3
                                                  - type: 'null'
                                              weight:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - regular
                                                      - medium
                                                      - bold
                                                  - type: 'null'
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - text
                                              - level
                                              - align
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: text
                                          props:
                                            type: object
                                            properties:
                                              text:
                                                type: string
                                                maxLength: 8000
                                              align:
                                                default: left
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              size:
                                                default: null
                                                anyOf:
                                                  - type: number
                                                    minimum: 0.5
                                                    maximum: 3
                                                  - type: 'null'
                                              weight:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - regular
                                                      - medium
                                                      - bold
                                                  - type: 'null'
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - text
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: fieldList
                                          props:
                                            type: object
                                            properties:
                                              fields:
                                                maxItems: 40
                                                type: array
                                                items:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                              columns:
                                                anyOf:
                                                  - type: integer
                                                    minimum: 1
                                                    maximum: 3
                                                  - type: string
                                                    const: auto
                                              labelLayout:
                                                default: stacked
                                                type: string
                                                enum:
                                                  - stacked
                                                  - inline
                                              labelWidth:
                                                default: 35
                                                type: integer
                                                minimum: 5
                                                maximum: 60
                                              lineHeight:
                                                default: 1.4
                                                type: number
                                                minimum: 0.85
                                                maximum: 2.5
                                              fieldGap:
                                                default: 1
                                                type: number
                                                minimum: 0
                                                maximum: 4
                                              textOverflow:
                                                default: wrap
                                                type: string
                                                enum:
                                                  - wrap
                                                  - clip
                                              maxLines:
                                                default: 2
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              columnWidths:
                                                maxItems: 3
                                                type: array
                                                items:
                                                  type: integer
                                                  minimum: 5
                                                  maximum: 80
                                              columnAlign:
                                                maxItems: 3
                                                type: array
                                                items:
                                                  type: string
                                                  enum:
                                                    - left
                                                    - center
                                                    - right
                                              align:
                                                default: left
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - fields
                                              - columns
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: dataTable
                                          props:
                                            type: object
                                            properties:
                                              source:
                                                default: components
                                                type: string
                                                enum:
                                                  - components
                                                  - items
                                              fields:
                                                minItems: 1
                                                maxItems: 30
                                                type: array
                                                items:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                              showHeader:
                                                type: boolean
                                              columnWidths:
                                                default: {}
                                                type: object
                                                propertyNames:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                                additionalProperties:
                                                  type: integer
                                                  minimum: 5
                                                  maximum: 80
                                              textOverflow:
                                                default: wrap
                                                type: string
                                                enum:
                                                  - wrap
                                                  - clip
                                              maxLines:
                                                default: 2
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - fields
                                              - showHeader
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: image
                                          props:
                                            type: object
                                            properties:
                                              source:
                                                type: string
                                                enum:
                                                  - primary
                                                  - secondary
                                                  - field
                                                  - asset
                                              field:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    maxLength: 120
                                                  - type: 'null'
                                              assetId:
                                                anyOf:
                                                  - type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  - type: 'null'
                                              fit:
                                                type: string
                                                enum:
                                                  - contain
                                                  - cover
                                              ratio:
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - auto
                                                      - '1:1'
                                                      - '4:3'
                                                      - '3:2'
                                                      - '16:9'
                                                  - type: 'null'
                                              height:
                                                type: string
                                                enum:
                                                  - sm
                                                  - md
                                                  - lg
                                              align:
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              caption:
                                                type: string
                                                maxLength: 500
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - source
                                              - fit
                                              - caption
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: gallery
                                          props:
                                            type: object
                                            properties:
                                              columns:
                                                type: integer
                                                minimum: 2
                                                maximum: 8
                                              photos:
                                                default: all
                                                type: string
                                                enum:
                                                  - all
                                                  - additional
                                              slots:
                                                default: []
                                                maxItems: 8
                                                type: array
                                                items:
                                                  anyOf:
                                                    - type: string
                                                      minLength: 1
                                                      maxLength: 120
                                                    - type: 'null'
                                              fit:
                                                type: string
                                                enum:
                                                  - contain
                                                  - cover
                                              ratio:
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - auto
                                                      - '1:1'
                                                      - '4:3'
                                                      - '3:2'
                                                      - '16:9'
                                                  - type: 'null'
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - columns
                                              - fit
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: imageFields
                                          props:
                                            type: object
                                            properties:
                                              fields:
                                                maxItems: 20
                                                type: array
                                                items:
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 120
                                              imageField:
                                                default: null
                                                anyOf:
                                                  - type: string
                                                    minLength: 1
                                                    maxLength: 120
                                                  - type: 'null'
                                              imagePosition:
                                                type: string
                                                enum:
                                                  - left
                                                  - right
                                                  - top
                                              fit:
                                                type: string
                                                enum:
                                                  - contain
                                                  - cover
                                              ratio:
                                                anyOf:
                                                  - type: string
                                                    enum:
                                                      - auto
                                                      - '1:1'
                                                      - '4:3'
                                                      - '3:2'
                                                      - '16:9'
                                                  - type: 'null'
                                              height:
                                                type: string
                                                enum:
                                                  - sm
                                                  - md
                                                  - lg
                                              textOverflow:
                                                default: wrap
                                                type: string
                                                enum:
                                                  - wrap
                                                  - clip
                                              maxLines:
                                                default: 2
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - fields
                                              - imagePosition
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: logo
                                          props:
                                            type: object
                                            properties:
                                              slot:
                                                type: string
                                                enum:
                                                  - primary
                                                  - secondary
                                                  - footer
                                              align:
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - slot
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: divider
                                          props:
                                            type: object
                                            properties:
                                              tone:
                                                type: string
                                                enum:
                                                  - primary
                                                  - secondary
                                                  - muted
                                              lineStyle:
                                                type: string
                                                enum:
                                                  - solid
                                                  - dashed
                                                  - dotted
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - tone
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: qrCode
                                          props:
                                            type: object
                                            properties:
                                              value:
                                                type: string
                                                maxLength: 1000
                                              size:
                                                default: 24
                                                type: integer
                                                minimum: 12
                                                maximum: 60
                                              align:
                                                default: left
                                                type: string
                                                enum:
                                                  - left
                                                  - center
                                                  - right
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - value
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: spacer
                                          props:
                                            type: object
                                            properties:
                                              size:
                                                type: string
                                                enum:
                                                  - sm
                                                  - md
                                                  - lg
                                                  - xl
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - size
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: guidance
                                          props:
                                            type: object
                                            properties:
                                              source:
                                                type: string
                                                enum:
                                                  - instructions
                                                  - requirements
                                                  - furnishedInstalledBy
                                              showGroupLabels:
                                                default: true
                                                type: boolean
                                              repeatEveryPage:
                                                type: boolean
                                            required:
                                              - source
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                            minLength: 1
                                            maxLength: 120
                                          type:
                                            type: string
                                            const: areas
                                          props:
                                            type: object
                                            properties:
                                              columns:
                                                default: 4
                                                type: integer
                                                minimum: 1
                                                maximum: 4
                                              showRoomNumbers:
                                                default: false
                                                type: boolean
                                              repeatEveryPage:
                                                type: boolean
                                            additionalProperties: false
                                        required:
                                          - id
                                          - type
                                          - props
                                        additionalProperties: false
                              widths:
                                minItems: 1
                                maxItems: 5
                                type: array
                                items:
                                  type: integer
                                  minimum: 1
                                  maximum: 8
                              background:
                                default: none
                                anyOf:
                                  - type: string
                                    enum:
                                      - none
                                      - primary
                                      - secondary
                                  - type: string
                                    pattern: ^#[0-9A-F]{6}$
                              bleed:
                                default: false
                                type: boolean
                            required:
                              - id
                              - type
                              - cells
                            additionalProperties: false
                    - type: 'null'
              additionalProperties: false
          additionalProperties: false
      required:
        - name
      additionalProperties: false

````