{
  "$ref": "#/definitions/ConvenientWizardSpec",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "ChoiceSpec": {
      "additionalProperties": false,
      "properties": {
        "alt": {
          "type": "string"
        },
        "component": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "options": {
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/OptionSpec"
              },
              {
                "type": "string"
              }
            ]
          },
          "type": "array"
        },
        "props": {
          "additionalProperties": {
          },
          "type": "object"
        }
      },
      "required": [
        "id",
        "options"
      ],
      "type": "object"
    },
    "ConvenientWizardSpec": {
      "anyOf": [
        {
          "$ref": "#/definitions/WizardSpec"
        },
        {
          "$ref": "#/definitions/StepSpecArray"
        }
      ]
    },
    "FlowSpec": {
      "additionalProperties": false,
      "properties": {
        "alt": {
          "type": "string"
        },
        "component": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "props": {
          "additionalProperties": {
          },
          "type": "object"
        },
        "steps": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "steps"
      ],
      "type": "object"
    },
    "OptionSpec": {
      "additionalProperties": false,
      "properties": {
        "goto": {
          "type": "string"
        },
        "when": {
          "type": "string"
        }
      },
      "required": [
        "when",
        "goto"
      ],
      "type": "object"
    },
    "StepSpec": {
      "additionalProperties": false,
      "properties": {
        "alt": {
          "type": "string"
        },
        "component": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "props": {
          "additionalProperties": {
          },
          "type": "object"
        },
        "workflowId": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "StepSpecArray": {
      "items": {
        "$ref": "#/definitions/StepSpec"
      },
      "minItems": 1,
      "type": "array"
    },
    "WizardSpec": {
      "additionalProperties": false,
      "properties": {
        "choices": {
          "items": {
            "$ref": "#/definitions/ChoiceSpec"
          },
          "type": "array"
        },
        "entrypoint": {
          "type": "string"
        },
        "flows": {
          "items": {
            "$ref": "#/definitions/FlowSpec"
          },
          "type": "array"
        },
        "steps": {
          "$ref": "#/definitions/StepSpecArray"
        }
      },
      "required": [
        "steps"
      ],
      "type": "object"
    }
  }
}
