{
  "$schema": "https://json-schema.org/draft-07/schema#",
  "$id": "https://wappler.io/schemas/flow-connect/main.json",
  "title": "Wappler Flow Connect - Flow Definition Schema",
  "description": "Validates Flow Connect definitions and routes each step options object to its matching {module}-{action}.json schema.",
  "$comment": "lastUpdated: 2026-02-24 11:29:58",
  "anyOf": [
    {"type": "object"},
    {"type": "array"}
  ],
  "allOf": [
    {
      "if": {"type": "array"},
      "then": {
        "type": "array",
        "items": {"$ref": "#/definitions/actionStep"}
      }
    },
    {
      "if": {
        "type": "object",
        "required": ["module", "action"]
      },
      "then": {"$ref": "#/definitions/actionStep"}
    },
    {
      "if": {
        "type": "object",
        "anyOf": [
          {
            "required": ["exec"]
          },
          {
            "required": ["steps"]
          }
        ]
      },
      "then": {"$ref": "#/definitions/flowObject"}
    }
  ],
  "definitions": {
    "metaField": {
      "type": "object",
      "required": ["name", "type"],
      "properties": {
        "name": {"type": "string"},
        "type": {
          "type": "string",
          "enum": [
            "text",
            "number",
            "boolean",
            "array",
            "object",
            "date",
            "time",
            "datetime",
            "file",
            "image"
          ]
        },
        "sub": {
          "type": "array",
          "items": {"$ref": "#/definitions/metaField"}
        }
      },
      "additionalProperties": true
    },
    "actionStepBase": {
      "type": "object",
      "required": ["module", "action"],
      "description": "Flow action step",
      "properties": {
        "name": {"type": "string", "description": "Step identifier that defines the output scope name"},
        "_id": {"type": "string", "description": "Optional UI identifier for the step"},
        "module": {"type": "string", "description": "Module providing the action"},
        "action": {"type": "string", "description": "Action name within the module"},
        "options": {"type": "object", "description": "Action-specific options (validated separately)", "additionalProperties": true},
        "outputType": {
          "type": "string",
          "enum": [
            "text",
            "number",
            "boolean",
            "array",
            "object",
            "date",
            "time",
            "datetime",
            "file",
            "image"
          ],
          "description": "Output data type"
        },
        "output": {"type": "boolean", "description": "Include step result in flow output"},
        "meta": {
          "type": "array",
          "description": "Output metadata for complex types (required for array/object outputs).",
          "items": {"$ref": "#/definitions/metaField"}
        },
        "disabled": {"type": "boolean", "description": "Disable execution of this step"},
        "debug": {"type": "boolean", "description": "Enable debug output for this step"},
        "collapsed": {"type": "boolean", "description": "UI state for collapsed step"},
        "ui": {
          "description": "Editor-specific UI metadata",
          "type": [
            "object",
            "array",
            "string",
            "number",
            "boolean",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "actionStep": {
      "description": "Flow action step",
      "allOf": [
        {"$ref": "#/definitions/actionStepBase"},
        {"$ref": "#/definitions/actionStepOptionsRouting"}
      ]
    },
    "flowObject": {
      "type": "object",
      "description": "Flow definition wrapper with exec/steps",
      "properties": {
        "meta": {
          "description": "Optional flow metadata output fields",
          "anyOf": [
            {
              "type": "array",
              "items": {"$ref": "#/definitions/metaField"}
            },
            {
              "type": "object",
              "additionalProperties": {
                "type": "array",
                "items": {"$ref": "#/definitions/metaField"}
              }
            }
          ]
        },
        "includeFolders": {
          "type": "array",
          "description": "Required App Connect component folders",
          "items": {"type": "string"}
        },
        "linkFiles": {
          "type": "array",
          "description": "Linked asset files required by the flow",
          "items": {
            "type": "object",
            "properties": {
              "src": {"type": "string"},
              "type": {"type": "string"}
            },
            "additionalProperties": true
          }
        },
        "settings": {"type": "object", "description": "Optional flow settings", "additionalProperties": true},
        "exec": {
          "type": "object",
          "required": ["steps"],
          "properties": {
            "steps": {
              "anyOf": [
                {"$ref": "#/definitions/actionStepStructure"},
                {"$ref": "#/definitions/actionStepStructureArray"},
                {"$ref": "#/definitions/actionStepStructureContainer"}
              ]
            },
            "catch": {
              "anyOf": [
                {"$ref": "#/definitions/actionStepStructure"},
                {"$ref": "#/definitions/actionStepStructureArray"},
                {"$ref": "#/definitions/actionStepStructureContainer"}
              ]
            }
          },
          "additionalProperties": true
        },
        "steps": {
          "anyOf": [
            {"$ref": "#/definitions/actionStepStructure"},
            {"$ref": "#/definitions/actionStepStructureArray"},
            {"$ref": "#/definitions/actionStepStructureContainer"}
          ]
        },
        "catch": {
          "anyOf": [
            {"$ref": "#/definitions/actionStepStructure"},
            {"$ref": "#/definitions/actionStepStructureArray"},
            {"$ref": "#/definitions/actionStepStructureContainer"}
          ]
        }
      },
      "additionalProperties": false
    },
    "actionStepStructure": {
      "description": "Flow action step structure",
      "allOf": [
        {"$ref": "#/definitions/actionStep"}
      ]
    },
    "actionStepStructureArray": {
      "type": "array",
      "description": "Array containing one or more flow action steps",
      "minItems": 1,
      "items": {"$ref": "#/definitions/actionStepStructure"}
    },
    "actionStepStructureContainer": {
      "type": "object",
      "description": "Object wrapper that exposes a steps collection",
      "required": ["steps"],
      "properties": {
        "steps": {
          "anyOf": [
            {"type": "array"},
            {"type": "object"}
          ],
          "allOf": [
            {
              "if": {"type": "array"},
              "then": {"$ref": "#/definitions/actionStepStructureArray"}
            },
            {
              "if": {"type": "object"},
              "then": {"$ref": "#/definitions/actionStepStructure"}
            }
          ]
        }
      },
      "additionalProperties": true
    },
    "actionStepOptionsRouting": {
      "allOf": [
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "db"},
              "action": {"const": "query-structure"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./db-query-structure.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "pouchdb"},
              "action": {"const": "delete"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./pouchdb-delete.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "pouchdb"},
              "action": {"const": "insert"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./pouchdb-insert.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "pouchdb"},
              "action": {"const": "paged"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./pouchdb-paged.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "pouchdb"},
              "action": {"const": "select"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./pouchdb-select.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "pouchdb"},
              "action": {"const": "single"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./pouchdb-single.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "comment"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-comment.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "condition"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-condition.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "wait"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-wait.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "select"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-select.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "run"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-run.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "runJS"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-runJS.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "subflow"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-subflow.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "tryCatch"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-tryCatch.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "prompt"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-prompt.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "alert"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-alert.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "confirm"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-confirm.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "triggerDownload"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-triggerDownload.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "while"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-while.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "repeat"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-repeat.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "now"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-now.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "random"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-random.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "assign"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-assign.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "group"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-group.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "setGlobal"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-setGlobal.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "setSession"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-setSession.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "getSession"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-getSession.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "removeSession"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-removeSession.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "setStorage"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-setStorage.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "getStorage"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-getStorage.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "removeStorage"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-removeStorage.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "core"},
              "action": {"const": "serverConnect"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./core-serverConnect.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "bootbox"},
              "action": {"const": "alert"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./bootbox-alert.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "bootbox"},
              "action": {"const": "confirm"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./bootbox-confirm.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "bootbox"},
              "action": {"const": "prompt"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./bootbox-prompt.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "toast"},
              "action": {"const": "show"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./toast-show.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "toast"},
              "action": {"const": "clear"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./toast-clear.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "toast"},
              "action": {"const": "setup"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./toast-setup.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "toast"},
              "action": {"const": "showSimple"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./toast-showSimple.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.App"},
              "action": {"const": "exitApp"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.App-exitApp.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.App"},
              "action": {"const": "getInfo"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.App-getInfo.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.App"},
              "action": {"const": "getState"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.App-getState.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.App"},
              "action": {"const": "getLaunchUrl"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.App-getLaunchUrl.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.App"},
              "action": {"const": "minimizeApp"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.App-minimizeApp.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Camera"},
              "action": {"const": "getPhoto"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Camera-getPhoto.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Camera"},
              "action": {"const": "pickImages"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Camera-pickImages.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Camera"},
              "action": {"const": "pickLimitedLibraryPhotos"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Camera-pickLimitedLibraryPhotos.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Camera"},
              "action": {"const": "getLimitedLibraryPhotos"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Camera-getLimitedLibraryPhotos.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Camera"},
              "action": {"const": "checkPermissions"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Camera-checkPermissions.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Camera"},
              "action": {"const": "requestPermissions"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Camera-requestPermissions.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Device"},
              "action": {"const": "getId"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Device-getId.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Device"},
              "action": {"const": "getInfo"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Device-getInfo.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Device"},
              "action": {"const": "getBatteryInfo"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Device-getBatteryInfo.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Device"},
              "action": {"const": "getLanguageCode"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Device-getLanguageCode.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Device"},
              "action": {"const": "getLanguageTag"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Device-getLanguageTag.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "readFile"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-readFile.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "writeFile"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-writeFile.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "appendFile"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-appendFile.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "deleteFile"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-deleteFile.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "mkdir"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-mkdir.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "rmdir"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-rmdir.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "readdir"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-readdir.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "getUri"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-getUri.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "stat"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-stat.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "rename"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-rename.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "copy"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-copy.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "checkPermissions"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-checkPermissions.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Filesystem"},
              "action": {"const": "requestPermissions"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Filesystem-requestPermissions.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Geolocation"},
              "action": {"const": "getCurrentPosition"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Geolocation-getCurrentPosition.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Geolocation"},
              "action": {"const": "checkPermissions"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Geolocation-checkPermissions.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Geolocation"},
              "action": {"const": "requestPermissions"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Geolocation-requestPermissions.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "Capacitor.Network"},
              "action": {"const": "getStatus"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./Capacitor.Network-getStatus.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "f7.dialog"},
              "action": {"const": "alert"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./f7.dialog-alert.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "f7.dialog"},
              "action": {"const": "confirm"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./f7.dialog-confirm.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "f7.dialog"},
              "action": {"const": "prompt"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./f7.dialog-prompt.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "f7.dialog"},
              "action": {"const": "login"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./f7.dialog-login.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "f7.dialog"},
              "action": {"const": "password"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./f7.dialog-password.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "f7.dialog"},
              "action": {"const": "preloader"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./f7.dialog-preloader.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "f7.dialog"},
              "action": {"const": "close"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./f7.dialog-close.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "f7.toast"},
              "action": {"const": "show"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./f7.toast-show.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "pouchdb"},
              "action": {"const": "update"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./pouchdb-update.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "pouchdb"},
              "action": {"const": "custom"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./pouchdb-custom.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "stripe"},
              "action": {"const": "confirmPayment"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./stripe-confirmPayment.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "stripe"},
              "action": {"const": "confirmSetup"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./stripe-confirmSetup.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "stripe"},
              "action": {"const": "retrievePaymentIntent"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./stripe-retrievePaymentIntent.json"}
            }
          }
        },
        {
          "if": {
            "type": "object",
            "properties": {
              "module": {"const": "stripe"},
              "action": {"const": "retrieveSetupIntent"}
            },
            "required": ["module", "action"]
          },
          "then": {
            "type": "object",
            "properties": {
              "options": {"$ref": "./stripe-retrieveSetupIntent.json"}
            }
          }
        }
      ]
    }
  }
}
