{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/cinnamon-spice-settings.json",
  "definitions": {
    "string-property-partial": {
      "type": "string",
      "minLength": 1,
      "pattern": "\\S"
    },
    "type-property": {
      "title": "type",
      "description": "A type of the widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "string",
      "enum": [
        "checkbox",
        "entry",
        "colorchooser",
        "keybinding",
        "radiogroup",
        "filechooser",
        "iconfilechooser",
        "combobox",
        "spinbutton",
        "scale",
        "generic",
        "header",
        "separator",
        "button"
      ]
    },
    "checkbox-definition": {
      "title": "checkbox",
      "description": "A checkbox widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the checkbox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the checkbox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the checkbox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the checkbox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the checkbox depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "entry-definition": {
      "title": "entry",
      "description": "A text entry widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the text entry\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the text entry\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the text entry\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "string"
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the text entry\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the text entry depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "colorchooser-definition": {
      "title": "color chooser",
      "description": "A color chooser widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the color chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the color chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the color chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "string",
          "minLength": 1,
          "examples": [
            "rgba(RED, GREEN, BLUE, ALPHA)",
            "rgb(RED, GREEN, BLUE)",
            "red"
          ]
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the color chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the color chooser depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "keybinding-definition": {
      "title": "keybinding",
      "description": "A keybinding widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the keybinding\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the keybinding\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the keybinding\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "string",
          "examples": ["&lt;Control&gt;F8"]
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the keybinding\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the keybinding depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "radiogroup-definition": {
      "title": "radiogroup",
      "description": "A radiogroup widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the radiogroup\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the radiogroup\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the radiogroup from `options`\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": ["string", "number"]
        },
        "options": {
          "title": "options",
          "description": "Options of the the radiogroup\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "object",
          "patternProperties": {
            "\\S": {
              "title": "option",
              "description": "An option of the the radiogroup\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
              "type": ["string", "number"]
            }
          },
          "minProperties": 1,
          "additionalProperties": false
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the radiogroup\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the radiogroup depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "filechooser-definition": {
      "title": "file chooser",
      "description": "A file chooser widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "string"
        },
        "select-dir": {
          "title": "select directory",
          "description": "Whether to allow select just directories for the the file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the file chooser depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "iconfilechooser-definition": {
      "title": "icon file chooser",
      "description": "An icon file chooser widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the icon file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the icon file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the icon file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "string"
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the icon file chooser\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the icon file chooser depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "combobox-definition": {
      "title": "combobox",
      "description": "A combobox widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the combobox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the combobox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the combobox from `options`\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": ["string", "number", "boolean"]
        },
        "options": {
          "title": "options",
          "description": "Options of the the combobox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "object",
          "patternProperties": {
            "\\S": {
              "title": "option",
              "description": "An option of the the combobox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
              "type": ["string", "number", "boolean"]
            }
          },
          "minProperties": 1,
          "additionalProperties": false
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the combobox\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the combobox depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "spinbutton-definition": {
      "title": "spinbutton",
      "description": "A spinbutton widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the spinbutton\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the spinbutton\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the spinbutton\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "number"
        },
        "min": {
          "title": "minimum",
          "description": "A minimum value of the spinbutton\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "number"
        },
        "max": {
          "title": "maximum",
          "description": "A maximum value of the spinbutton\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "number"
        },
        "step": {
          "title": "step",
          "description": "A step value of the spinbutton\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "number",
          "exclusiveMinimum": 0
        },
        "units": {
          "$ref": "#/definitions/string-property-partial",
          "title": "units",
          "description": "Units of the spinbutton\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "examples": ["px"]
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the spinbutton\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the spinbutton depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "scale-definition": {
      "title": "spinbutton",
      "description": "A scale widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the the scale\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the scale\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the scale\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "number"
        },
        "min": {
          "title": "minimum",
          "description": "A minimum value of the scale\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "number"
        },
        "max": {
          "title": "maximum",
          "description": "A maximum value of the scale\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "number"
        },
        "step": {
          "title": "step",
          "description": "A step value of the scale\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "number",
          "exclusiveMinimum": 0
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the scale\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the scale depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "generic-definition": {
      "title": "generic",
      "description": "A header widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the generic widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the generic widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "default": {
          "title": "default",
          "description": "A default value of the generic widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the generic widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the generic widget depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "header-definition": {
      "title": "header",
      "description": "A header widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A content of the header\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the header\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the header depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "separator-definition": {
      "title": "separator",
      "description": "A separator widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the separator\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the separator depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    },
    "button-definition": {
      "title": "button",
      "description": "A button widget\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/type-property"
        },
        "description": {
          "$ref": "#/definitions/string-property-partial",
          "title": "description",
          "description": "A description of the button\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "tooltip": {
          "$ref": "#/definitions/string-property-partial",
          "title": "tooltip",
          "description": "A tooltip of the the button\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "callback": {
          "$ref": "#/definitions/string-property-partial",
          "title": "callback",
          "description": "A callback of the button without `.this`\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        },
        "indent": {
          "title": "indent",
          "description": "Whether to indent the button\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
          "type": "boolean"
        },
        "dependency": {
          "$ref": "#/definitions/string-property-partial",
          "title": "dependency",
          "description": "A checkbox or combobox the button depends on\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html"
        }
      },
      "additionalProperties": false
    }
  },
  "title": "gui structure",
  "description": "GUI structure of Cinnamon extension\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
  "type": "object",
  "patternProperties": {
    "\\S": {
      "title": "widget",
      "description": "A widget identifier\nhttps://projects.linuxmint.com/reference/git/cinnamon-tutorials/xlet-settings-ref.html",
      "type": "object",
      "required": ["type"],
      "allOf": [
        {
          "if": {
            "properties": {
              "type": {
                "const": "checkbox"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/checkbox-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "entry"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/entry-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "colorchooser"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/colorchooser-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "keybinding"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/keybinding-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "radiogroup"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/radiogroup-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "filechooser"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/filechooser-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "iconfilechooser"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/iconfilechooser-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "combobox"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/combobox-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "spinbutton"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/spinbutton-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "scale"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/scale-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "generic"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/generic-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "header"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/header-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "separator"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/separator-definition"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "button"
              }
            }
          },
          "then": {
            "$ref": "#/definitions/button-definition"
          }
        }
      ]
    }
  },
  "additionalProperties": false
}
