{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "http://typo3.org/basic.json",
  "title": "Basic",
  "description": "TYPO3 CMS Content Blocks Basic",
  "additionalProperties": false,
  "properties": {
    "identifier": {
      "type": "string",
      "description": "Unique identifier for the Basic."
    },
    "fields": {
      "description": "Define your field types here.",
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "identifier"
        ],
        "properties": {
          "identifier": {
            "type": "string",
            "description": "The identifier for the field."
          },
          "label": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "useExistingField": {
            "type": "boolean",
            "description": "Enables extending of existing fields defined by TCA.",
            "default": false
          },
          "prefixField": {
            "type": "boolean",
            "description": "Enables prefixing of field identifiers",
            "default": true
          },
          "prefixType": {
            "description": "Determines how to prefix the field if prefixField is enabled.",
            "type": "string",
            "enum": [
              "full",
              "vendor"
            ]
          },
          "displayCond": {
            "description": "Can be used to display the field only under certain conditions.",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "AND": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "OR": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            ]
          },
          "onChange": {
            "type": "string",
            "description": "Can be used to trigger a reload of the Content Type when this specific field is changed.",
            "enum": [
              "reload"
            ]
          },
          "l10n_mode": {
            "type": "string",
            "enum": [
              "exclude",
              "prefixLangTitle"
            ]
          },
          "l10n_display": {
            "type": "string",
            "enum": [
              "hideDiff",
              "defaultAsReadonly"
            ]
          },
          "exclude": {
            "type": "boolean",
            "description": "If set, all backend users are prevented from editing the field unless they are members of a backend user group with this field allowed.",
            "default": true
          },
          "type": {
            "description": "Type of the field.",
            "not": {
              "type": "string",
              "enum": [
                "Linebreak"
              ]
            },
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "enum": [
                  "Basic",
                  "Category",
                  "Checkbox",
                  "Collection",
                  "Color",
                  "Country",
                  "DateTime",
                  "Email",
                  "File",
                  "FlexForm",
                  "Folder",
                  "Json",
                  "Language",
                  "Link",
                  "Number",
                  "Palette",
                  "Pass",
                  "Password",
                  "Radio",
                  "Relation",
                  "Select",
                  "SelectNumber",
                  "Slug",
                  "Tab",
                  "Text",
                  "Textarea",
                  "Uuid"
                ]
              }
            ]
          }
        },
        "allOf": [
          {
            "if": {
              "properties": {
                "useExistingField": {
                  "const": true
                }
              },
              "required": [
                "useExistingField"
              ]
            },
            "else": {
              "required": [
                "type"
              ]
            }
          },
          {
            "if": {
              "not": {
                "properties": {
                  "type": {
                    "const": "Basic"
                  }
                },
                "required": [
                  "type"
                ]
              }
            },
            "then": {
              "properties": {
                "identifier": {
                  "type": "string",
                  "pattern": "^[a-zA-Z0-9_]+$"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Textarea"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "cols": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "enableRichtext": {
                  "type": "boolean",
                  "description": "Enables richtext editing for the field.",
                  "default": false
                },
                "enableTabulator": {
                  "type": "boolean",
                  "description": "Enabling this allows to use tabs in a text field",
                  "default": false
                },
                "eval": {
                  "type": "string",
                  "description": "Configuration of field evaluation",
                  "examples": [
                    "trim"
                  ]
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "fixedFont": {
                  "type": "boolean",
                  "description": "Enables a fixed-width font (monospace) for the text field"
                },
                "is_in": {
                  "type": "string",
                  "description": "Evaluates whether the text contains this value"
                },
                "max": {
                  "type": "integer",
                  "description": "Maximum number of characters allowed."
                },
                "min": {
                  "type": "integer",
                  "description": "Minimum number of characters required."
                },
                "nullable": {
                  "type": "boolean",
                  "description": "Allows database null values for the field",
                  "default": false
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "renderType": {
                  "type": "string",
                  "enum": [
                    "codeEditor",
                    "textTable",
                    "belayoutwizard"
                  ]
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "richtextConfiguration": {
                  "type": "string",
                  "description": "Configuration for the richtext editor, if enabled."
                },
                "rows": {
                  "type": "integer",
                  "description": "Number of rows for the textarea field",
                  "minimum": 1,
                  "maximum": 20,
                  "default": 5
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                },
                "valuePicker": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "label",
                          "value"
                        ],
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "value": {
                            "type": [
                              "string",
                              "number"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "items"
                  ]
                },
                "wrap": {
                  "type": "string",
                  "description": "Wrapping mode for the field",
                  "enum": [
                    "virtual",
                    "off"
                  ],
                  "default": "virtual"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Text"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "autocomplete": {
                  "type": "boolean",
                  "description": "Browser autocompletion"
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "eval": {
                  "type": "string",
                  "description": "Configuration of field evaluation",
                  "examples": [
                    "trim"
                  ]
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "is_in": {
                  "type": "string",
                  "description": "Evaluates whether the text contains this value"
                },
                "max": {
                  "type": "integer",
                  "description": "Maximum number of characters allowed."
                },
                "min": {
                  "type": "integer",
                  "description": "Minimum number of characters required."
                },
                "mode": {
                  "type": "string",
                  "description": "This property is related to the placeholder property. When defined, a checkbox will appear above the field.",
                  "enum": [
                    "useOrOverridePlaceholder"
                  ]
                },
                "nullable": {
                  "type": "boolean",
                  "description": "Allows database null values for the field",
                  "default": false
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                },
                "size": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                },
                "valuePicker": {
                  "$ref": "#/properties/fields/items/allOf/2/then/properties/valuePicker"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Email"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "autocomplete": {
                  "type": "boolean",
                  "description": "Browser autocompletion"
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "eval": {
                  "type": "string",
                  "description": "Configuration of field evaluation",
                  "examples": [
                    "trim"
                  ]
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "mode": {
                  "type": "string",
                  "description": "This property is related to the placeholder property. When defined, a checkbox will appear above the field.",
                  "enum": [
                    "useOrOverridePlaceholder"
                  ]
                },
                "nullable": {
                  "type": "boolean",
                  "description": "Allows database null values for the field",
                  "default": false
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                },
                "size": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                },
                "valuePicker": {
                  "$ref": "#/properties/fields/items/allOf/2/then/properties/valuePicker"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Color"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "mode": {
                  "type": "string",
                  "description": "This property is related to the placeholder property. When defined, a checkbox will appear above the field.",
                  "enum": [
                    "useOrOverridePlaceholder"
                  ]
                },
                "nullable": {
                  "type": "boolean",
                  "description": "Allows database null values for the field",
                  "default": false
                },
                "opacity": {
                  "type": "boolean",
                  "description": "Enables opacity control for color picker",
                  "default": false
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                },
                "size": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                },
                "valuePicker": {
                  "$ref": "#/properties/fields/items/allOf/2/then/properties/valuePicker"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Number"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "autocomplete": {
                  "type": "boolean",
                  "description": "Browser autocompletion"
                },
                "default": {
                  "type": "number",
                  "description": "Default value set if a new record is created."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "format": {
                  "type": "string",
                  "description": "Type of number",
                  "enum": [
                    "integer",
                    "decimal"
                  ],
                  "default": "integer"
                },
                "mode": {
                  "type": "string",
                  "description": "This property is related to the placeholder property. When defined, a checkbox will appear above the field.",
                  "enum": [
                    "useOrOverridePlaceholder"
                  ]
                },
                "nullable": {
                  "type": "boolean",
                  "description": "Allows database null values for the field",
                  "default": false
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "range": {
                  "type": "object",
                  "description": "Defines an integer range within the value must be",
                  "properties": {
                    "lower": {
                      "type": "number",
                      "description": "Lower bound of the range",
                      "default": 0
                    },
                    "upper": {
                      "type": "number",
                      "description": "Upper bound of the range",
                      "default": 10000
                    }
                  }
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "size": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                },
                "slider": {
                  "type": "object",
                  "description": "Render a value slider next to the field.",
                  "properties": {
                    "step": {
                      "type": "number",
                      "description": "Set the step size the slider will use.",
                      "default": 1
                    },
                    "width": {
                      "type": "integer",
                      "description": "Define the width of the slider in pixels.",
                      "default": 400
                    }
                  }
                },
                "valuePicker": {
                  "$ref": "#/properties/fields/items/allOf/2/then/properties/valuePicker"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Link"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "allowedTypes": {
                  "type": "array",
                  "description": "List of allowed link types. If empty, all types are allowed.",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "string",
                        "enum": [
                          "page",
                          "url",
                          "file",
                          "folder",
                          "email",
                          "telephone",
                          "record",
                          "*"
                        ]
                      }
                    ]
                  }
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "appearance": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowedOptions": {
                      "type": "array",
                      "description": "Display certain options in the link browser. To allow all options, skip this configuration. To deny all options, set this configuration to [] (empty array).",
                      "items": {
                        "type": "string",
                        "enum": [
                          "class",
                          "params",
                          "target",
                          "title",
                          "rel",
                          "body",
                          "cc",
                          "bcc",
                          "subject",
                          "*"
                        ]
                      }
                    },
                    "allowedFileExtensions": {
                      "type": "array",
                      "description": "List of allowed file extensions. If empty, all extensions are allowed.",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "gif",
                              "jpg",
                              "jpeg",
                              "tif",
                              "tiff",
                              "bmp",
                              "pcx",
                              "tga",
                              "png",
                              "pdf",
                              "ai",
                              "svg",
                              "webp",
                              "avif",
                              "*"
                            ]
                          }
                        ]
                      }
                    },
                    "browserTitle": {
                      "type": "string",
                      "description": "Allows to set a different title attribute for the Link Browser icon, defaults to Link."
                    },
                    "enableBrowser": {
                      "type": "boolean",
                      "description": "To disable the Link Browser, set this option to false.",
                      "default": true
                    }
                  }
                },
                "autocomplete": {
                  "type": "boolean",
                  "description": "Browser autocompletion"
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "mode": {
                  "type": "string",
                  "description": "This property is related to the placeholder property. When defined, a checkbox will appear above the field.",
                  "enum": [
                    "useOrOverridePlaceholder"
                  ]
                },
                "nullable": {
                  "type": "boolean",
                  "description": "Allows database null values for the field",
                  "default": false
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                },
                "size": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                },
                "valuePicker": {
                  "$ref": "#/properties/fields/items/allOf/2/then/properties/valuePicker"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Country"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "filter": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "onlyCountries": {
                      "type": "array",
                      "description": "Restrict the displayed countries (ISO2 or ISO3 codes) to the ones listed.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "excludeCountries": {
                      "type": "array",
                      "description": "Exclude the countries (ISO2 or ISO3 codes) in this list from being displayed in the selector.",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                },
                "labelField": {
                  "type": "string",
                  "description": "The field to be used for displaying the label of the country.",
                  "enum": [
                    "localizedName",
                    "name",
                    "iso2",
                    "iso3",
                    "officialName",
                    "localizedOfficialName"
                  ],
                  "default": "name"
                },
                "prioritizedCountries": {
                  "type": "array",
                  "description": "Countries (ISO2 or ISO3 codes) which are listed before all others countries.",
                  "items": {
                    "type": "string"
                  }
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "size": {
                  "type": "integer",
                  "description": "Size of the select box",
                  "minimum": 1
                },
                "valuePicker": {
                  "$ref": "#/properties/fields/items/allOf/2/then/properties/valuePicker"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "DateTime"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "dbType": {
                  "type": "string",
                  "description": "If set, the date or time will not be stored as timestamp, but as native date, time or datetime field in the database.",
                  "enum": [
                    "date",
                    "datetime",
                    "time"
                  ]
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "disableAgeDisplay": {
                  "type": "boolean",
                  "description": "Disable the display of the age",
                  "default": false
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "format": {
                  "type": "string",
                  "description": "Sets the output format if the field is set to readOnly.",
                  "enum": [
                    "date",
                    "datetime",
                    "time",
                    "timesec",
                    "datetimesec"
                  ]
                },
                "mode": {
                  "type": "string",
                  "description": "This property is related to the placeholder property. When defined, a checkbox will appear above the field.",
                  "enum": [
                    "useOrOverridePlaceholder"
                  ]
                },
                "nullable": {
                  "type": "boolean",
                  "description": "Allows database null values for the field",
                  "default": false
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "range": {
                  "type": "object",
                  "description": "Defines a range within the date must be",
                  "properties": {
                    "lower": {
                      "type": [
                        "string",
                        "integer"
                      ],
                      "description": "Defines the earliest date. Can be of format Y-m-d or timestamp."
                    },
                    "upper": {
                      "type": [
                        "string",
                        "integer"
                      ],
                      "description": "Defines the latest date. Can be of format Y-m-d or timestamp."
                    }
                  }
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Json"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "cols": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "enableCodeEditor": {
                  "type": "boolean",
                  "description": "The JSON value is rendered in a code editor.",
                  "default": true
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "rows": {
                  "type": "integer",
                  "description": "Number of rows for the JSON editor",
                  "minimum": 1,
                  "maximum": 20,
                  "default": 5
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Uuid"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "enableCopyToClipboard": {
                  "type": "boolean",
                  "description": "Allows to copy the UUID to the clipboard of the operating system.",
                  "default": true
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory.",
                  "default": false
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                },
                "size": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                },
                "version": {
                  "type": "integer",
                  "description": "Defines the UUID version to be used",
                  "enum": [
                    4,
                    6,
                    7
                  ],
                  "default": 4
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Select"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "allowNonIdValues": {
                  "type": "boolean",
                  "description": "Only useful if foreign_table is enabled. If set, then values which are not integer ids will be allowed.",
                  "default": false
                },
                "appearance": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "expandAll": {
                      "type": "boolean",
                      "description": "All select groups are initially expanded."
                    }
                  }
                },
                "authMode": {
                  "type": "string",
                  "description": "Authorization mode for the selector box",
                  "enum": [
                    "explicitAllow"
                  ]
                },
                "autoSizeMax": {
                  "type": "integer",
                  "description": "The select field will never be smaller than the specified size and never larger than the value of autoSizeMax.",
                  "minimum": 1
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "dbFieldLength": {
                  "type": "integer",
                  "description": "Defines the length of the database field.",
                  "minimum": 1
                },
                "dontRemapTablesOnCopy": {
                  "type": "array",
                  "description": "A list of tables which should not be remapped to the new element uids if the field holds elements that are copied in the session.",
                  "items": {
                    "type": "string"
                  }
                },
                "default": {
                  "type": [
                    "string",
                    "integer"
                  ],
                  "description": "Default value set if a new record is created."
                },
                "disableNoMatchingValueElement": {
                  "type": "boolean",
                  "description": "If set, then no element is inserted if the current value does not match any of the existing elements."
                },
                "exclusiveKeys": {
                  "type": "string",
                  "description": "List of keys that exclude any other keys in a select box where multiple items could be selected."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "fileFolderConfig": {
                  "type": "object",
                  "description": "Configuration for file folder selection",
                  "additionalProperties": false,
                  "properties": {
                    "allowedExtensions": {
                      "type": "string",
                      "description": "List of file extensions to select. If blank, all files are selected."
                    },
                    "depth": {
                      "type": "integer",
                      "description": "Depth of directory recursions.",
                      "minimum": 0,
                      "maximum": 99,
                      "default": 99
                    },
                    "folder": {
                      "type": "string",
                      "description": "Specifying a folder from where files are added to the item array."
                    }
                  }
                },
                "foreign_table": {
                  "type": "string",
                  "description": "The item-array will be filled with records from the table defined here"
                },
                "foreign_table_item_group": {
                  "type": "string",
                  "description": "References a specific field in the foreign table, which holds an item group identifier."
                },
                "foreign_table_prefix": {
                  "type": "string",
                  "description": "Label prefix to the title of the records from the foreign-table."
                },
                "foreign_table_where": {
                  "type": "string",
                  "description": "The items from foreign_table are selected with this WHERE clause."
                },
                "itemGroups": {
                  "type": "object",
                  "description": "Contains an array of key-value pairs. The key contains the identifier, the value contains the label",
                  "patternProperties": {
                    ".*": {
                      "type": "string"
                    }
                  }
                },
                "items": {
                  "type": "array",
                  "description": "Contains the elements for the selector box",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "label": {
                        "type": "string",
                        "description": "The displayed title."
                      },
                      "value": {
                        "description": "The value stored in the database",
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "integer"
                          }
                        ]
                      },
                      "icon": {
                        "type": "string",
                        "description": "Icon to be displayed next to the label"
                      },
                      "group": {
                        "type": "string",
                        "description": "The key of the item group"
                      },
                      "description": {
                        "description": "Display a help text",
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "title": {
                                "type": "string"
                              },
                              "description": {
                                "type": "string"
                              }
                            }
                          }
                        ]
                      }
                    },
                    "required": [
                      "value"
                    ]
                  }
                },
                "itemsProcessors": {
                  "type": "object",
                  "patternProperties": {
                    "^[0-9]+$": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "class": {
                          "type": "string"
                        },
                        "parameters": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "itemsProcFunc": {
                  "type": "string",
                  "description": "(Deprecated: Use itemsProcessors instead) PHP method which is called to fill or manipulate the items array"
                },
                "itemsProcConfig": {
                  "type": "object"
                },
                "localizeReferencesAtParentLocalization": {
                  "type": "boolean",
                  "description": "Defines whether referenced records should be localized when the current record gets localized. This only applies if references are not stored using MM tables."
                },
                "maxitems": {
                  "type": "integer",
                  "description": "Maximum number of items allowed in the select field",
                  "minimum": 1
                },
                "minitems": {
                  "type": "integer",
                  "description": "Minimum number of items allowed in the select field",
                  "minimum": 1
                },
                "MM": {
                  "type": "string",
                  "description": "This value contains the name of the table in which to store a MM relation. It is used together with foreign_table."
                },
                "MM_match_fields": {
                  "type": "object",
                  "description": "Array of field => value pairs to both insert and match against when writing/reading MM relations."
                },
                "MM_opposite_field": {
                  "type": "string",
                  "description": "If you want to make a MM relation editable from the foreign side (bidirectional) of the relation as well, you need to set MM_opposite_field on the foreign side to the field name on the local side."
                },
                "MM_oppositeUsage": {
                  "type": "object",
                  "description": "In a MM bidirectional relation using match fields the opposite side needs to know about the match fields for certain operations"
                },
                "MM_table_where": {
                  "type": "string",
                  "description": "Additional where clause used when reading MM relations."
                },
                "multiple": {
                  "type": "boolean",
                  "description": "Allows the same item more than once in a list.",
                  "default": false
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "relationship": {
                  "type": "string",
                  "enum": [
                    "oneToOne",
                    "manyToOne",
                    "oneToMany"
                  ]
                },
                "renderType": {
                  "type": "string",
                  "enum": [
                    "selectSingle",
                    "selectCheckBox",
                    "selectSingleBox",
                    "selectTree",
                    "selectMultipleSideBySide"
                  ]
                },
                "size": {
                  "type": "integer",
                  "description": "If set to 1 (default), displays a select drop-down, else a select box of given size.",
                  "minimum": 1,
                  "default": 1
                },
                "sortItems": {
                  "type": "object",
                  "anyOf": [
                    {
                      "properties": {
                        "label": {
                          "type": "string",
                          "enum": [
                            "asc",
                            "desc"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "enum": [
                            "asc",
                            "desc"
                          ]
                        }
                      }
                    },
                    {
                      "patternProperties": {
                        ".*": {
                          "type": "string"
                        }
                      }
                    }
                  ]
                },
                "treeConfig": {
                  "type": "object",
                  "additionalProperties": false,
                  "oneOf": [
                    {
                      "required": [
                        "childrenField"
                      ]
                    },
                    {
                      "required": [
                        "parentField"
                      ]
                    }
                  ],
                  "properties": {
                    "dataProvider": {
                      "type": "string",
                      "description": "Allows to define a custom data provider class for use cases where special data preparation is necessary."
                    },
                    "childrenField": {
                      "type": "string",
                      "description": "Field name of the foreign_table that references the uid of the child records."
                    },
                    "parentField": {
                      "type": "string",
                      "description": "Field name of the foreign_table that references the uid of the parent record"
                    },
                    "startingPoints": {
                      "type": "string",
                      "description": "Allows to set multiple records as roots for tree records."
                    },
                    "appearance": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "showHeader": {
                          "type": "boolean",
                          "description": "Whether to show the header of the tree that contains a field to filter the records and allows to expand or collapse all nodes."
                        },
                        "expandAll": {
                          "type": "boolean",
                          "description": "All select groups are initially expanded."
                        },
                        "maxLevels": {
                          "type": "integer",
                          "description": "The maximal amount of levels to be rendered (can be used to stop possible recursions)"
                        },
                        "nonSelectableLevels": {
                          "type": "string",
                          "description": "Comma-separated list of levels that will not be selectable, by default the root node (which is \"0\") cannot be selected"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "SelectNumber"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "items"
              ],
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "authMode": {
                  "type": "string",
                  "description": "Authorization mode for the selector box",
                  "enum": [
                    "explicitAllow"
                  ]
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": "integer",
                  "description": "Default value set if a new record is created."
                },
                "disableNoMatchingValueElement": {
                  "type": "boolean",
                  "description": "If set, then no element is inserted if the current value does not match any of the existing elements."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "itemGroups": {
                  "type": "object",
                  "description": "Contains an array of key-value pairs. The key contains the identifier, the value contains the label",
                  "patternProperties": {
                    ".*": {
                      "type": "string"
                    }
                  }
                },
                "items": {
                  "type": "array",
                  "description": "Contains the elements for the selector box",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "label": {
                        "type": "string",
                        "description": "The displayed title."
                      },
                      "value": {
                        "description": "The value stored in the database",
                        "type": "integer"
                      },
                      "icon": {
                        "type": "string",
                        "description": "Icon to be displayed next to the label"
                      },
                      "group": {
                        "type": "string",
                        "description": "The key of the item group"
                      }
                    },
                    "required": [
                      "value"
                    ]
                  }
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "size": {
                  "type": "integer",
                  "description": "If set to 1 (default), displays a select drop-down, else a select box of given size.",
                  "minimum": 1,
                  "default": 1
                },
                "sortItems": {
                  "$ref": "#/properties/fields/items/allOf/12/then/properties/sortItems"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Checkbox"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "cols": {
                  "description": "In how many columns the checkboxes will be shown. Makes sense only if the 'items' property is defining multiple checkboxes.",
                  "oneOf": [
                    {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 31
                    },
                    {
                      "type": "string",
                      "enum": [
                        "inline"
                      ]
                    }
                  ]
                },
                "default": {
                  "type": "integer",
                  "description": "Default value set if a new record is created. Attention: Bit value!"
                },
                "eval": {
                  "type": "string",
                  "description": "Configuration of field evaluation.",
                  "enum": [
                    "maximumRecordsChecked",
                    "maximumRecordsCheckedInPid",
                    "maximumRecordsChecked,maximumRecordsCheckedInPid"
                  ]
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "items": {
                  "type": "array",
                  "description": "Contains the elements for the selector box",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "label": {
                        "type": "string",
                        "description": "The displayed title."
                      },
                      "invertStateDisplay": {
                        "type": "boolean",
                        "description": "A checkbox is marked checked if the database bit is not set and vice versa."
                      },
                      "iconIdentifierChecked": {
                        "type": "string",
                        "description": "An optional icon shown is selected / on. If not set, a check mark icon is used."
                      },
                      "iconIdentifierUnchecked": {
                        "type": "string",
                        "description": "An optional icon shown selected / on. If not set, no icon is show (check mark icon not displayed)."
                      },
                      "labelChecked": {
                        "type": "string",
                        "description": "Text shown if element is selected / on."
                      },
                      "labelUnchecked": {
                        "type": "string",
                        "description": "Text shown if element is not selected."
                      }
                    }
                  }
                },
                "itemsProcessors": {
                  "type": "object",
                  "patternProperties": {
                    "^[0-9]+$": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "class": {
                          "type": "string"
                        },
                        "parameters": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "itemsProcFunc": {
                  "type": "string",
                  "description": "(Deprecated: Use itemsProcessors instead) PHP method which is called to fill or manipulate the items array"
                },
                "itemsProcConfig": {
                  "type": "object"
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "renderType": {
                  "type": "string",
                  "enum": [
                    "checkboxToggle",
                    "checkboxLabeledToggle"
                  ]
                },
                "validation": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "maximumRecordsChecked": {
                      "type": "integer"
                    },
                    "maximumRecordsCheckedInPid": {
                      "type": "integer"
                    }
                  }
                },
                "invertStateDisplay": {
                  "type": "boolean",
                  "description": "A checkbox is marked checked if the database bit is not set and vice versa."
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Category"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": [
                    "string",
                    "integer"
                  ],
                  "description": "Default value set if a new record is created."
                },
                "exclusiveKeys": {
                  "type": "string",
                  "description": "List of keys that exclude any other keys in a select box where multiple items could be selected."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "foreign_table_where": {
                  "type": "string",
                  "description": "The items from foreign_table are selected with this WHERE clause."
                },
                "maxitems": {
                  "type": "integer",
                  "description": "Maximum number of items allowed in the select field",
                  "minimum": 1,
                  "maximum": 99999
                },
                "minitems": {
                  "type": "integer",
                  "description": "Minimum number of items allowed in the select field",
                  "minimum": 1
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "relationship": {
                  "type": "string",
                  "enum": [
                    "oneToOne",
                    "oneToMany",
                    "manyToMany"
                  ]
                },
                "size": {
                  "type": "integer",
                  "description": "Maximal number of elements to be displayed in the tree by default",
                  "minimum": 5,
                  "default": 20
                },
                "treeConfig": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "dataProvider": {
                      "type": "string",
                      "description": "Allows to define a custom data provider class for use cases where special data preparation is necessary."
                    },
                    "startingPoints": {
                      "type": "string",
                      "description": "Allows to set multiple records as roots for tree records."
                    },
                    "appearance": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "showHeader": {
                          "type": "boolean",
                          "description": "Whether to show the header of the tree that contains a field to filter the records and allows to expand or collapse all nodes.",
                          "default": true
                        },
                        "expandAll": {
                          "type": "boolean",
                          "description": "All select groups are initially expanded.",
                          "default": true
                        },
                        "maxLevels": {
                          "type": "integer",
                          "description": "The maximal amount of levels to be rendered (can be used to stop possible recursions)",
                          "default": 99
                        },
                        "nonSelectableLevels": {
                          "type": "string",
                          "description": "Comma-separated list of levels that will not be selectable, by default the root node (which is \"0\") cannot be selected"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Basic"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "type": {}
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "File"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "allowed": {
                  "description": "List of allowed file types",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "string",
                      "enum": [
                        "common-image-types",
                        "common-text-types",
                        "common-media-types"
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ]
                },
                "appearance": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "collapseAll": {
                      "type": "boolean",
                      "description": "Show all child-records collapsed (if false, all are expanded)"
                    },
                    "expandSingle": {
                      "type": "boolean",
                      "description": "Show only one child-record expanded each time. If a collapsed record is clicked, the currently open one collapses and the clicked one expands."
                    },
                    "createNewRelationLinkTitle": {
                      "type": "string",
                      "description": "Overrides the link text and title of the \"Create new relation\" button with a localized string. Only useful, if the element browser is enabled."
                    },
                    "addMediaLinkTitle": {
                      "type": "string",
                      "description": "Overrides the link text and title of the \"Add media by URL\" button with a localized string. Only useful, if the element browser is enabled."
                    },
                    "uploadFilesLinkTitle": {
                      "type": "string",
                      "description": "Overrides the link text and title of the \"Select & upload files\" button with a localized string. Only useful, if the element browser is enabled."
                    },
                    "useSortable": {
                      "type": "boolean",
                      "description": "Activate drag & drop.",
                      "default": true
                    },
                    "showPossibleLocalizationRecords": {
                      "type": "boolean",
                      "description": "Show unlocalized files which are in the original language, but not yet localized."
                    },
                    "showAllLocalizationLink": {
                      "type": "boolean",
                      "description": "Defines whether to show the \"localize all records\" link to fetch untranslated records from the original language."
                    },
                    "showSynchronizationLink": {
                      "type": "boolean",
                      "description": "Defines whether to show a \"synchronize\" link to update to a 1:1 translation with the original language."
                    },
                    "enabledControls": {
                      "type": "object",
                      "additionalProperties": false,
                      "description": "Enabled or disable certain controls",
                      "properties": {
                        "edit": {
                          "type": "boolean",
                          "default": true
                        },
                        "info": {
                          "type": "boolean",
                          "default": true
                        },
                        "dragdrop": {
                          "type": "boolean",
                          "default": true
                        },
                        "sort": {
                          "type": "boolean",
                          "default": false
                        },
                        "hide": {
                          "type": "boolean",
                          "default": true
                        },
                        "delete": {
                          "type": "boolean",
                          "default": true
                        },
                        "localize": {
                          "type": "boolean",
                          "default": true
                        }
                      }
                    },
                    "headerThumbnail": {
                      "type": "object",
                      "additionalProperties": false,
                      "description": "Defines the width and height of the preview thumbnail",
                      "properties": {
                        "width": {
                          "type": [
                            "string",
                            "integer"
                          ]
                        },
                        "height": {
                          "type": [
                            "string",
                            "integer"
                          ]
                        }
                      }
                    },
                    "fileUploadAllowed": {
                      "type": "boolean",
                      "description": "Defines whether the button \"Select & upload file\" should be rendered.",
                      "default": true
                    },
                    "fileByUrlAllowed": {
                      "type": "boolean",
                      "description": "Defines whether the button \"Add media by URL\" should be rendered. This button is used to include media URLs from, for example, Vimeo or YouTube."
                    },
                    "elementBrowserEnabled": {
                      "type": "boolean",
                      "description": "Hides or displays the element browser button in inline records"
                    }
                  }
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    },
                    "disableMovingChildrenWithParent": {
                      "type": "boolean",
                      "description": "Disables that child records get moved along with their parent records.",
                      "default": false
                    },
                    "enableCascadingDelete": {
                      "type": "boolean",
                      "description": "Usually when the parent record is deleted all attached sys_file_references are deleted. This default behaviour can be disabled here.",
                      "default": true
                    }
                  }
                },
                "cropVariants": {
                  "type": "object",
                  "patternProperties": {
                    ".*": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "title": {
                          "type": "string"
                        },
                        "allowedAspectRatios": {
                          "type": "object",
                          "patternProperties": {
                            ".*": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "title": {
                                  "type": "string"
                                },
                                "value": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^[0-9]+\\s*\\/\\s*[0-9]+$"
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "value"
                              ]
                            }
                          }
                        },
                        "coverAreas": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "x": {
                                "type": "number"
                              },
                              "y": {
                                "type": "number"
                              },
                              "width": {
                                "type": "number"
                              },
                              "height": {
                                "type": "number"
                              }
                            }
                          }
                        },
                        "focusArea": {
                          "type": "object",
                          "properties": {
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            },
                            "width": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            }
                          }
                        },
                        "cropArea": {
                          "type": "object",
                          "properties": {
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            },
                            "width": {
                              "type": "number"
                            },
                            "height": {
                              "type": "number"
                            }
                          }
                        },
                        "selectedRatio": {
                          "type": "string"
                        },
                        "excludeFromSync": {
                          "type": "boolean"
                        },
                        "disabled": {
                          "type": "boolean",
                          "const": true
                        }
                      }
                    }
                  }
                },
                "disallowed": {
                  "description": "An array of file extensions that are not allowed even though they are listed in the property allowed",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "string",
                      "enum": [
                        "common-image-types",
                        "common-text-types",
                        "common-media-types"
                      ]
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ]
                },
                "extendedPalette": {
                  "type": "boolean",
                  "description": "Disable this option, if you don't need additional fields 'crop', 'alternative' or 'link'.",
                  "default": true
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "maxitems": {
                  "type": "integer",
                  "description": "Maximum number of files that can be attached",
                  "minimum": 1
                },
                "minitems": {
                  "type": "integer",
                  "description": "Minimum number of attached files.",
                  "minimum": 1
                },
                "overrideChildTca": {
                  "type": "object",
                  "description": "Override the TCA of the sys_file_reference records representing the files attached to this record."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "relationship": {
                  "type": "string",
                  "enum": [
                    "oneToOne",
                    "oneToMany"
                  ]
                },
                "overrideType": {
                  "type": "object",
                  "additionalProperties": false,
                  "patternProperties": {
                    "image|text|video|audio|application": {
                      "type": "array",
                      "items": {
                        "$ref": "#/properties/fields/items"
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Radio"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": [
                    "string",
                    "integer"
                  ],
                  "description": "Default value set if a new record is created."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "items": {
                  "type": "array",
                  "description": "Contains the elements for the selector box",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "label": {
                        "type": "string",
                        "description": "The displayed title."
                      },
                      "value": {
                        "description": "The value stored in the database",
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "integer"
                          }
                        ]
                      }
                    },
                    "required": [
                      "value"
                    ]
                  }
                },
                "itemsProcessors": {
                  "type": "object",
                  "patternProperties": {
                    "^[0-9]+$": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "class": {
                          "type": "string"
                        },
                        "parameters": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "itemsProcFunc": {
                  "type": "string",
                  "description": "(Deprecated: Use itemsProcessors instead) PHP method which is called to fill or manipulate the items array"
                },
                "itemsProcConfig": {
                  "type": "object"
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Folder"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "autoSizeMax": {
                  "type": "integer",
                  "description": "The select field will never be smaller than the specified size and never larger than the value of autoSizeMax.",
                  "minimum": 1
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "elementBrowserEntryPoints": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "_default": {
                      "type": "string"
                    }
                  }
                },
                "fieldControl": {
                  "type": "object",
                  "properties": {
                    "elementBrowser": {
                      "type": "object",
                      "properties": {
                        "disabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "hideDeleteIcon": {
                  "type": "boolean",
                  "description": "Removes the delete icon next to the selector box."
                },
                "hideMoveIcons": {
                  "type": "boolean",
                  "description": "Removes the move icons next to the selector box."
                },
                "maxitems": {
                  "type": "integer",
                  "description": "Maximum number of items allowed in the select field",
                  "minimum": 1
                },
                "minitems": {
                  "type": "integer",
                  "description": "Minimum number of items allowed in the select field",
                  "minimum": 1
                },
                "multiple": {
                  "type": "boolean",
                  "description": "Allows the same item more than once in a list.",
                  "default": false
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "relationship": {
                  "type": "string",
                  "enum": [
                    "manyToOne",
                    "oneToMany"
                  ],
                  "default": "oneToMany"
                },
                "size": {
                  "type": "integer",
                  "description": "If set to 1 (default), displays a select drop-down, else a select box of given size.",
                  "minimum": 1,
                  "default": 1
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Language"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {}
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Pass"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "type": {},
                "useExistingField": {}
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Password"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "autocomplete": {
                  "type": "boolean",
                  "description": "Browser autocompletion"
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "fieldControl": {
                  "type": "object",
                  "properties": {
                    "passwordGenerator": {
                      "type": "object",
                      "properties": {
                        "renderType": {
                          "type": "string",
                          "description": "The control renders a button next to the password field allowing the user to generate a random password based on defined rules.",
                          "const": "passwordGenerator"
                        }
                      }
                    }
                  }
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "hashed": {
                  "type": "boolean",
                  "description": "Whether the password should be hashed with the configured hashing algorithm."
                },
                "mode": {
                  "type": "string",
                  "description": "This property is related to the placeholder property. When defined, a checkbox will appear above the field.",
                  "enum": [
                    "useOrOverridePlaceholder"
                  ]
                },
                "nullable": {
                  "type": "boolean",
                  "description": "Allows database null values for the field",
                  "default": false
                },
                "passwordPolicy": {
                  "type": "string",
                  "description": "The password policy will ensure, that the new password complies with the configured password policy."
                },
                "placeholder": {
                  "type": "string",
                  "description": "Placeholder text for the field."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "required": {
                  "type": "boolean",
                  "description": "If set, the field becomes mandatory."
                },
                "size": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Relation"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "allowed": {
                  "type": "string",
                  "description": "A comma list of tables"
                },
                "autoSizeMax": {
                  "type": "integer",
                  "description": "The select field will never be smaller than the specified size and never larger than the value of autoSizeMax.",
                  "minimum": 1
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": [
                    "string",
                    "integer"
                  ],
                  "description": "Default value set if a new record is created."
                },
                "dontRemapTablesOnCopy": {
                  "type": "array",
                  "description": "A list of tables which should not be remapped to the new element uids if the field holds elements that are copied in the session.",
                  "items": {
                    "type": "string"
                  }
                },
                "elementBrowserEntryPoints": {
                  "type": "object",
                  "description": "By default, the last selected page is used when opening the element browser. Setting this configuration value changes this behaviour.",
                  "properties": {
                    "_default": {
                      "type": "integer"
                    },
                    "patternProperties": {
                      ".*": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "fieldControl": {
                  "type": "object",
                  "properties": {
                    "addRecord": {
                      "type": "object",
                      "properties": {
                        "disabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "editPopup": {
                      "type": "object",
                      "properties": {
                        "disabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "listModule": {
                      "type": "object",
                      "properties": {
                        "disabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "elementBrowser": {
                      "type": "object",
                      "properties": {
                        "disabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "insertClipboard": {
                      "type": "object",
                      "properties": {
                        "disabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    },
                    "recordsOverview": {
                      "type": "object",
                      "properties": {
                        "disabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "tableList": {
                      "type": "object",
                      "properties": {
                        "disabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                },
                "filter": {
                  "type": "array",
                  "description": "Define filters for item values. Doesn't work in combination with a wizard.",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "userFunc": {
                        "type": "string"
                      },
                      "parameters": {
                        "type": "object"
                      }
                    }
                  }
                },
                "foreign_table": {
                  "type": "string",
                  "description": "The item-array will be filled with records from the table defined here"
                },
                "hideDeleteIcon": {
                  "type": "boolean",
                  "description": "Removes the delete icon next to the selector box."
                },
                "hideMoveIcons": {
                  "type": "boolean",
                  "description": "Removes the move icons next to the selector box."
                },
                "hideSuggest": {
                  "type": "boolean",
                  "description": "Setting this property to true disables the suggest wizard."
                },
                "localizeReferencesAtParentLocalization": {
                  "type": "boolean",
                  "description": "Defines whether referenced records should be localized when the current record gets localized. This only applies if references are not stored using MM tables."
                },
                "maxitems": {
                  "type": "integer",
                  "description": "Maximum number of items allowed in the select field",
                  "minimum": 1
                },
                "minitems": {
                  "type": "integer",
                  "description": "Minimum number of items allowed in the select field",
                  "minimum": 1
                },
                "MM": {
                  "type": "string",
                  "description": "This value contains the name of the table in which to store a MM relation. It is used together with foreign_table."
                },
                "MM_match_fields": {
                  "type": "object",
                  "description": "Array of field => value pairs to both insert and match against when writing/reading MM relations."
                },
                "MM_opposite_field": {
                  "type": "string",
                  "description": "If you want to make a MM relation editable from the foreign side (bidirectional) of the relation as well, you need to set MM_opposite_field on the foreign side to the field name on the local side."
                },
                "MM_oppositeUsage": {
                  "type": "object",
                  "description": "In a MM bidirectional relation using match fields the opposite side needs to know about the match fields for certain operations"
                },
                "MM_table_where": {
                  "type": "string",
                  "description": "Additional where clause used when reading MM relations."
                },
                "multiple": {
                  "type": "boolean",
                  "description": "Allows the same item more than once in a list.",
                  "default": false
                },
                "prepend_tname": {
                  "type": "boolean",
                  "description": "Will prepend the table name to the stored relations"
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "relationship": {
                  "type": "string",
                  "enum": [
                    "manyToOne",
                    "oneToMany"
                  ]
                },
                "size": {
                  "type": "integer",
                  "description": "If set to 1 (default), displays a select drop-down, else a select box of given size.",
                  "minimum": 1,
                  "default": 1
                },
                "suggestOptions": {
                  "type": "object",
                  "patternProperties": {
                    ".*": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "additionalSearchFields": {
                          "type": "string",
                          "description": "Comma-separated list of fields the suggest wizard should also search in"
                        },
                        "addWhere": {
                          "type": "string",
                          "description": "Allows to define an additional where clause for the searchquery."
                        },
                        "cssClass": {
                          "type": "string",
                          "description": "Add a CSS class to every list item of the result list."
                        },
                        "maxItemsInResultList": {
                          "type": "integer",
                          "description": "Maximum number of results to display.",
                          "default": 10
                        },
                        "maxPathTitleLength": {
                          "type": "integer",
                          "description": "Maximum number of characters to display when a path element is too long."
                        },
                        "minimumCharacters": {
                          "type": "integer",
                          "description": "Minimum number of characters needed to start the search."
                        },
                        "orderBy": {
                          "type": "string",
                          "description": "Allows to add an ORDER BY part to the search query."
                        },
                        "pidList": {
                          "type": "string",
                          "description": "Limit the search to certain pages (and their sub pages)."
                        },
                        "pidDepth": {
                          "type": "integer",
                          "description": "Expand pidList by this number of levels. Has an effect only if pidList has a value."
                        },
                        "receiverClass": {
                          "type": "string",
                          "description": "PHP class alternative receiver class"
                        },
                        "renderFunc": {
                          "type": "string",
                          "description": "User function to manipulate the displayed records in the results."
                        },
                        "searchCondition": {
                          "type": "string",
                          "description": "Additional WHERE clause (not prepended with AND)."
                        },
                        "searchWholePhrase": {
                          "type": "boolean",
                          "description": "Searches for the whole phrase, not only the beginning of the word."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Slug"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "appearance": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "prefix": {
                      "type": "string",
                      "description": "userFunction: Provides a string that is displayed in front of the input field."
                    }
                  }
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    }
                  }
                },
                "default": {
                  "type": "string",
                  "description": "Default value set if a new record is created."
                },
                "eval": {
                  "description": "Configuration of field evaluation",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "string",
                      "enum": [
                        "unique",
                        "uniqueInSite",
                        "uniqueInPid"
                      ]
                    }
                  ]
                },
                "fallbackCharacter": {
                  "type": "string",
                  "description": "Character that represents the separator of slug sections, that contain the fieldSeparator."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "generatorOptions": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "fields": {
                      "type": "array",
                      "description": "Insert several field names (of type string) that will be considered during slug construction.",
                      "items": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "array",
                            "items": {
                              "$ref": "#/properties/fields/items/allOf/24/then/properties/generatorOptions/properties/fields/items"
                            }
                          }
                        ]
                      }
                    },
                    "fieldSeparator": {
                      "type": "string",
                      "description": "This value will divide the slug parts. If a section value contains this very value, it will be replaced by the value given in fallbackCharacter."
                    },
                    "prefixParentPageSlug": {
                      "type": "boolean",
                      "description": "The slugs of parent pages will be prefixed to the slug for the page its (This option is exclusively for page records. It won't have an effect on any other records.)"
                    },
                    "regexReplacements": {
                      "type": "object",
                      "description": "Provide regex based definitions for string replacement. Case-insensitive and wildcard replacement is possible.",
                      "patternProperties": {
                        ".*": {
                          "type": "string"
                        }
                      }
                    },
                    "replacements": {
                      "type": "object",
                      "description": "It allows to replace strings of a slug part.",
                      "patternProperties": {
                        ".*": {
                          "type": "string"
                        }
                      }
                    },
                    "postModifiers": {
                      "type": "array",
                      "description": "Hook into the generation of a slug via custom TCA generation options.",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                },
                "prependSlash": {
                  "type": "boolean",
                  "description": "Defines whether a slug field should contain a prepending slash, for example for nested categories with speaking segments."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "searchable": {
                  "type": "boolean",
                  "description": "Enables search functionality for the field",
                  "default": true
                },
                "size": {
                  "type": "integer",
                  "description": "Abstract value for the width of the field",
                  "minimum": 10,
                  "maximum": 50,
                  "default": 30
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Tab"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "type": {},
                "label": {
                  "type": "string"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Palette"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "type": {},
                "prefixField": {
                  "type": "boolean",
                  "description": "Enables prefixing of field identifiers",
                  "default": true
                },
                "fields": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "identifier": {
                        "type": "string",
                        "description": "The identifier for the field."
                      },
                      "label": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "useExistingField": {
                        "type": "boolean",
                        "description": "Enables extending of existing fields defined by TCA.",
                        "default": false
                      },
                      "prefixField": {
                        "type": "boolean",
                        "description": "Enables prefixing of field identifiers",
                        "default": true
                      },
                      "prefixType": {
                        "description": "Determines how to prefix the field if prefixField is enabled.",
                        "type": "string",
                        "enum": [
                          "full",
                          "vendor"
                        ]
                      },
                      "displayCond": {
                        "$ref": "#/properties/fields/items/properties/displayCond"
                      },
                      "onChange": {
                        "type": "string",
                        "description": "Can be used to trigger a reload of the Content Type when this specific field is changed.",
                        "enum": [
                          "reload"
                        ]
                      },
                      "type": {
                        "description": "Type of the field.",
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "Basic",
                              "Category",
                              "Checkbox",
                              "Collection",
                              "Color",
                              "Country",
                              "DateTime",
                              "Email",
                              "File",
                              "FlexForm",
                              "Folder",
                              "Json",
                              "Language",
                              "Linebreak",
                              "Link",
                              "Number",
                              "Pass",
                              "Password",
                              "Radio",
                              "Relation",
                              "Select",
                              "SelectNumber",
                              "Slug",
                              "Text",
                              "Textarea",
                              "Uuid"
                            ]
                          }
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "properties": {
                            "useExistingField": {
                              "const": true
                            }
                          },
                          "required": [
                            "useExistingField"
                          ]
                        },
                        "else": {
                          "required": [
                            "type"
                          ]
                        }
                      },
                      {
                        "if": {
                          "not": {
                            "properties": {
                              "type": {
                                "const": "Basic"
                              }
                            },
                            "required": [
                              "type"
                            ]
                          }
                        },
                        "then": {
                          "properties": {
                            "identifier": {
                              "type": "string",
                              "pattern": "^[a-zA-Z0-9_]+$"
                            }
                          }
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Textarea"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/2/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Text"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/3/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Email"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/4/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Color"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/5/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Number"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/6/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Link"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/7/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Country"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/8/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "DateTime"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/9/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Json"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/10/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Uuid"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/11/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Select"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/12/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "SelectNumber"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/13/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Checkbox"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/14/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Category"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/15/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Basic"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/16/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "File"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/17/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Radio"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/18/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Folder"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/19/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Language"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/20/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Pass"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/21/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Password"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/22/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Relation"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/23/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Slug"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "$ref": "#/properties/fields/items/allOf/24/then"
                        }
                      },
                      {
                        "if": {
                          "properties": {
                            "type": {
                              "const": "Linebreak"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "then": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {}
                          }
                        },
                        "else": {
                          "required": [
                            "identifier"
                          ]
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "Collection"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "table": {
                  "type": "string",
                  "description": "The custom table name to be used for the new Record Type."
                },
                "group": {
                  "type": "string",
                  "description": "Group name the Content Block should be displayed in"
                },
                "typeName": {
                  "description": "Unqique type identifier for this Content Block",
                  "type": "string"
                },
                "labelField": {
                  "description": "Defines which field should be used as the title of the record.",
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ]
                },
                "fallbackLabelFields": {
                  "description": "Defines which fields should be used as fallback, if labelField is not filled.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "typeField": {
                  "description": "The field identifier to use as the type switch.",
                  "type": "string"
                },
                "languageAware": {
                  "description": "Whether the record type should be language-aware.",
                  "type": "boolean",
                  "default": true
                },
                "workspaceAware": {
                  "description": "Whether the record type should be workspace-aware.",
                  "type": "boolean",
                  "default": true
                },
                "editLocking": {
                  "description": "Whether the edit-locking functionality should be available",
                  "type": "boolean",
                  "default": true
                },
                "restriction": {
                  "type": "object",
                  "description": "There are several restrictions in TYPO3, which filter records by certain constraints.",
                  "additionalProperties": false,
                  "properties": {
                    "disabled": {
                      "type": "boolean",
                      "default": true
                    },
                    "startTime": {
                      "type": "boolean",
                      "default": true
                    },
                    "endTime": {
                      "type": "boolean",
                      "default": true
                    },
                    "userGroup": {
                      "type": "boolean",
                      "default": true
                    }
                  }
                },
                "softDelete": {
                  "type": "boolean",
                  "description": "When deleting records in the TYPO3 backend, they are not really deleted in the database.",
                  "default": true
                },
                "trackCreationDate": {
                  "type": "boolean",
                  "description": "Tracks the timestamp of the creation date.",
                  "default": true
                },
                "trackUpdateDate": {
                  "type": "boolean",
                  "description": "Tracks the timestamp of the last update.",
                  "default": true
                },
                "sortable": {
                  "type": "boolean",
                  "description": "Tracks the order of records.",
                  "default": true
                },
                "sortField": {
                  "description": "The field identifier to use for sorting records.",
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "identifier": {
                            "type": "string"
                          },
                          "order": {
                            "type": "string",
                            "enum": [
                              "asc",
                              "desc"
                            ]
                          }
                        }
                      }
                    }
                  ]
                },
                "internalDescription": {
                  "type": "boolean",
                  "description": "Adds a new tab Notes with a description field.",
                  "default": false
                },
                "rootLevelType": {
                  "type": "string",
                  "description": "Restricts the place, where the record can be created.",
                  "enum": [
                    "onlyOnPages",
                    "onlyOnRootLevel",
                    "both"
                  ],
                  "default": "onlyOnPages"
                },
                "security": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "ignoreWebMountRestriction": {
                      "type": "boolean"
                    },
                    "ignoreRootLevelRestriction": {
                      "type": "boolean"
                    },
                    "ignorePageTypeRestriction": {
                      "type": "boolean"
                    }
                  }
                },
                "adminOnly": {
                  "type": "boolean",
                  "description": "If enabled, only admins can edit the record.",
                  "default": false
                },
                "hideAtCopy": {
                  "type": "boolean",
                  "description": "If enabled, the record will be disabled, when copied. Only works, if restriction.disabled is set to true.",
                  "default": false
                },
                "appendLabelAtCopy": {
                  "type": "string",
                  "description": "If set, the label field labelField will be appended with this string, when copied."
                },
                "shareAcrossTables": {
                  "type": "boolean",
                  "description": "Allows to reference a Record Type across multiple tables, if foreign_table is used."
                },
                "shareAcrossFields": {
                  "type": "boolean",
                  "description": "Allows to reference a Record Type across multiple fields, if foreign_table is used."
                },
                "allowedRecordTypes": {
                  "type": "array",
                  "description": "This option allows you to restrict possible record types for the type selector of the child record. The order of definition is used to sort the items. The first item in the list will always be the default type.",
                  "items": {
                    "type": "string"
                  }
                },
                "appearance": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "collapseAll": {
                      "type": "boolean",
                      "description": "Show all child-records collapsed (if false, all are expanded)"
                    },
                    "expandSingle": {
                      "type": "boolean",
                      "description": "Show only one child-record expanded each time. If a collapsed record is clicked, the currently open one collapses and the clicked one expands."
                    },
                    "showNewRecordLink": {
                      "type": "boolean",
                      "description": "Show the New record link",
                      "default": true
                    },
                    "newRecordLinkAddTitle": {
                      "type": "boolean",
                      "description": "Adds the title of the foreign_table to the \"New record\" link."
                    },
                    "newRecordLinkTitle": {
                      "type": "string",
                      "description": "Overrides the title of the \"New record\" link with a localized string. This will work only if newRecordLinkAddTitle is not set to true."
                    },
                    "createNewRelationLinkTitle": {
                      "type": "string",
                      "description": "Overrides the link text and title of the \"Create new relation\" button with a localized string. Only useful, if the element browser is enabled."
                    },
                    "levelLinksPosition": {
                      "type": "string",
                      "description": "Defines where to show the \"New record\" link in relation to the child records.",
                      "enum": [
                        "top",
                        "bottom",
                        "both"
                      ],
                      "default": "top"
                    },
                    "useCombination": {
                      "type": "boolean",
                      "description": "This is only useful on bidirectional relations using an intermediate table with attributes. In a \"combination\" it is possible to edit the attributes AND the related child record itself. If using a foreign_selector, the foreign_unique property must be set to the same field as the foreign_selector.",
                      "default": false
                    },
                    "suppressCombinationWarning": {
                      "type": "boolean",
                      "description": "Suppresses the warning flash message that will be displayed when using useCombination.",
                      "default": false
                    },
                    "useSortable": {
                      "type": "boolean",
                      "description": "Activate drag & drop.",
                      "default": true
                    },
                    "showPossibleLocalizationRecords": {
                      "type": "boolean",
                      "description": "Show unlocalized files which are in the original language, but not yet localized."
                    },
                    "showAllLocalizationLink": {
                      "type": "boolean",
                      "description": "Defines whether to show the \"localize all records\" link to fetch untranslated records from the original language."
                    },
                    "showSynchronizationLink": {
                      "type": "boolean",
                      "description": "Defines whether to show a \"synchronize\" link to update to a 1:1 translation with the original language."
                    },
                    "enabledControls": {
                      "type": "object",
                      "additionalProperties": false,
                      "description": "Enabled or disable certain controls",
                      "properties": {
                        "info": {
                          "type": "boolean",
                          "default": true
                        },
                        "new": {
                          "type": "boolean",
                          "default": true
                        },
                        "dragdrop": {
                          "type": "boolean",
                          "default": true
                        },
                        "sort": {
                          "type": "boolean",
                          "default": false
                        },
                        "hide": {
                          "type": "boolean",
                          "default": true
                        },
                        "delete": {
                          "type": "boolean",
                          "default": true
                        },
                        "localize": {
                          "type": "boolean",
                          "default": true
                        }
                      }
                    },
                    "showPossibleRecordsSelector": {
                      "type": "boolean",
                      "description": "Can be used to hide the foreign record selector from the interface, even if you have a foreign_selector configured. This can be used to keep the technical functionality of the foreign_selector but is useful if you want to replace it with your own implementation using a custom control, see customControls."
                    },
                    "elementBrowserEnabled": {
                      "type": "boolean",
                      "description": "Hides or displays the element browser button in inline records"
                    }
                  }
                },
                "autoSizeMax": {
                  "type": "integer",
                  "description": "The select field will never be smaller than the specified size and never larger than the value of autoSizeMax.",
                  "minimum": 1
                },
                "behaviour": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "allowLanguageSynchronization": {
                      "type": "boolean",
                      "description": "Allows to select if localization uses custom or default language value",
                      "default": false
                    },
                    "disableMovingChildrenWithParent": {
                      "type": "boolean",
                      "description": "Disables that child records get moved along with their parent records.",
                      "default": false
                    },
                    "enableCascadingDelete": {
                      "type": "boolean",
                      "description": "Usually when the parent record is deleted all attached sys_file_references are deleted. This default behaviour can be disabled here.",
                      "default": true
                    }
                  }
                },
                "customControls": {
                  "type": "array",
                  "description": "A list of custom controls (userFuncs) that can be used to extend the functionality of the collection field.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "userFunc": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "userFunc"
                    ]
                  }
                },
                "filter": {
                  "type": "array",
                  "description": "Define filters for item values. Doesn't work in combination with a wizard.",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "userFunc": {
                        "type": "string"
                      },
                      "parameters": {
                        "type": "object"
                      }
                    }
                  }
                },
                "foreign_default_sortby": {
                  "type": "string",
                  "description": "If a field name for foreign_sortby is defined, then this is ignored. Otherwise, this is used as the \"ORDER BY\" statement to sort the records in the table when listed."
                },
                "foreign_field": {
                  "type": "string",
                  "description": "The foreign_field is the field of the child record pointing to the parent record. This defines where to store the uid of the parent record."
                },
                "foreign_label": {
                  "type": "string",
                  "description": "Insert the fieldname of the inline element, that you want to have as the title of the inline element."
                },
                "foreign_match_fields": {
                  "type": "object",
                  "description": "Array of field-value pairs to both insert and match against when writing/reading IRRE relations. Using the match fields, it is possible to re-use the same child table in more than one field of the parent table by using a match field with different values for each of the use cases."
                },
                "foreign_selector": {
                  "type": "string",
                  "description": "A selector is used to show all possible child records that could be used to create a relation with the parent record."
                },
                "foreign_sortby": {
                  "type": "string",
                  "description": "Define a field on the child record that stores the manual sorting information."
                },
                "fieldControl": {
                  "type": "object"
                },
                "fieldInformation": {
                  "type": "object"
                },
                "fieldWizard": {
                  "type": "object",
                  "properties": {
                    "defaultLanguageDifferences": {
                      "type": "object"
                    },
                    "localizationStateSelector": {
                      "type": "object"
                    },
                    "otherLanguageContent": {
                      "type": "object"
                    }
                  }
                },
                "foreign_table": {
                  "type": "string",
                  "description": "The item-array will be filled with records from the table defined here"
                },
                "foreign_table_field": {
                  "type": "string",
                  "description": "The field of the child record pointing to the parent record."
                },
                "foreign_unique": {
                  "type": "string",
                  "description": "Field which must be unique for all children of a parent record."
                },
                "maxitems": {
                  "type": "integer",
                  "description": "Maximum number of items allowed in the select field",
                  "minimum": 1
                },
                "minitems": {
                  "type": "integer",
                  "description": "Minimum number of items allowed in the select field",
                  "minimum": 1
                },
                "MM": {
                  "type": "string",
                  "description": "This value contains the name of the table in which to store a MM relation. It is used together with foreign_table."
                },
                "MM_opposite_field": {
                  "type": "string",
                  "description": "If you want to make a MM relation editable from the foreign side (bidirectional) of the relation as well, you need to set MM_opposite_field on the foreign side to the field name on the local side."
                },
                "overrideChildTca": {
                  "type": "object",
                  "description": "Override the TCA of the sys_file_reference records representing the files attached to this record."
                },
                "readOnly": {
                  "type": "boolean",
                  "description": "Renders the field in a way that the user can see the value but cannot edit it.",
                  "default": false
                },
                "relationship": {
                  "type": "string",
                  "enum": [
                    "oneToOne",
                    "manyToOne",
                    "oneToMany"
                  ]
                },
                "size": {
                  "type": "integer",
                  "description": "If set to 1 (default), displays a select drop-down, else a select box of given size.",
                  "minimum": 1,
                  "default": 1
                },
                "symmetric_field": {
                  "type": "string",
                  "description": "This works like foreign_field, but in case of using bidirectional symmetric relations. symmetric_field defines in which field on the foreign_table the uid of the \"other\" parent is stored."
                },
                "symmetric_label": {
                  "type": "string",
                  "description": "If set, it overrides the label set in labelField for the inline-view and only if looking to a symmetric relation from the \"other\" side."
                },
                "symmetric_sortby": {
                  "type": "string",
                  "description": "This works like foreign_sortby, but in case of using bidirectional symmetric relations."
                },
                "fields": {
                  "description": "The root fields definition of the Collection.",
                  "type": "array",
                  "items": {
                    "$ref": "#/properties/fields/items"
                  }
                },
                "overrideType": {
                  "oneOf": [
                    {
                      "type": "object",
                      "patternProperties": {
                        ".*": {
                          "type": "array",
                          "items": {
                            "$ref": "#/properties/fields/items"
                          }
                        }
                      }
                    },
                    {
                      "type": "array",
                      "items": {
                        "$ref": "#/properties/fields/items"
                      }
                    }
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "type": {
                  "const": "FlexForm"
                }
              },
              "required": [
                "type"
              ]
            },
            "then": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "identifier": {},
                "label": {},
                "description": {},
                "useExistingField": {},
                "prefixField": {},
                "prefixType": {},
                "displayCond": {},
                "onChange": {},
                "searchable": {},
                "type": {},
                "l10n_mode": {},
                "l10n_display": {},
                "exclude": {},
                "fields": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "$ref": "#/properties/fields/items/allOf/28/then/$defs/fields"
                      }
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "Sheet"
                          },
                          "identifier": {
                            "type": "string",
                            "description": "A unique identifier"
                          },
                          "label": {
                            "type": "string",
                            "description": "Define a label. If not defined, identifier is used as fallback."
                          },
                          "description": {
                            "type": "string",
                            "description": "Define a description."
                          },
                          "linkTitle": {
                            "type": "string",
                            "description": "The link title is displayed when hovering over the tab."
                          },
                          "fields": {
                            "type": "array",
                            "items": {
                              "$ref": "#/properties/fields/items/allOf/28/then/$defs/fields"
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              },
              "$defs": {
                "fields": {
                  "type": "object",
                  "properties": {
                    "identifier": {
                      "type": "string",
                      "description": "The identifier for the field."
                    },
                    "label": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "displayCond": {
                      "$ref": "#/properties/fields/items/properties/displayCond"
                    },
                    "onChange": {
                      "type": "string",
                      "description": "Can be used to trigger a reload of the Content Type when this specific field is changed.",
                      "enum": [
                        "reload"
                      ]
                    },
                    "type": {
                      "description": "Type of the field.",
                      "not": {
                        "const": "Sheet"
                      },
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "string",
                          "enum": [
                            "Category",
                            "Checkbox",
                            "Collection",
                            "Color",
                            "Country",
                            "DateTime",
                            "Email",
                            "File",
                            "Folder",
                            "Json",
                            "Language",
                            "Link",
                            "Number",
                            "Password",
                            "Radio",
                            "Relation",
                            "Select",
                            "SelectNumber",
                            "Slug",
                            "Text",
                            "Textarea",
                            "Uuid",
                            "Section"
                          ]
                        }
                      ]
                    }
                  },
                  "allOf": [
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Textarea"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/2/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Text"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/3/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Email"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/4/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Color"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/5/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Number"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/6/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Link"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/7/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Country"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/8/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "DateTime"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/9/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Json"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/10/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Uuid"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/11/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Select"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/12/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "SelectNumber"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/13/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Checkbox"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/14/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Category"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/15/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "File"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/17/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Radio"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/18/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Folder"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/19/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Language"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/20/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Password"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/22/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Relation"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/23/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Slug"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "$ref": "#/properties/fields/items/allOf/24/then"
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "type": {
                            "const": "Section"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "then": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "container"
                        ],
                        "properties": {
                          "type": {},
                          "identifier": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "container": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "identifier": {
                                  "type": "string"
                                },
                                "label": {
                                  "type": "string"
                                },
                                "fields": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "identifier": {
                                        "type": "string",
                                        "description": "The identifier for the field."
                                      },
                                      "label": {
                                        "type": "string"
                                      },
                                      "description": {
                                        "type": "string"
                                      },
                                      "type": {
                                        "description": "Type of the field.",
                                        "not": {
                                          "anyOf": [
                                            {
                                              "const": "Sheet"
                                            },
                                            {
                                              "const": "Section"
                                            },
                                            {
                                              "const": "Collection"
                                            },
                                            {
                                              "const": "Category"
                                            },
                                            {
                                              "const": "File"
                                            },
                                            {
                                              "const": "Folder"
                                            },
                                            {
                                              "const": "Relation"
                                            }
                                          ]
                                        },
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "string",
                                            "enum": [
                                              "Checkbox",
                                              "Color",
                                              "Country",
                                              "DateTime",
                                              "Email",
                                              "Json",
                                              "Language",
                                              "Link",
                                              "Number",
                                              "Password",
                                              "Radio",
                                              "Select",
                                              "SelectNumber",
                                              "Slug",
                                              "Text",
                                              "Textarea",
                                              "Uuid"
                                            ]
                                          }
                                        ]
                                      }
                                    },
                                    "allOf": [
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Textarea"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/2/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Text"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/3/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Email"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/4/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Color"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/5/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Number"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/6/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Link"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/7/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Country"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/8/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "DateTime"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/9/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Json"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/10/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Uuid"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/11/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Select"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/12/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "SelectNumber"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/13/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Checkbox"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/14/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Radio"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/18/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Language"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/20/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Password"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/22/then"
                                        }
                                      },
                                      {
                                        "if": {
                                          "properties": {
                                            "type": {
                                              "const": "Slug"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ]
                                        },
                                        "then": {
                                          "$ref": "#/properties/fields/items/allOf/24/then"
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    }
  }
}