{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://options.print.app/schema/blueprint-v2.json",
  "title": "Print Options blueprint (option set), schema v2",
  "description": "GENERATED from packages/schema (Zod) by scripts/generate-blueprint-schema.mjs — do not edit by hand. The runtime parser is the authority; this file mirrors it so authoring tools and agents can validate before publishing.",
  "$ref": "#/definitions/Blueprint",
  "definitions": {
    "FileMetadata": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string",
          "const": "1.0",
          "default": "1.0"
        },
        "fileId": {
          "type": "string",
          "minLength": 1
        },
        "source": {
          "type": "string",
          "default": "custom"
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "ready",
            "failed"
          ],
          "default": "pending"
        },
        "fileName": {
          "type": "string"
        },
        "mimeType": {
          "type": "string"
        },
        "fileSizeBytes": {
          "type": "integer",
          "minimum": 0
        },
        "pages": {
          "type": "integer",
          "minimum": 0
        },
        "colorPages": {
          "type": "integer",
          "minimum": 0
        },
        "monoPages": {
          "type": "integer",
          "minimum": 0
        },
        "pageSizes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "exclusiveMinimum": 0
              },
              "w": {
                "type": "number",
                "minimum": 0
              },
              "h": {
                "type": "number",
                "minimum": 0
              },
              "unit": {
                "type": "string",
                "enum": [
                  "mm",
                  "cm",
                  "in",
                  "pt",
                  "px"
                ],
                "default": "mm"
              }
            },
            "required": [
              "page",
              "w",
              "h"
            ],
            "additionalProperties": false
          }
        },
        "canvas": {
          "type": "object",
          "properties": {
            "w": {
              "type": "number",
              "minimum": 0
            },
            "h": {
              "type": "number",
              "minimum": 0
            },
            "bleed": {
              "type": "number",
              "minimum": 0,
              "default": 0
            },
            "unit": {
              "$ref": "#/definitions/FileMetadata/properties/pageSizes/items/properties/unit",
              "default": "mm"
            }
          },
          "required": [
            "w",
            "h"
          ],
          "additionalProperties": false
        },
        "colors": {
          "type": "object",
          "properties": {
            "model": {
              "type": "string",
              "enum": [
                "RGB",
                "CMYK",
                "Gray",
                "Mixed",
                "Unknown"
              ],
              "default": "Unknown"
            },
            "spot": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            }
          },
          "additionalProperties": false
        },
        "issues": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "severity": {
                "type": "string",
                "enum": [
                  "info",
                  "warning",
                  "error"
                ],
                "default": "warning"
              },
              "message": {
                "type": "string"
              },
              "page": {
                "type": "integer",
                "exclusiveMinimum": 0
              }
            },
            "required": [
              "code"
            ],
            "additionalProperties": false
          },
          "default": []
        },
        "raw": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "required": [
        "fileId"
      ],
      "additionalProperties": false
    },
    "ProviderConfig": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1
        },
        "name": {
          "type": "string"
        },
        "mode": {
          "type": "string",
          "enum": [
            "push",
            "pull",
            "element"
          ],
          "default": "push"
        },
        "endpoint": {
          "type": "string",
          "format": "uri"
        },
        "capabilities": {
          "type": "object",
          "properties": {
            "pages": {
              "type": "boolean",
              "default": false
            },
            "colorDetection": {
              "type": "boolean",
              "default": false
            },
            "pageSizes": {
              "type": "boolean",
              "default": false
            },
            "canvas": {
              "type": "boolean",
              "default": false
            },
            "preflightIssues": {
              "type": "boolean",
              "default": false
            }
          },
          "additionalProperties": false,
          "default": {}
        },
        "publishableKey": {
          "type": "string"
        },
        "agentId": {
          "type": "string"
        },
        "scriptUrl": {
          "type": "string",
          "format": "uri"
        },
        "iframeSrc": {
          "type": "string",
          "format": "uri"
        },
        "preview": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "additionalProperties": false
    },
    "Blueprint": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string",
          "const": "2.0",
          "default": "2.0"
        },
        "productId": {
          "type": "string",
          "minLength": 1
        },
        "title": {
          "type": "string"
        },
        "layout": {
          "type": "string",
          "enum": [
            "stacked",
            "wizard"
          ],
          "default": "stacked"
        },
        "pricing": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$",
              "default": "USD"
            },
            "basePrice": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "number",
                  "minimum": 0,
                  "default": 0
                },
                "per": {
                  "type": "string",
                  "enum": [
                    "order",
                    "unit"
                  ],
                  "default": "order"
                },
                "tiers": {
                  "type": "object",
                  "properties": {
                    "basis": {
                      "type": "string",
                      "enum": [
                        "quantity",
                        "pages",
                        "area",
                        "length"
                      ],
                      "default": "quantity"
                    },
                    "mode": {
                      "type": "string",
                      "enum": [
                        "flat",
                        "graduated"
                      ],
                      "default": "flat"
                    },
                    "rows": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "upTo": {
                            "type": "number",
                            "exclusiveMinimum": 0
                          },
                          "amount": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "amount"
                        ],
                        "additionalProperties": false
                      },
                      "minItems": 1
                    }
                  },
                  "required": [
                    "rows"
                  ],
                  "additionalProperties": false
                }
              },
              "additionalProperties": false,
              "default": {}
            },
            "setupFee": {
              "type": "number",
              "minimum": 0
            },
            "minimumPrice": {
              "type": "number",
              "minimum": 0
            },
            "lineQuantity": {
              "type": "string",
              "enum": [
                "job",
                "units"
              ]
            }
          },
          "additionalProperties": false,
          "default": {}
        },
        "variants": {
          "type": "object",
          "properties": {
            "axes": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1
            },
            "combinations": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "select": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "sku": {
                    "type": "string"
                  },
                  "price": {
                    "type": "number",
                    "minimum": 0
                  },
                  "available": {
                    "type": "boolean",
                    "default": true
                  },
                  "platformVariantId": {
                    "type": "string"
                  }
                },
                "required": [
                  "select"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "axes",
            "combinations"
          ],
          "additionalProperties": false
        },
        "sections": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "title": {
                "type": "string"
              },
              "fields": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1
                        },
                        "label": {
                          "type": "string"
                        },
                        "helpText": {
                          "type": "string"
                        },
                        "required": {
                          "type": "boolean",
                          "default": false
                        },
                        "visibleWhen": {
                          "type": "object",
                          "properties": {
                            "all": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "ref": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "op": {
                                        "type": "string",
                                        "enum": [
                                          "eq",
                                          "neq",
                                          "in",
                                          "gt",
                                          "gte",
                                          "lt",
                                          "lte",
                                          "isSet",
                                          "notSet"
                                        ]
                                      },
                                      "value": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "array",
                                            "items": {
                                              "type": "string"
                                            }
                                          },
                                          {
                                            "type": "array",
                                            "items": {
                                              "type": "number"
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "ref",
                                      "op"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                                  }
                                ]
                              }
                            },
                            "any": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen/properties/all/items/anyOf/0"
                                  },
                                  {
                                    "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                                  }
                                ]
                              }
                            }
                          },
                          "additionalProperties": false
                        },
                        "priceModifiers": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string",
                                "enum": [
                                  "fixed",
                                  "perUnit",
                                  "perPage",
                                  "perColorPage",
                                  "perMonoPage",
                                  "perArea",
                                  "perLength",
                                  "percent",
                                  "multiplier",
                                  "setup",
                                  "formula"
                                ]
                              },
                              "amount": {
                                "type": "number"
                              },
                              "areaUnit": {
                                "type": "string",
                                "enum": [
                                  "sqm",
                                  "sqft",
                                  "sqin"
                                ]
                              },
                              "lengthUnit": {
                                "type": "string",
                                "enum": [
                                  "m",
                                  "ft",
                                  "in",
                                  "cm"
                                ]
                              },
                              "lengthAxis": {
                                "type": "string",
                                "enum": [
                                  "h",
                                  "w",
                                  "max"
                                ]
                              },
                              "dimensionsField": {
                                "type": "string"
                              },
                              "tiers": {
                                "$ref": "#/definitions/Blueprint/properties/pricing/properties/basePrice/properties/tiers"
                              },
                              "formula": {
                                "type": "object",
                                "properties": {
                                  "steps": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string"
                                        },
                                        "expression": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "expression"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "default": []
                                  },
                                  "expression": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "expression"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "amount"
                            ],
                            "additionalProperties": false
                          },
                          "default": []
                        },
                        "role": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string",
                          "const": "select-one"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "cards",
                            "grid",
                            "swatches",
                            "pills",
                            "dropdown",
                            "list"
                          ],
                          "default": "pills"
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "label": {
                                "type": "string"
                              },
                              "description": {
                                "type": "string"
                              },
                              "image": {
                                "type": "string"
                              },
                              "color": {
                                "type": "string"
                              },
                              "default": {
                                "type": "boolean"
                              },
                              "sku": {
                                "type": "string"
                              },
                              "disabled": {
                                "type": "boolean"
                              },
                              "priceModifiers": {
                                "type": "array",
                                "items": {
                                  "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers/items"
                                },
                                "default": []
                              },
                              "filecheck": {
                                "type": "object",
                                "properties": {
                                  "context": {
                                    "type": "object",
                                    "properties": {
                                      "artworkSize": {
                                        "type": "object",
                                        "properties": {
                                          "width_mm": {
                                            "type": "number",
                                            "exclusiveMinimum": 0
                                          },
                                          "height_mm": {
                                            "type": "number",
                                            "exclusiveMinimum": 0
                                          }
                                        },
                                        "additionalProperties": false
                                      },
                                      "pageCount": {
                                        "type": "object",
                                        "properties": {
                                          "min": {
                                            "type": "integer",
                                            "exclusiveMinimum": 0
                                          },
                                          "max": {
                                            "type": "integer",
                                            "exclusiveMinimum": 0
                                          }
                                        },
                                        "additionalProperties": false
                                      },
                                      "fileCount": {
                                        "type": "object",
                                        "properties": {
                                          "min": {
                                            "type": "integer",
                                            "exclusiveMinimum": 0
                                          },
                                          "max": {
                                            "type": "integer",
                                            "exclusiveMinimum": 0
                                          }
                                        },
                                        "additionalProperties": false
                                      },
                                      "bleed": {
                                        "type": "object",
                                        "properties": {
                                          "required_mm": {
                                            "type": "number",
                                            "minimum": 0
                                          }
                                        },
                                        "additionalProperties": false
                                      },
                                      "safety": {
                                        "type": "object",
                                        "properties": {
                                          "min_mm": {
                                            "type": "number",
                                            "minimum": 0
                                          }
                                        },
                                        "additionalProperties": false
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "id",
                              "label"
                            ],
                            "additionalProperties": false
                          },
                          "minItems": 1
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "options"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/id"
                        },
                        "label": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/label"
                        },
                        "helpText": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/helpText"
                        },
                        "required": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/required"
                        },
                        "visibleWhen": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                        },
                        "priceModifiers": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers"
                        },
                        "role": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/role"
                        },
                        "type": {
                          "type": "string",
                          "const": "select-many"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "cards",
                            "grid",
                            "swatches",
                            "pills",
                            "list"
                          ],
                          "default": "list"
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/options/items"
                          },
                          "minItems": 1
                        },
                        "minSelect": {
                          "type": "integer",
                          "minimum": 0,
                          "default": 0
                        },
                        "maxSelect": {
                          "type": "integer",
                          "exclusiveMinimum": 0
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "options"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/id"
                        },
                        "label": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/label"
                        },
                        "helpText": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/helpText"
                        },
                        "required": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/required"
                        },
                        "visibleWhen": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                        },
                        "priceModifiers": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers"
                        },
                        "role": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/role"
                        },
                        "type": {
                          "type": "string",
                          "const": "quantity"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "stepper",
                            "pills",
                            "dropdown",
                            "input"
                          ],
                          "default": "stepper"
                        },
                        "min": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "default": 1
                        },
                        "max": {
                          "type": "integer",
                          "exclusiveMinimum": 0
                        },
                        "step": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "default": 1
                        },
                        "defaultValue": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "default": 1
                        },
                        "presets": {
                          "type": "array",
                          "items": {
                            "type": "integer",
                            "exclusiveMinimum": 0
                          }
                        },
                        "unit": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "nextBreakHint": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "type"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/id"
                        },
                        "label": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/label"
                        },
                        "helpText": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/helpText"
                        },
                        "required": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/required"
                        },
                        "visibleWhen": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                        },
                        "priceModifiers": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers"
                        },
                        "role": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/role"
                        },
                        "type": {
                          "type": "string",
                          "const": "quantities"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "grid",
                            "list"
                          ],
                          "default": "grid"
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/options/items"
                          },
                          "minItems": 1
                        },
                        "min": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "default": 1
                        },
                        "max": {
                          "type": "integer",
                          "exclusiveMinimum": 0
                        },
                        "step": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "default": 1
                        },
                        "minTotal": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "default": 1
                        },
                        "maxTotal": {
                          "type": "integer",
                          "exclusiveMinimum": 0
                        },
                        "unit": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "nextBreakHint": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "options"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/id"
                        },
                        "label": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/label"
                        },
                        "helpText": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/helpText"
                        },
                        "required": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/required"
                        },
                        "visibleWhen": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                        },
                        "priceModifiers": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers"
                        },
                        "role": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/role"
                        },
                        "type": {
                          "type": "string",
                          "const": "number"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "stepper",
                            "slider",
                            "input"
                          ],
                          "default": "input"
                        },
                        "min": {
                          "type": "number"
                        },
                        "max": {
                          "type": "number"
                        },
                        "step": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        },
                        "defaultValue": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "id",
                        "type"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/id"
                        },
                        "label": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/label"
                        },
                        "helpText": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/helpText"
                        },
                        "required": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/required"
                        },
                        "visibleWhen": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                        },
                        "priceModifiers": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers"
                        },
                        "role": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/role"
                        },
                        "type": {
                          "type": "string",
                          "const": "text"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "input",
                            "textarea"
                          ],
                          "default": "input"
                        },
                        "placeholder": {
                          "type": "string"
                        },
                        "maxLength": {
                          "type": "integer",
                          "exclusiveMinimum": 0
                        }
                      },
                      "required": [
                        "id",
                        "type"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/id"
                        },
                        "label": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/label"
                        },
                        "helpText": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/helpText"
                        },
                        "required": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/required"
                        },
                        "visibleWhen": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                        },
                        "priceModifiers": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers"
                        },
                        "role": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/role"
                        },
                        "type": {
                          "type": "string",
                          "const": "dimensions"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "inputs"
                          ],
                          "default": "inputs"
                        },
                        "units": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "mm",
                              "cm",
                              "in"
                            ]
                          },
                          "minItems": 1,
                          "default": [
                            "mm"
                          ]
                        },
                        "defaultUnit": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/6/properties/units/items",
                          "default": "mm"
                        },
                        "minW": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        },
                        "maxW": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        },
                        "minH": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        },
                        "maxH": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        },
                        "defaultValue": {
                          "type": "object",
                          "properties": {
                            "w": {
                              "type": "number",
                              "exclusiveMinimum": 0
                            },
                            "h": {
                              "type": "number",
                              "exclusiveMinimum": 0
                            }
                          },
                          "required": [
                            "w",
                            "h"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "type"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/id"
                        },
                        "label": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/label"
                        },
                        "helpText": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/helpText"
                        },
                        "required": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/required"
                        },
                        "visibleWhen": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                        },
                        "priceModifiers": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers"
                        },
                        "role": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/role"
                        },
                        "type": {
                          "type": "string",
                          "const": "file"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "dropzone",
                            "producer"
                          ],
                          "default": "dropzone"
                        },
                        "accept": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": [
                            "application/pdf"
                          ]
                        },
                        "providerId": {
                          "type": "string"
                        },
                        "filecheck": {
                          "type": "object",
                          "properties": {
                            "workflowId": {
                              "type": "string",
                              "minLength": 1
                            },
                            "workflow": {
                              "type": "object",
                              "additionalProperties": {}
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "type"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/id"
                        },
                        "label": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/label"
                        },
                        "helpText": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/helpText"
                        },
                        "required": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/required"
                        },
                        "visibleWhen": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/visibleWhen"
                        },
                        "priceModifiers": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/priceModifiers"
                        },
                        "role": {
                          "$ref": "#/definitions/Blueprint/properties/sections/items/properties/fields/items/anyOf/0/properties/role"
                        },
                        "type": {
                          "type": "string",
                          "const": "info"
                        },
                        "display": {
                          "type": "string",
                          "enum": [
                            "summary",
                            "note"
                          ],
                          "default": "note"
                        },
                        "body": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "type"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              }
            },
            "required": [
              "id",
              "title",
              "fields"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "productId",
        "title",
        "sections"
      ],
      "additionalProperties": false
    }
  }
}
