{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Generated schema for Root",
  "type": "object",
  "properties": {
    "version": {
      "type": "number"
    },
    "mu_name": {
      "type": "string"
    },
    "wordlength": {
      "type": "number"
    },
    "instructions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "opcode": {
            "type": "number"
          },
          "mnemonic": {
            "type": "string"
          },
          "steps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "step": {
                  "type": "number"
                },
                "actions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string"
                      },
                      "componentName": {
                        "type": "string"
                      },
                      "outputEnable": {
                        "type": "boolean"
                      },
                      "inputEnable": {
                        "type": "boolean"
                      },
                      "select": {
                        "type": "number"
                      },
                      "function": {
                        "type": "string"
                      },
                      "chipSelect": {
                        "type": "boolean"
                      },
                      "RnW": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "type",
                      "componentName"
                    ]
                  }
                },
                "nextStep": {
                  "type": "number"
                },
                "isComplete": {
                  "type": "boolean"
                },
                "condition": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "componentName": {
                      "type": "string"
                    },
                    "condition": {
                      "type": "string"
                    },
                    "compareValue": {
                      "type": "number"
                    },
                    "failureNextStep": {
                      "type": "number"
                    },
                    "failureIsComplete": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "type",
                    "componentName",
                    "condition",
                    "compareValue",
                    "failureNextStep",
                    "failureIsComplete"
                  ]
                }
              },
              "required": [
                "step",
                "actions",
                "nextStep",
                "isComplete"
              ]
            }
          },
          "hasParameter": {
            "type": "boolean"
          }
        },
        "required": [
          "opcode",
          "mnemonic",
          "steps"
        ]
      }
    }
  },
  "required": [
    "version",
    "mu_name",
    "wordlength",
    "instructions"
  ]
}