{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$defs": {},
  "operationId": "plan.execute",
  "schemas": {
    "input": {
      "type": "object",
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "operationId": {
                "type": "string"
              },
              "input": {},
              "options": {},
              "captureAs": {
                "type": "string"
              },
              "expect": {
                "type": "object",
                "properties": {
                  "success": {
                    "type": "boolean"
                  },
                  "failureCode": {
                    "type": "string"
                  },
                  "failureMessageIncludes": {
                    "type": "string"
                  },
                  "allowFailureMessageIncludes": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false,
            "required": [
              "operationId"
            ]
          }
        },
        "captureReturns": {
          "oneOf": [
            {
              "const": "*"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "entries"
      ]
    },
    "output": {
      "type": "object",
      "properties": {
        "receipts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "entryIndex": {
                "type": "integer"
              },
              "operationId": {
                "type": "string"
              },
              "status": {
                "enum": [
                  "passed",
                  "allowed-failure",
                  "expected-failure"
                ]
              },
              "captureAs": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "error": {
                "type": "string"
              }
            },
            "additionalProperties": false,
            "required": [
              "entryIndex",
              "operationId",
              "status",
              "captureAs"
            ]
          }
        },
        "captures": {
          "type": "object"
        },
        "failure": {
          "type": "object",
          "properties": {
            "entryIndex": {
              "type": "integer"
            },
            "operationId": {
              "type": "string"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "entryIndex",
            "operationId",
            "message"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "receipts",
        "captures"
      ]
    },
    "success": {
      "type": "object",
      "properties": {
        "receipts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "entryIndex": {
                "type": "integer"
              },
              "operationId": {
                "type": "string"
              },
              "status": {
                "enum": [
                  "passed",
                  "allowed-failure",
                  "expected-failure"
                ]
              },
              "captureAs": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "error": {
                "type": "string"
              }
            },
            "additionalProperties": false,
            "required": [
              "entryIndex",
              "operationId",
              "status",
              "captureAs"
            ]
          }
        },
        "captures": {
          "type": "object"
        },
        "failure": {
          "type": "object",
          "properties": {
            "entryIndex": {
              "type": "integer"
            },
            "operationId": {
              "type": "string"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "entryIndex",
            "operationId",
            "message"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "receipts",
        "captures"
      ]
    },
    "failure": {
      "type": "object",
      "properties": {
        "success": {
          "const": false
        },
        "failure": {
          "type": "object",
          "properties": {
            "code": {
              "enum": [
                "INVALID_INPUT",
                "CAPABILITY_UNAVAILABLE"
              ]
            },
            "message": {
              "type": "string"
            },
            "details": {}
          },
          "additionalProperties": false,
          "required": [
            "code",
            "message"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "success",
        "failure"
      ]
    }
  }
}
