{
  "$ref": "#/definitions/Component",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "Component": {
      "additionalProperties": false,
      "properties": {
        "getvals": {
          "enum": [
            "yes",
            "no",
            null
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "hide_submit": {
          "type": "boolean"
        },
        "i18nlang": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "isInvalid": {
          "type": "boolean"
        },
        "schema": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/definitions/FormSchema"
            }
          ],
          "description": "From HTML: JSON string parsed in `$effect`; may be an object when set from JavaScript."
        },
        "show_validation": {
          "enum": [
            "yes",
            "no"
          ],
          "type": "string"
        },
        "style": {
          "type": "string"
        },
        "submitted": {
          "enum": [
            "yes",
            "no",
            null
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "values": {
          "$ref": "#/definitions/FormValues"
        }
      },
      "required": [
        "schema"
      ],
      "type": "object"
    },
    "FormSchema": {
      "items": {
        "$ref": "#/definitions/FormSchemaEntry"
      },
      "type": "array"
    },
    "FormSchemaDependency": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        },
        "values": {
          "items": {
            "type": [
              "string",
              "number",
              "boolean"
            ]
          },
          "type": "array"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "FormSchemaEntry": {
      "additionalProperties": false,
      "properties": {
        "dependencies": {
          "items": {
            "$ref": "#/definitions/FormSchemaDependency"
          },
          "type": "array"
        },
        "disabled": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "params": {
          "additionalProperties": {},
          "type": "object"
        },
        "placeholder": {
          "type": "string"
        },
        "readonly": {
          "type": "boolean"
        },
        "required": {
          "type": "boolean"
        },
        "type": {
          "description": "Discriminator for `hb-form` rows (`row`, `text`, `number`, …). May be omitted on a standalone `schemaentry` when implied by the host tag.",
          "type": "string"
        },
        "validationRegex": {
          "type": "string"
        },
        "validationTip": {
          "type": "string"
        },
        "value": {}
      },
      "required": [
        "id",
        "type"
      ],
      "type": "object"
    },
    "FormValues": {
      "additionalProperties": {},
      "description": "Live / submitted values keyed by field id (plus metadata keys on dispatch payloads).",
      "type": "object"
    }
  }
}
