{
  "openapi": "3.1.0",
  "info": {
    "title": "mizan Server Functions",
    "version": "1.0.0",
    "description": "Auto-generated schema for mizan server functions"
  },
  "paths": {
    "/mizan/echo": {
      "post": {
        "operationId": "echo",
        "summary": "Call echo",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/echoOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/echoInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "websocket",
          "isContext": false
        }
      }
    },
    "/mizan/add": {
      "post": {
        "operationId": "add",
        "summary": "Call add",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/addInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "websocket",
          "isContext": false
        }
      }
    },
    "/mizan/whoami": {
      "post": {
        "operationId": "whoami",
        "summary": "Call whoami",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/whoamiOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/http_only_echo": {
      "post": {
        "operationId": "httpOnlyEcho",
        "summary": "Call http_only_echo",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/httpOnlyEchoOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/httpOnlyEchoInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/login.schema": {
      "post": {
        "operationId": "loginSchema",
        "summary": "Call login.schema",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loginSchemaOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/login.validate": {
      "post": {
        "operationId": "loginValidate",
        "summary": "Call login.validate",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loginValidateOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/loginValidateInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/login.submit": {
      "post": {
        "operationId": "loginSubmit",
        "summary": "Call login.submit",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loginSubmitOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/loginSubmitInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/signup.schema": {
      "post": {
        "operationId": "signupSchema",
        "summary": "Call signup.schema",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/signupSchemaOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/signup.validate": {
      "post": {
        "operationId": "signupValidate",
        "summary": "Call signup.validate",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/signupValidateOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/signupValidateInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/signup.submit": {
      "post": {
        "operationId": "signupSubmit",
        "summary": "Call signup.submit",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/signupSubmitOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/signupSubmitInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/add_email.schema": {
      "post": {
        "operationId": "addEmailSchema",
        "summary": "Call add_email.schema",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addEmailSchemaOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/add_email.validate": {
      "post": {
        "operationId": "addEmailValidate",
        "summary": "Call add_email.validate",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addEmailValidateOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/addEmailValidateInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/staff_only": {
      "post": {
        "operationId": "staffOnly",
        "summary": "Call staff_only",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/staffOnlyOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/superuser_only": {
      "post": {
        "operationId": "superuserOnly",
        "summary": "Call superuser_only",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/superuserOnlyOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/verified_only": {
      "post": {
        "operationId": "verifiedOnly",
        "summary": "Call verified_only",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/verifiedOnlyOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/current_user": {
      "post": {
        "operationId": "currentUser",
        "summary": "Call current_user",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/currentUserOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": "global"
        }
      }
    },
    "/mizan/greet": {
      "post": {
        "operationId": "greet",
        "summary": "Call greet",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/greetOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/greetInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": "local"
        }
      }
    },
    "/mizan/multiply": {
      "post": {
        "operationId": "multiply",
        "summary": "Call multiply",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/multiplyOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/multiplyInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/not_implemented_fn": {
      "post": {
        "operationId": "notImplementedFn",
        "summary": "Call not_implemented_fn",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notImplementedFnOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/buggy_fn": {
      "post": {
        "operationId": "buggyFn",
        "summary": "Call buggy_fn",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/buggyFnOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/permission_check_fn": {
      "post": {
        "operationId": "permissionCheckFn",
        "summary": "Call permission_check_fn",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/permissionCheckFnOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/permissionCheckFnInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/ws_whoami": {
      "post": {
        "operationId": "wsWhoami",
        "summary": "Call ws_whoami",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/wsWhoamiOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "websocket",
          "isContext": false
        }
      }
    },
    "/mizan/contact.schema": {
      "post": {
        "operationId": "contactSchema",
        "summary": "Call contact.schema",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contactSchemaOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/contactSchemaInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/contact.validate": {
      "post": {
        "operationId": "contactValidate",
        "summary": "Call contact.validate",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contactValidateOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/contactValidateInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/contact.submit": {
      "post": {
        "operationId": "contactSubmit",
        "summary": "\nSubmit function handles both JSON and multipart/form-data.\n\nThe executor detects form functions and parses the request appropriately.\n",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/contactSubmitOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/item.schema": {
      "post": {
        "operationId": "itemSchema",
        "summary": "Call item.schema",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/itemSchemaOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/itemSchemaInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/item.validate": {
      "post": {
        "operationId": "itemValidate",
        "summary": "Call item.validate",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/itemValidateOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/itemValidateInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/item.submit": {
      "post": {
        "operationId": "itemSubmit",
        "summary": "\nSubmit function handles both JSON and multipart/form-data.\n\nThe executor detects form functions and parses the request appropriately.\n",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/itemSubmitOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/item.formset.schema": {
      "post": {
        "operationId": "itemFormsetSchema",
        "summary": "Call item.formset.schema",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/itemFormsetSchemaOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/itemFormsetSchemaInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/item.formset.validate": {
      "post": {
        "operationId": "itemFormsetValidate",
        "summary": "Call item.formset.validate",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/itemFormsetValidateOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/itemFormsetValidateInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/item.formset.submit": {
      "post": {
        "operationId": "itemFormsetSubmit",
        "summary": "Call item.formset.submit",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/itemFormsetSubmitOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/itemFormsetSubmitInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/jwt_obtain": {
      "post": {
        "operationId": "jwtObtain",
        "summary": "\nObtain JWT tokens from an authenticated session.\n\nRequires session authentication (cookie or WebSocket session).\nReturns access and refresh tokens that can be used for stateless auth.\n\nThe tokens include user claims (is_staff, is_superuser) so that\nsubsequent JWT-authenticated requests don't need a database query.\n\nUsage:\n    const { access_token, refresh_token } = await call('jwt_obtain')\n    // Use access_token in Authorization: Bearer header\n",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/jwtObtainOutput"
                }
              }
            }
          }
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    },
    "/mizan/jwt_refresh": {
      "post": {
        "operationId": "jwtRefresh",
        "summary": "\nRefresh JWT tokens using a refresh token.\n\nDoes not require session authentication - the refresh token itself\ncontains the session reference and is validated against the session store.\n\nIf the original session has been destroyed (user logged out), this fails.\n\nUsage:\n    const { access_token, refresh_token } = await call('jwt_refresh', { refresh_token })\n",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/jwtRefreshOutput"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/jwtRefreshInput"
              }
            }
          },
          "required": true
        },
        "x-mizan": {
          "transport": "http",
          "isContext": false
        }
      }
    }
  },
  "components": {
    "schemas": {
      "echoOutput": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "title": "echoOutput",
        "type": "object"
      },
      "echoInput": {
        "properties": {
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "echoInput",
        "type": "object"
      },
      "addOutput": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "integer"
          }
        },
        "required": [
          "result"
        ],
        "title": "addOutput",
        "type": "object"
      },
      "addInput": {
        "properties": {
          "a": {
            "title": "A",
            "type": "integer"
          },
          "b": {
            "title": "B",
            "type": "integer"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "title": "addInput",
        "type": "object"
      },
      "whoamiOutput": {
        "properties": {
          "user_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "is_staff": {
            "title": "Is Staff",
            "type": "boolean"
          }
        },
        "required": [
          "user_id",
          "email",
          "is_staff"
        ],
        "title": "whoamiOutput",
        "type": "object"
      },
      "httpOnlyEchoOutput": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "title": "httpOnlyEchoOutput",
        "type": "object"
      },
      "httpOnlyEchoInput": {
        "properties": {
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "httpOnlyEchoInput",
        "type": "object"
      },
      "FormSchemaField": {
        "description": "Schema for a single form field.",
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "type": {
            "title": "Type",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "help_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Help Text"
          },
          "choices": {
            "anyOf": [
              {
                "items": {
                  "maxItems": 2,
                  "minItems": 2,
                  "prefixItems": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "string"
                    }
                  ],
                  "type": "array"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Choices"
          },
          "initial": {
            "title": "Initial"
          }
        },
        "required": [
          "name",
          "type",
          "required",
          "label"
        ],
        "title": "FormSchemaField",
        "type": "object"
      },
      "loginSchemaOutput": {
        "properties": {
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FormSchemaField"
            },
            "title": "Fields",
            "type": "array"
          }
        },
        "required": [
          "fields"
        ],
        "title": "loginSchemaOutput",
        "type": "object"
      },
      "loginValidateOutput": {
        "properties": {
          "valid": {
            "title": "Valid",
            "type": "boolean"
          },
          "errors": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Errors",
            "type": "object"
          }
        },
        "required": [
          "valid",
          "errors"
        ],
        "title": "loginValidateOutput",
        "type": "object"
      },
      "loginValidateInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "title": "loginValidateInput",
        "type": "object"
      },
      "loginSubmitOutput": {
        "properties": {},
        "title": "loginSubmitOutput",
        "type": "object"
      },
      "loginSubmitInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "title": "loginSubmitInput",
        "type": "object"
      },
      "signupSchemaOutput": {
        "properties": {
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FormSchemaField"
            },
            "title": "Fields",
            "type": "array"
          }
        },
        "required": [
          "fields"
        ],
        "title": "signupSchemaOutput",
        "type": "object"
      },
      "signupValidateOutput": {
        "properties": {
          "valid": {
            "title": "Valid",
            "type": "boolean"
          },
          "errors": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Errors",
            "type": "object"
          }
        },
        "required": [
          "valid",
          "errors"
        ],
        "title": "signupValidateOutput",
        "type": "object"
      },
      "signupValidateInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "title": "signupValidateInput",
        "type": "object"
      },
      "signupSubmitOutput": {
        "properties": {},
        "title": "signupSubmitOutput",
        "type": "object"
      },
      "signupSubmitInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "title": "signupSubmitInput",
        "type": "object"
      },
      "addEmailSchemaOutput": {
        "properties": {
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FormSchemaField"
            },
            "title": "Fields",
            "type": "array"
          }
        },
        "required": [
          "fields"
        ],
        "title": "addEmailSchemaOutput",
        "type": "object"
      },
      "addEmailValidateOutput": {
        "properties": {
          "valid": {
            "title": "Valid",
            "type": "boolean"
          },
          "errors": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Errors",
            "type": "object"
          }
        },
        "required": [
          "valid",
          "errors"
        ],
        "title": "addEmailValidateOutput",
        "type": "object"
      },
      "addEmailValidateInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "title": "addEmailValidateInput",
        "type": "object"
      },
      "staffOnlyOutput": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "title": "staffOnlyOutput",
        "type": "object"
      },
      "superuserOnlyOutput": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "title": "superuserOnlyOutput",
        "type": "object"
      },
      "verifiedOnlyOutput": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "title": "verifiedOnlyOutput",
        "type": "object"
      },
      "currentUserOutput": {
        "properties": {
          "authenticated": {
            "title": "Authenticated",
            "type": "boolean"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "is_staff": {
            "title": "Is Staff",
            "type": "boolean"
          }
        },
        "required": [
          "authenticated",
          "email",
          "is_staff"
        ],
        "title": "currentUserOutput",
        "type": "object"
      },
      "greetOutput": {
        "properties": {
          "greeting": {
            "title": "Greeting",
            "type": "string"
          }
        },
        "required": [
          "greeting"
        ],
        "title": "greetOutput",
        "type": "object"
      },
      "greetInput": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "greetInput",
        "type": "object"
      },
      "multiplyOutput": {
        "properties": {
          "product": {
            "title": "Product",
            "type": "integer"
          }
        },
        "required": [
          "product"
        ],
        "title": "multiplyOutput",
        "type": "object"
      },
      "multiplyInput": {
        "properties": {
          "x": {
            "title": "X",
            "type": "integer"
          },
          "y": {
            "title": "Y",
            "type": "integer"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "title": "multiplyInput",
        "type": "object"
      },
      "notImplementedFnOutput": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "title": "notImplementedFnOutput",
        "type": "object"
      },
      "buggyFnOutput": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "title": "buggyFnOutput",
        "type": "object"
      },
      "permissionCheckFnOutput": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "title": "permissionCheckFnOutput",
        "type": "object"
      },
      "permissionCheckFnInput": {
        "properties": {
          "secret": {
            "title": "Secret",
            "type": "string"
          }
        },
        "required": [
          "secret"
        ],
        "title": "permissionCheckFnInput",
        "type": "object"
      },
      "wsWhoamiOutput": {
        "properties": {
          "user_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "is_staff": {
            "title": "Is Staff",
            "type": "boolean"
          }
        },
        "required": [
          "user_id",
          "email",
          "is_staff"
        ],
        "title": "wsWhoamiOutput",
        "type": "object"
      },
      "FieldChoice": {
        "properties": {
          "value": {
            "title": "Value",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          }
        },
        "required": [
          "value",
          "label"
        ],
        "title": "FieldChoice",
        "type": "object"
      },
      "FieldSchema": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "type": {
            "title": "Type",
            "type": "string"
          },
          "widget": {
            "title": "Widget",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "disabled": {
            "title": "Disabled",
            "type": "boolean"
          },
          "help_text": {
            "title": "Help Text",
            "type": "string"
          },
          "initial": {
            "title": "Initial"
          },
          "max_length": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Length"
          },
          "min_length": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Length"
          },
          "choices": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FieldChoice"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Choices"
          }
        },
        "required": [
          "name",
          "label",
          "type",
          "widget",
          "required",
          "disabled",
          "help_text",
          "initial",
          "max_length",
          "min_length",
          "choices"
        ],
        "title": "FieldSchema",
        "type": "object"
      },
      "FormMeta": {
        "description": "Metadata controlling frontend form behavior.\n\nAttributes:\n    refetch_schema_on_validate: If True, frontend should refetch schema on each\n        validation (useful for dynamic choice fields). Default False.\n    live_validation: If False, frontend should disable live validation entirely.\n        Useful for sensitive forms like login. Default True.\n    live_form_errors: If True, show form-level errors during live validation.\n        Form errors are things like \"Invalid credentials\" vs field errors like\n        \"This field is required\". Default False for security.",
        "properties": {
          "refetch_schema_on_validate": {
            "default": false,
            "title": "Refetch Schema On Validate",
            "type": "boolean"
          },
          "live_validation": {
            "default": true,
            "title": "Live Validation",
            "type": "boolean"
          },
          "live_form_errors": {
            "default": false,
            "title": "Live Form Errors",
            "type": "boolean"
          }
        },
        "title": "FormMeta",
        "type": "object"
      },
      "contactSchemaOutput": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "subtitle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtitle"
          },
          "submit_label": {
            "title": "Submit Label",
            "type": "string"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FieldSchema"
            },
            "title": "Fields",
            "type": "array"
          },
          "meta": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FormMeta"
              }
            ],
            "default": {
              "refetch_schema_on_validate": false,
              "live_validation": true,
              "live_form_errors": false
            }
          }
        },
        "required": [
          "name",
          "title",
          "subtitle",
          "submit_label",
          "fields"
        ],
        "title": "contactSchemaOutput",
        "type": "object"
      },
      "contactSchemaInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "default": {},
            "title": "Data",
            "type": "object"
          }
        },
        "title": "contactSchemaInput",
        "type": "object"
      },
      "FieldError": {
        "properties": {
          "message": {
            "title": "Message",
            "type": "string"
          },
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          }
        },
        "required": [
          "message",
          "code"
        ],
        "title": "FieldError",
        "type": "object"
      },
      "FieldErrorList": {
        "properties": {
          "field": {
            "title": "Field",
            "type": "string"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/FieldError"
            },
            "title": "Errors",
            "type": "array"
          }
        },
        "required": [
          "field",
          "errors"
        ],
        "title": "FieldErrorList",
        "type": "object"
      },
      "contactValidateOutput": {
        "properties": {
          "errors": {
            "items": {
              "$ref": "#/components/schemas/FieldErrorList"
            },
            "title": "Errors",
            "type": "array"
          }
        },
        "required": [
          "errors"
        ],
        "title": "contactValidateOutput",
        "type": "object"
      },
      "contactValidateInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "title": "contactValidateInput",
        "type": "object"
      },
      "contactSubmitOutput": {
        "properties": {
          "success": {
            "title": "Success",
            "type": "boolean"
          },
          "data": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data"
          }
        },
        "required": [
          "success"
        ],
        "title": "contactSubmitOutput",
        "type": "object"
      },
      "itemSchemaOutput": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "subtitle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtitle"
          },
          "submit_label": {
            "title": "Submit Label",
            "type": "string"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FieldSchema"
            },
            "title": "Fields",
            "type": "array"
          },
          "meta": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FormMeta"
              }
            ],
            "default": {
              "refetch_schema_on_validate": false,
              "live_validation": true,
              "live_form_errors": false
            }
          }
        },
        "required": [
          "name",
          "title",
          "subtitle",
          "submit_label",
          "fields"
        ],
        "title": "itemSchemaOutput",
        "type": "object"
      },
      "itemSchemaInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "default": {},
            "title": "Data",
            "type": "object"
          }
        },
        "title": "itemSchemaInput",
        "type": "object"
      },
      "itemValidateOutput": {
        "properties": {
          "errors": {
            "items": {
              "$ref": "#/components/schemas/FieldErrorList"
            },
            "title": "Errors",
            "type": "array"
          }
        },
        "required": [
          "errors"
        ],
        "title": "itemValidateOutput",
        "type": "object"
      },
      "itemValidateInput": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "title": "itemValidateInput",
        "type": "object"
      },
      "itemSubmitOutput": {
        "properties": {
          "success": {
            "title": "Success",
            "type": "boolean"
          },
          "data": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data"
          }
        },
        "required": [
          "success"
        ],
        "title": "itemSubmitOutput",
        "type": "object"
      },
      "FormSchema": {
        "description": "Schema returned by /schema endpoint with form metadata and fields.",
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "subtitle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtitle"
          },
          "submit_label": {
            "title": "Submit Label",
            "type": "string"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FieldSchema"
            },
            "title": "Fields",
            "type": "array"
          },
          "meta": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FormMeta"
              }
            ],
            "default": {
              "refetch_schema_on_validate": false,
              "live_validation": true,
              "live_form_errors": false
            }
          }
        },
        "required": [
          "name",
          "title",
          "subtitle",
          "submit_label",
          "fields"
        ],
        "title": "FormSchema",
        "type": "object"
      },
      "itemFormsetSchemaOutput": {
        "properties": {
          "forms": {
            "items": {
              "$ref": "#/components/schemas/FormSchema"
            },
            "title": "Forms",
            "type": "array"
          },
          "min_num": {
            "title": "Min Num",
            "type": "integer"
          },
          "max_num": {
            "title": "Max Num",
            "type": "integer"
          },
          "can_delete": {
            "title": "Can Delete",
            "type": "boolean"
          },
          "can_order": {
            "title": "Can Order",
            "type": "boolean"
          }
        },
        "required": [
          "forms",
          "min_num",
          "max_num",
          "can_delete",
          "can_order"
        ],
        "title": "itemFormsetSchemaOutput",
        "type": "object"
      },
      "itemFormsetSchemaInput": {
        "properties": {
          "forms": {
            "default": [],
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Forms",
            "type": "array"
          }
        },
        "title": "itemFormsetSchemaInput",
        "type": "object"
      },
      "FormValidation": {
        "properties": {
          "errors": {
            "items": {
              "$ref": "#/components/schemas/FieldErrorList"
            },
            "title": "Errors",
            "type": "array"
          }
        },
        "required": [
          "errors"
        ],
        "title": "FormValidation",
        "type": "object"
      },
      "itemFormsetValidateOutput": {
        "properties": {
          "general": {
            "items": {
              "type": "string"
            },
            "title": "General",
            "type": "array"
          },
          "per_form": {
            "items": {
              "$ref": "#/components/schemas/FormValidation"
            },
            "title": "Per Form",
            "type": "array"
          }
        },
        "required": [
          "general",
          "per_form"
        ],
        "title": "itemFormsetValidateOutput",
        "type": "object"
      },
      "itemFormsetValidateInput": {
        "properties": {
          "forms": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Forms",
            "type": "array"
          }
        },
        "required": [
          "forms"
        ],
        "title": "itemFormsetValidateInput",
        "type": "object"
      },
      "itemFormsetSubmitOutput": {
        "properties": {
          "success": {
            "title": "Success",
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "title": "itemFormsetSubmitOutput",
        "type": "object"
      },
      "itemFormsetSubmitInput": {
        "properties": {
          "forms": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Forms",
            "type": "array"
          }
        },
        "required": [
          "forms"
        ],
        "title": "itemFormsetSubmitInput",
        "type": "object"
      },
      "jwtObtainOutput": {
        "properties": {
          "access_token": {
            "title": "Access Token",
            "type": "string"
          },
          "refresh_token": {
            "title": "Refresh Token",
            "type": "string"
          },
          "expires_in": {
            "title": "Expires In",
            "type": "integer"
          }
        },
        "required": [
          "access_token",
          "refresh_token",
          "expires_in"
        ],
        "title": "jwtObtainOutput",
        "type": "object"
      },
      "jwtRefreshOutput": {
        "properties": {
          "access_token": {
            "title": "Access Token",
            "type": "string"
          },
          "refresh_token": {
            "title": "Refresh Token",
            "type": "string"
          },
          "expires_in": {
            "title": "Expires In",
            "type": "integer"
          }
        },
        "required": [
          "access_token",
          "refresh_token",
          "expires_in"
        ],
        "title": "jwtRefreshOutput",
        "type": "object"
      },
      "jwtRefreshInput": {
        "properties": {
          "refresh_token": {
            "title": "Refresh Token",
            "type": "string"
          }
        },
        "required": [
          "refresh_token"
        ],
        "title": "jwtRefreshInput",
        "type": "object"
      }
    }
  },
  "servers": [],
  "x-mizan-functions": [
    {
      "name": "echo",
      "camelName": "echo",
      "hasInput": true,
      "inputType": "echoInput",
      "outputType": "echoOutput",
      "transport": "websocket",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "add",
      "camelName": "add",
      "hasInput": true,
      "inputType": "addInput",
      "outputType": "addOutput",
      "transport": "websocket",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "whoami",
      "camelName": "whoami",
      "hasInput": false,
      "inputType": null,
      "outputType": "whoamiOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "http_only_echo",
      "camelName": "httpOnlyEcho",
      "hasInput": true,
      "inputType": "httpOnlyEchoInput",
      "outputType": "httpOnlyEchoOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "login.schema",
      "camelName": "loginSchema",
      "hasInput": false,
      "inputType": null,
      "outputType": "loginSchemaOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "login",
      "formRole": "schema"
    },
    {
      "name": "login.validate",
      "camelName": "loginValidate",
      "hasInput": true,
      "inputType": "loginValidateInput",
      "outputType": "loginValidateOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "login",
      "formRole": "validate"
    },
    {
      "name": "login.submit",
      "camelName": "loginSubmit",
      "hasInput": true,
      "inputType": "loginSubmitInput",
      "outputType": "loginSubmitOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "login",
      "formRole": "submit"
    },
    {
      "name": "signup.schema",
      "camelName": "signupSchema",
      "hasInput": false,
      "inputType": null,
      "outputType": "signupSchemaOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "signup",
      "formRole": "schema"
    },
    {
      "name": "signup.validate",
      "camelName": "signupValidate",
      "hasInput": true,
      "inputType": "signupValidateInput",
      "outputType": "signupValidateOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "signup",
      "formRole": "validate"
    },
    {
      "name": "signup.submit",
      "camelName": "signupSubmit",
      "hasInput": true,
      "inputType": "signupSubmitInput",
      "outputType": "signupSubmitOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "signup",
      "formRole": "submit"
    },
    {
      "name": "add_email.schema",
      "camelName": "addEmailSchema",
      "hasInput": false,
      "inputType": null,
      "outputType": "addEmailSchemaOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "add_email",
      "formRole": "schema"
    },
    {
      "name": "add_email.validate",
      "camelName": "addEmailValidate",
      "hasInput": true,
      "inputType": "addEmailValidateInput",
      "outputType": "addEmailValidateOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "add_email",
      "formRole": "validate"
    },
    {
      "name": "staff_only",
      "camelName": "staffOnly",
      "hasInput": false,
      "inputType": null,
      "outputType": "staffOnlyOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "superuser_only",
      "camelName": "superuserOnly",
      "hasInput": false,
      "inputType": null,
      "outputType": "superuserOnlyOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "verified_only",
      "camelName": "verifiedOnly",
      "hasInput": false,
      "inputType": null,
      "outputType": "verifiedOnlyOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "current_user",
      "camelName": "currentUser",
      "hasInput": false,
      "inputType": null,
      "outputType": "currentUserOutput",
      "transport": "http",
      "isContext": "global",
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "greet",
      "camelName": "greet",
      "hasInput": true,
      "inputType": "greetInput",
      "outputType": "greetOutput",
      "transport": "http",
      "isContext": "local",
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "multiply",
      "camelName": "multiply",
      "hasInput": true,
      "inputType": "multiplyInput",
      "outputType": "multiplyOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "not_implemented_fn",
      "camelName": "notImplementedFn",
      "hasInput": false,
      "inputType": null,
      "outputType": "notImplementedFnOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "buggy_fn",
      "camelName": "buggyFn",
      "hasInput": false,
      "inputType": null,
      "outputType": "buggyFnOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "permission_check_fn",
      "camelName": "permissionCheckFn",
      "hasInput": true,
      "inputType": "permissionCheckFnInput",
      "outputType": "permissionCheckFnOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "ws_whoami",
      "camelName": "wsWhoami",
      "hasInput": false,
      "inputType": null,
      "outputType": "wsWhoamiOutput",
      "transport": "websocket",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "contact.schema",
      "camelName": "contactSchema",
      "hasInput": true,
      "inputType": "contactSchemaInput",
      "outputType": "contactSchemaOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "contact",
      "formRole": "schema",
      "formFields": [
        {
          "name": "name",
          "required": true,
          "constraints": {
            "max": 100
          },
          "zodType": "string"
        },
        {
          "name": "email",
          "required": true,
          "constraints": {
            "max": 320,
            "email": true
          },
          "zodType": "string"
        },
        {
          "name": "message",
          "required": true,
          "constraints": {},
          "zodType": "string"
        }
      ]
    },
    {
      "name": "contact.validate",
      "camelName": "contactValidate",
      "hasInput": true,
      "inputType": "contactValidateInput",
      "outputType": "contactValidateOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "contact",
      "formRole": "validate"
    },
    {
      "name": "contact.submit",
      "camelName": "contactSubmit",
      "hasInput": false,
      "inputType": null,
      "outputType": "contactSubmitOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "contact",
      "formRole": "submit"
    },
    {
      "name": "item.schema",
      "camelName": "itemSchema",
      "hasInput": true,
      "inputType": "itemSchemaInput",
      "outputType": "itemSchemaOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "item",
      "formRole": "schema",
      "formFields": [
        {
          "name": "label",
          "required": true,
          "constraints": {
            "max": 50
          },
          "zodType": "string"
        },
        {
          "name": "quantity",
          "required": true,
          "constraints": {
            "int": true,
            "min": 1
          },
          "zodType": "number"
        }
      ]
    },
    {
      "name": "item.validate",
      "camelName": "itemValidate",
      "hasInput": true,
      "inputType": "itemValidateInput",
      "outputType": "itemValidateOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "item",
      "formRole": "validate"
    },
    {
      "name": "item.submit",
      "camelName": "itemSubmit",
      "hasInput": false,
      "inputType": null,
      "outputType": "itemSubmitOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "item",
      "formRole": "submit"
    },
    {
      "name": "item.formset.schema",
      "camelName": "itemFormsetSchema",
      "hasInput": true,
      "inputType": "itemFormsetSchemaInput",
      "outputType": "itemFormsetSchemaOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "item",
      "formRole": "formset_schema"
    },
    {
      "name": "item.formset.validate",
      "camelName": "itemFormsetValidate",
      "hasInput": true,
      "inputType": "itemFormsetValidateInput",
      "outputType": "itemFormsetValidateOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "item",
      "formRole": "formset_validate"
    },
    {
      "name": "item.formset.submit",
      "camelName": "itemFormsetSubmit",
      "hasInput": true,
      "inputType": "itemFormsetSubmitInput",
      "outputType": "itemFormsetSubmitOutput",
      "transport": "http",
      "isContext": false,
      "isForm": true,
      "formName": "item",
      "formRole": "formset_submit"
    },
    {
      "name": "jwt_obtain",
      "camelName": "jwtObtain",
      "hasInput": false,
      "inputType": null,
      "outputType": "jwtObtainOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    },
    {
      "name": "jwt_refresh",
      "camelName": "jwtRefresh",
      "hasInput": true,
      "inputType": "jwtRefreshInput",
      "outputType": "jwtRefreshOutput",
      "transport": "http",
      "isContext": false,
      "isForm": false,
      "formName": null,
      "formRole": null
    }
  ],
  "x-mizan-contexts": {
    "global": {
      "functions": [
        "current_user"
      ],
      "params": {}
    },
    "local": {
      "functions": [
        "greet"
      ],
      "params": {
        "name": {
          "type": "string",
          "sharedBy": [
            "greet"
          ],
          "required": true
        }
      }
    }
  }
}