json_schema: {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "object",
      "properties": {
          "label": {
              "type": "string"
          },
          "name": {
              "type": "string"
          },
          "version": {
              "type": "integer",
              "default": 1
          },
          "info": {
              "type": "string"
          },
          "fields": {
              "$ref": "#/definitions/field"
          }
      },
      "required": [
          "name",
          "label",
          "version"
      ],
      "definitions": {
          "field": {
              "type": "array",
              "items": {
                  "type": "object",
                  "properties": {
                      "name": {
                          "type": "string"
                      },
                      "label": {
                          "type": "string"
                      },
                      "info": {
                          "type": "string"
                      },
                      "placeholder": {
                          "type": "string"
                      },
                      "validation": {
                          "type": "array",
                          "items": {
                              "type": "string"
                          }
                      }
                  },
                  "anyOf": [
                      {
                          "properties": {
                              "type": {
                                  "enum": [
                                      "header",
                                      "paragraph"
                                  ]
                              }
                          },
                          "required": [
                              "type",
                              "name"
                          ]
                      },
                      {
                          "required": [
                              "type",
                              "name",
                              "label"
                          ]
                      }
                  ],
                  "oneOf": [
                      {
                          "properties": {
                              "type": {
                                  "enum": [
                                      "text",
                                      "textarea",
                                      "richtext",
                                      "link"
                                  ]
                              },
                              "default": {
                                  "type": "string"
                              }
                          }
                      },
                      {
                          "properties": {
                              "type": {
                                  "enum": [
                                      "collection",
                                      "checkbox",
                                      "multiselect",
                                      "nested"
                                  ]
                              },
                              "default": {
                                  "type": "array"
                              }
                          }
                      },
                      {
                          "properties": {
                              "type": {
                                  "enum": [
                                      "switch"
                                  ]
                              },
                              "default": {
                                  "type": "boolean"
                              }
                          }
                      },
                      {
                          "properties": {
                              "type": {
                                  "enum": [
                                      "image",
                                      "file"
                                  ]
                              },
                              "default": {
                                  "type": "object"
                              }
                          }
                      },
                      {
                          "properties": {
                              "type": {
                                  "enum": [
                                      "select",
                                      "radio",
                                      "buttongroup",
                                      "number",
                                      "slider",
                                      "date",
                                      "time",
                                      "datetime",
                                      "group",
                                      "header",
                                      "paragraph"
                                  ]
                              },
                              "default": {}
                          }
                      }
                  ]
              }
          }
      }
  }