{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "type" : "object",
  "properties" : {
    "$schema" : {
      "type" : "string",
      "pattern" : ".*/process/[0-9]+[\\.0-9]+/schema\\.json$"
    },
    "id" : {
      "type" : "string",
      "pattern" : "^[A-F0-9]{16,}$"
    },
    "kind" : {
      "$ref" : "#/$defs/ProcessKind"
    },
    "config" : {
      "$ref" : "#/$defs/ConfigProcessConfig"
    },
    "elements" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/Node"
      }
    },
    "layout" : {
      "$ref" : "#/$defs/VisualLayout"
    }
  },
  "additionalProperties" : false,
  "$defs" : {
    "Node" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string"
        },
        "type" : {
          "additionalProperties" : false,
          "$ref" : "#/$defs/ElementTypes"
        },
        "impl" : {
          "type" : "string"
        },
        "name" : {
          "$ref" : "#/$defs/Text"
        },
        "config" : {
          "anyOf" : [ {
            "$ref" : "#/$defs/ElementTaskEndPage"
          }, {
            "$ref" : "#/$defs/ElementTaskSwitchGateway"
          }, {
            "$ref" : "#/$defs/ElementSubProcessCall"
          }, {
            "$ref" : "#/$defs/ElementDatabase"
          }, {
            "$ref" : "#/$defs/ElementCallSubStart"
          }, {
            "$ref" : "#/$defs/ElementScript"
          }, {
            "$ref" : "#/$defs/ElementProgramInterface"
          }, {
            "$ref" : "#/$defs/ElementHtmlDialogStart"
          }, {
            "$ref" : "#/$defs/ElementSplit"
          }, {
            "$ref" : "#/$defs/ElementWebPage"
          }, {
            "$ref" : "#/$defs/ElementErrorEnd"
          }, {
            "$ref" : "#/$defs/ElementErrorBoundaryEvent"
          }, {
            "$ref" : "#/$defs/ElementHtmlDialogEventStart"
          }, {
            "$ref" : "#/$defs/ElementProgramStart"
          }, {
            "$ref" : "#/$defs/ElementWebServiceCall"
          }, {
            "$ref" : "#/$defs/ElementDialogCall"
          }, {
            "$ref" : "#/$defs/ElementTriggerCall"
          }, {
            "$ref" : "#/$defs/ElementErrorStartEvent"
          }, {
            "$ref" : "#/$defs/ElementRequestStart"
          }, {
            "$ref" : "#/$defs/ElementWebserviceStart"
          }, {
            "$ref" : "#/$defs/ElementUserTask"
          }, {
            "$ref" : "#/$defs/ElementJoin"
          }, {
            "$ref" : "#/$defs/ElementSignalBoundaryEvent"
          }, {
            "$ref" : "#/$defs/ElementEMail"
          }, {
            "$ref" : "#/$defs/ElementTaskSwitchEvent"
          }, {
            "$ref" : "#/$defs/ElementHtmlDialogMethodStart"
          }, {
            "$ref" : "#/$defs/ElementWaitEvent"
          }, {
            "$ref" : "#/$defs/ElementRestClientCall"
          }, {
            "$ref" : "#/$defs/ElementSignalStartEvent"
          } ]
        },
        "elements" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Node"
          }
        },
        "boundaries" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Node"
          }
        },
        "docs" : {
          "$ref" : "#/$defs/Map(String,String)"
        },
        "tags" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "visual" : {
          "$ref" : "#/$defs/VisualAttributes"
        },
        "parentConnector" : {
          "type" : "string"
        },
        "connect" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Connector"
          }
        }
      },
      "additionalProperties" : false
    },
    "Connector" : {
      "type" : "object",
      "properties" : {
        "color" : {
          "type" : "string"
        },
        "condition" : {
          "type" : "string"
        },
        "id" : {
          "type" : "string"
        },
        "label" : {
          "$ref" : "#/$defs/VisualConnectorLabel"
        },
        "outVar" : {
          "type" : "string"
        },
        "to" : {
          "type" : "string"
        },
        "var" : {
          "type" : "string"
        },
        "via" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/VisualPoint"
          }
        }
      },
      "additionalProperties" : false
    },
    "ProcessKind" : {
      "type" : "string",
      "enum" : [ "NORMAL", "WEB_SERVICE", "CALLABLE_SUB", "HTML_DIALOG" ]
    },
    "Cache" : {
      "type" : "object",
      "properties" : {
        "entry" : {
          "$ref" : "#/$defs/CacheArtifact"
        },
        "group" : {
          "$ref" : "#/$defs/CacheArtifact"
        },
        "mode" : {
          "$ref" : "#/$defs/CacheMode"
        },
        "scope" : {
          "$ref" : "#/$defs/CacheScope"
        }
      },
      "additionalProperties" : false
    },
    "CacheArtifact" : {
      "type" : "object",
      "properties" : {
        "invalidation" : {
          "$ref" : "#/$defs/CacheInvalidation"
        },
        "name" : {
          "type" : "string"
        },
        "time" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "CacheInvalidation" : {
      "type" : "string",
      "enum" : [ "NONE", "FIXED_TIME", "LIFETIME" ]
    },
    "CacheMode" : {
      "type" : "string",
      "enum" : [ "DO_NOT_CACHE", "CACHE", "INVALIDATE_CACHE" ]
    },
    "CacheScope" : {
      "type" : "string",
      "enum" : [ "SESSION", "APPLICATION" ]
    },
    "ConfigPermissionView" : {
      "type" : "object",
      "properties" : {
        "allowed" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "ConfigPermissions" : {
      "type" : "object",
      "properties" : {
        "view" : {
          "$ref" : "#/$defs/ConfigPermissionView"
        }
      },
      "additionalProperties" : false
    },
    "ConfigProcessConfig" : {
      "type" : "object",
      "properties" : {
        "data" : {
          "type" : "string"
        },
        "permissions" : {
          "$ref" : "#/$defs/ConfigPermissions"
        },
        "wsAuth" : {
          "type" : "string"
        },
        "wsTypeName" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "DbQuery" : {
      "type" : "object",
      "properties" : {
        "dbName" : {
          "type" : "string"
        },
        "limit" : {
          "type" : "string"
        },
        "offset" : {
          "type" : "string"
        },
        "sql" : {
          "$ref" : "#/$defs/DbSqlStatement"
        }
      },
      "additionalProperties" : false
    },
    "DbSqlStatement" : {
      "type" : "object",
      "properties" : {
        "condition" : {
          "type" : "string"
        },
        "fields" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "kind" : {
          "$ref" : "#/$defs/QueryKind"
        },
        "orderBy" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "quote" : {
          "type" : "boolean"
        },
        "select" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "stmt" : {
          "type" : "string"
        },
        "table" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementCallSubStart" : {
      "type" : "object",
      "properties" : {
        "result" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "signature" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementDatabase" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "cache" : {
          "$ref" : "#/$defs/Cache"
        },
        "query" : {
          "$ref" : "#/$defs/DbQuery"
        },
        "exceptionHandler" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementDialogCall" : {
      "type" : "object",
      "properties" : {
        "call" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "dialog" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementEMail" : {
      "type" : "object",
      "properties" : {
        "headers" : {
          "$ref" : "#/$defs/MailHeaders"
        },
        "failIfMissingAttachments" : {
          "type" : "boolean"
        },
        "attachments" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "message" : {
          "$ref" : "#/$defs/MailMessage"
        },
        "exceptionHandler" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementErrorBoundaryEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "errorCode" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementErrorEnd" : {
      "type" : "object",
      "properties" : {
        "code" : {
          "type" : "string"
        },
        "throws" : {
          "$ref" : "#/$defs/ErrorDefinition"
        }
      },
      "additionalProperties" : false
    },
    "ElementErrorStartEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "errorCode" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementHtmlDialogEventStart" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "guid" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementHtmlDialogMethodStart" : {
      "type" : "object",
      "properties" : {
        "result" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "signature" : {
          "type" : "string"
        },
        "guid" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementHtmlDialogStart" : {
      "type" : "object",
      "properties" : {
        "result" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "signature" : {
          "type" : "string"
        },
        "guid" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementJoin" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementProgramInterface" : {
      "type" : "object",
      "properties" : {
        "javaClass" : {
          "type" : "string"
        },
        "userConfig" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementProgramStart" : {
      "type" : "object",
      "properties" : {
        "javaClass" : {
          "type" : "string"
        },
        "link" : {
          "type" : "string"
        },
        "permission" : {
          "$ref" : "#/$defs/StartPermission"
        },
        "userConfig" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementRequestStart" : {
      "type" : "object",
      "properties" : {
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "request" : {
          "$ref" : "#/$defs/StartRequest"
        },
        "task" : {
          "$ref" : "#/$defs/WfTask"
        },
        "signature" : {
          "type" : "string"
        },
        "permission" : {
          "$ref" : "#/$defs/StartPermission"
        },
        "triggerable" : {
          "type" : "boolean"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        },
        "persistOnStart" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "ElementRestClientCall" : {
      "type" : "object",
      "properties" : {
        "code" : {
          "type" : "string"
        },
        "method" : {
          "$ref" : "#/$defs/HttpMethod"
        },
        "response" : {
          "$ref" : "#/$defs/RestResponse"
        },
        "body" : {
          "$ref" : "#/$defs/RestBody"
        },
        "target" : {
          "$ref" : "#/$defs/RestTarget"
        }
      },
      "additionalProperties" : false
    },
    "ElementScript" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "sudo" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "ElementSignalBoundaryEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "signalCode" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementSignalStartEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "signalCode" : {
          "type" : "string"
        },
        "attachToBusinessCase" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "ElementSplit" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementSubProcessCall" : {
      "type" : "object",
      "properties" : {
        "call" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "processCall" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementTaskEndPage" : {
      "type" : "object",
      "properties" : {
        "page" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementTaskSwitchEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "task" : {
          "$ref" : "#/$defs/WfTask"
        },
        "page" : {
          "type" : "string"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        }
      },
      "additionalProperties" : false
    },
    "ElementTaskSwitchGateway" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "page" : {
          "type" : "string"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        },
        "tasks" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/WfTask"
          }
        }
      },
      "additionalProperties" : false
    },
    "ElementTriggerCall" : {
      "type" : "object",
      "properties" : {
        "call" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "processCall" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementTypes" : {
      "type" : "string",
      "enum" : [ "ServiceBpmnElement", "TaskEndPage", "TaskSwitchGateway", "ReceiveBpmnElement", "ProcessAnnotation", "SubProcessCall", "EmbeddedEnd", "Database", "CallSubStart", "CallSubEnd", "Script", "Alternative", "SendBpmnElement", "ProgramInterface", "HtmlDialogExit", "ScriptBpmnElement", "HtmlDialogStart", "EmbeddedStart", "Split", "WebserviceEnd", "WebPage", "ErrorEnd", "UserBpmnElement", "RuleBpmnElement", "ErrorBoundaryEvent", "GenericBpmnElement", "HtmlDialogEventStart", "ProgramStart", "EmbeddedProcessElement", "WebServiceCall", "DialogCall", "TriggerCall", "ErrorStartEvent", "TaskEnd", "RequestStart", "WebserviceStart", "UserTask", "Join", "SignalBoundaryEvent", "EMail", "TaskSwitchEvent", "HtmlDialogMethodStart", "ThirdPartyProgramInterface", "WaitEvent", "RestClientCall", "ManualBpmnElement", "HtmlDialogEnd", "SignalStartEvent" ]
    },
    "ElementUserTask" : {
      "type" : "object",
      "properties" : {
        "call" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "dialog" : {
          "type" : "string"
        },
        "task" : {
          "$ref" : "#/$defs/WfTask"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        }
      },
      "additionalProperties" : false
    },
    "ElementWaitEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "javaClass" : {
          "type" : "string"
        },
        "userConfig" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementWebPage" : {
      "type" : "object",
      "properties" : {
        "page" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementWebServiceCall" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "cache" : {
          "$ref" : "#/$defs/Cache"
        },
        "clientId" : {
          "type" : "string"
        },
        "operation" : {
          "$ref" : "#/$defs/SoapOperation"
        },
        "exceptionHandler" : {
          "type" : "string"
        },
        "properties" : {
          "$ref" : "#/$defs/ScriptMappings"
        }
      },
      "additionalProperties" : false
    },
    "ElementWebserviceStart" : {
      "type" : "object",
      "properties" : {
        "result" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "exception" : {
          "$ref" : "#/$defs/SoapWsProcessException"
        },
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "task" : {
          "$ref" : "#/$defs/WfTask"
        },
        "signature" : {
          "type" : "string"
        },
        "permission" : {
          "$ref" : "#/$defs/StartPermission"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        }
      },
      "additionalProperties" : false
    },
    "ErrorDefinition" : {
      "type" : "object",
      "properties" : {
        "cause" : {
          "type" : "string"
        },
        "error" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "HttpMethod" : {
      "type" : "string",
      "enum" : [ "GET", "POST", "PUT", "HEAD", "DELETE", "PATCH", "OPTIONS", "JAX_RS" ]
    },
    "InputType" : {
      "type" : "string",
      "enum" : [ "ENTITY", "FORM", "RAW" ]
    },
    "MailHeaders" : {
      "type" : "object",
      "properties" : {
        "bcc" : {
          "type" : "string"
        },
        "cc" : {
          "type" : "string"
        },
        "from" : {
          "type" : "string"
        },
        "replyTo" : {
          "type" : "string"
        },
        "subject" : {
          "type" : "string"
        },
        "to" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "MailMessage" : {
      "type" : "object",
      "properties" : {
        "body" : {
          "type" : "string"
        },
        "contentType" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Map(String,String)" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "string"
      }
    },
    "QueryKind" : {
      "type" : "string",
      "enum" : [ "READ", "WRITE", "UPDATE", "DELETE", "ANY" ]
    },
    "RestBody" : {
      "type" : "object",
      "properties" : {
        "entity" : {
          "$ref" : "#/$defs/RestPayloadMapping"
        },
        "form" : {
          "$ref" : "#/$defs/RestMultiValuedMap"
        },
        "mediaType" : {
          "type" : "string"
        },
        "raw" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/InputType"
        }
      },
      "additionalProperties" : false
    },
    "RestMultiValuedMap" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "array",
        "items" : {
          "type" : "string"
        }
      }
    },
    "RestPayloadMapping" : {
      "type" : "object",
      "properties" : {
        "code" : {
          "type" : "string"
        },
        "map" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "type" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "RestResponse" : {
      "type" : "object",
      "properties" : {
        "clientError" : {
          "type" : "string"
        },
        "entity" : {
          "$ref" : "#/$defs/RestPayloadMapping"
        },
        "statusError" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "RestTarget" : {
      "type" : "object",
      "properties" : {
        "clientId" : {
          "type" : "string"
        },
        "headers" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "path" : {
          "type" : "string"
        },
        "properties" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "queryParams" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "templateParams" : {
          "$ref" : "#/$defs/ScriptMappings"
        }
      },
      "additionalProperties" : false
    },
    "ScriptMapCode" : {
      "type" : "object",
      "properties" : {
        "code" : {
          "type" : "string"
        },
        "map" : {
          "$ref" : "#/$defs/ScriptMappings"
        }
      },
      "additionalProperties" : false
    },
    "ScriptMappings" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "string"
      }
    },
    "ScriptParameterizedMapCode" : {
      "type" : "object",
      "properties" : {
        "code" : {
          "type" : "string"
        },
        "map" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "params" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/ScriptVariable"
          }
        }
      },
      "additionalProperties" : false
    },
    "ScriptVariable" : {
      "type" : "object",
      "properties" : {
        "desc" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "SoapOperation" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "parameters" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "port" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "SoapWsProcessException" : {
      "type" : "object",
      "properties" : {
        "condition" : {
          "type" : "string"
        },
        "enabled" : {
          "type" : "boolean"
        },
        "message" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "StartCustomStartField" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "value" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "StartPermission" : {
      "type" : "object",
      "properties" : {
        "anonymous" : {
          "type" : "boolean"
        },
        "error" : {
          "type" : "string"
        },
        "role" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "StartRequest" : {
      "type" : "object",
      "properties" : {
        "category" : {
          "type" : "string"
        },
        "customFields" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/StartCustomStartField"
          }
        },
        "description" : {
          "type" : "string"
        },
        "isHttpRequestable" : {
          "type" : "boolean"
        },
        "isVisibleOnStartList" : {
          "type" : "boolean"
        },
        "linkName" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Text" : {
      "anyOf" : [ "string", {
        "type" : "array",
        "items" : {
          "type" : "string"
        }
      } ],
      "additionalProperties" : false
    },
    "VisualAttributes" : {
      "type" : "object",
      "properties" : {
        "at" : {
          "$ref" : "#/$defs/VisualPoint"
        },
        "color" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "labelOffset" : {
          "$ref" : "#/$defs/VisualPoint"
        },
        "size" : {
          "$ref" : "#/$defs/VisualSize"
        }
      },
      "additionalProperties" : false
    },
    "VisualConnectorLabel" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "offset" : {
          "$ref" : "#/$defs/VisualPoint"
        },
        "segment" : {
          "type" : "number"
        }
      },
      "additionalProperties" : false
    },
    "VisualLane" : {
      "type" : "object",
      "properties" : {
        "lanes" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/VisualLane"
          }
        },
        "name" : {
          "type" : "string"
        },
        "offset" : {
          "type" : "integer"
        },
        "size" : {
          "type" : "integer"
        }
      },
      "additionalProperties" : false
    },
    "VisualLayout" : {
      "type" : "object",
      "properties" : {
        "color" : {
          "$ref" : "#/$defs/Map(String,String)"
        },
        "lanes" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/VisualLane"
          }
        }
      },
      "additionalProperties" : false
    },
    "VisualPoint" : {
      "type" : "object",
      "properties" : {
        "x" : {
          "type" : "integer"
        },
        "y" : {
          "type" : "integer"
        }
      },
      "additionalProperties" : false
    },
    "VisualSize" : {
      "type" : "object",
      "properties" : {
        "height" : {
          "type" : "integer"
        },
        "width" : {
          "type" : "integer"
        }
      },
      "additionalProperties" : false
    },
    "WfActivator" : {
      "type" : "object",
      "properties" : {
        "activator" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/WfActivatorType"
        }
      },
      "additionalProperties" : false
    },
    "WfActivatorType" : {
      "type" : "string",
      "enum" : [ "ROLE", "ROLE_FROM_ATTRIBUTE", "USER_FROM_ATTRIBUTE", "DELETE_TASK" ]
    },
    "WfCase" : {
      "type" : "object",
      "properties" : {
        "attachToBusinessCase" : {
          "type" : "boolean"
        },
        "category" : {
          "type" : "string"
        },
        "customFields" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/WfCustomField"
          }
        },
        "description" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "WfCustomField" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/WfFieldType"
        },
        "value" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "WfExpiry" : {
      "type" : "object",
      "properties" : {
        "error" : {
          "type" : "string"
        },
        "priority" : {
          "$ref" : "#/$defs/WfPriority"
        },
        "responsible" : {
          "$ref" : "#/$defs/WfActivator"
        },
        "timeout" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "WfFieldType" : {
      "type" : "string",
      "enum" : [ "STRING", "TEXT", "NUMBER", "TIMESTAMP" ]
    },
    "WfLevel" : {
      "type" : "string",
      "enum" : [ "EXCEPTION", "HIGH", "NORMAL", "LOW", "SCRIPT" ]
    },
    "WfPriority" : {
      "type" : "object",
      "properties" : {
        "level" : {
          "$ref" : "#/$defs/WfLevel"
        },
        "script" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "WfTask" : {
      "type" : "object",
      "properties" : {
        "category" : {
          "type" : "string"
        },
        "code" : {
          "type" : "string"
        },
        "customFields" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/WfCustomField"
          }
        },
        "delay" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "expiry" : {
          "$ref" : "#/$defs/WfExpiry"
        },
        "id" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "priority" : {
          "$ref" : "#/$defs/WfPriority"
        },
        "responsible" : {
          "$ref" : "#/$defs/WfActivator"
        },
        "skipTasklist" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    }
  }
}
