{
  "name": "xanots",
  "version": "2.0.23",
  "description": "TypeScript SDK that compiles a typed Xano workspace into the importable packageExport JSON bundle.",
  "coverage": {
    "objectKinds": {
      "implemented": 24,
      "total": 30,
      "unmodeled": [
        {
          "kind": "branch",
          "absence": "instance-owned: a branch is instance state, not workspace source"
        },
        {
          "kind": "market_item",
          "absence": "instance-owned: marketplace provenance belongs to the instance that installed it"
        },
        {
          "kind": "realtime_channel",
          "absence": "unmodeled: the SUPERSEDED workspace-global realtime channel. Its trigger is authorable (`realtimeTrigger`) so a legacy workspace's handlers survive a pull, but the channel object itself is not — author a `realtimeServer` + `realtimeChannel` instead"
        },
        {
          "kind": "run.job",
          "absence": "unmodeled: a container job — declares a main entrypoint plus pre/post steps and its env"
        },
        {
          "kind": "run.service",
          "absence": "unmodeled: a long-running container service — declares a pre step and its env"
        },
        {
          "kind": "tablemap",
          "absence": "unmodeled: a column mapping over a table, used to shape an external schema onto it"
        }
      ]
    },
    "statements": {
      "implemented": 214,
      "total": 214
    },
    "filters": {
      "typed": 226,
      "total": 226
    }
  },
  "values": {
    "constructors": [
      {
        "name": "c.text",
        "signature": "(s: string) => Value",
        "description": "String constant → tag \"const\"."
      },
      {
        "name": "c.int",
        "signature": "(n: number | bigint | string) => Value",
        "description": "Integer constant → tag \"const:int\". The engine stores integers as STRINGS and has no 53-bit limit, so pass a string or bigint for anything past Number.MAX_SAFE_INTEGER — c.int(\"18446744073709551615\") is exact where the number literal for it is already …616. A number that is not a safe integer THROWS rather than encoding the rounded value."
      },
      {
        "name": "c.decimal",
        "signature": "(n: number | string) => Value",
        "description": "Decimal constant → tag \"const:decimal\". Pass a string only to keep a stored spelling a number cannot reproduce (c.decimal(\"10.00\") keeps its trailing zeros)."
      },
      {
        "name": "c.blank",
        "signature": "(tag: \"const:<type>\") => Value",
        "description": "The editor's UNCONFIGURED value box (stored value \"\"), emitted by codegen for a pulled workspace — do not author it. NOT a zero or an empty collection: the engine reads \"\" and \"0\" differently, so c.blank(\"const:int\") ≠ c.int(0) and neither canonicalizes into the other. Constant tags except const/const:obj, whose blanks are c.text(\"\")/c.obj(null)."
      },
      {
        "name": "c.bool",
        "signature": "(b: boolean) => Value",
        "description": "Boolean constant → tag \"const:bool\"."
      },
      {
        "name": "c.null",
        "signature": "(tag?: \"const:null\" | \"const:obj\") => Value",
        "description": "Null constant, stored value \"null\". Bare c.null() is tag \"const:null\". c.null(\"const:obj\") is the OBJECT-TYPED null the engine writes into a db.* statement's @meta slot — different stored bytes from c.obj(null), which is the blank object (value \"\"), though both evaluate to null. Codegen emits whichever spelling the workspace stored; do not swap one for the other."
      },
      {
        "name": "c.obj",
        "signature": "(o?: Json | null) => Value",
        "description": "Object constant → tag \"const:obj\". A populated one stores an empty {} carrying one `set` filter per key — the editor's form, and the only populated form the engine reads back (a populated JSON string arrives truncated and fails the request with ERROR_FATAL \"Unable to decode.\"). ⚠ a ZERO-BASED numeric key is an INDEX in the engine's data model, so c.obj({\"0\":\"a\"}) evaluates to the list [\"a\"] (a non-zero-based one like {\"2\":…} survives as a key) — that is the platform, not this encoding. No argument = the empty object {} — use this one. Explicit null = the legacy blank form the engine evaluates to null, NOT {}; it exists only so a pulled workspace round-trips, do not author it. Plain JSON literals only — a nested tagged value (inp/ref/auth/c.*) is rejected; for a computed object response use a record of values, not c.obj."
      },
      {
        "name": "c.array",
        "signature": "(a: Json[]) => Value",
        "description": "Array constant (JSON string) → tag \"const:array\". Plain JSON literals only — a nested tagged value is rejected, same as c.obj."
      },
      {
        "name": "c.expression",
        "signature": "(source: string) => Value",
        "description": "Xano Expression Engine source, passed through VERBATIM → tag \"const:expr2\". The string IS the expression: c.expression('\"Hi, \" ~ $input.name'), c.expression(\"$var.price * $var.qty\"). ⚠️ NOT VALIDATED — never parsed or type-checked, invisible to InferResponse, and untouched by a rename that updates every typed ref(); a typo surfaces at runtime or as a wrong answer. Use it ONLY for syntax the typed surfaces cannot express (~ concatenation, inline arithmetic, conditionals) — prefer ref/inp/col, withFilters+fl.*, and obj() (which BUILDS a checked expression). Not the expr() condition builder."
      },
      {
        "name": "c.expressionLegacy",
        "signature": "(source: string) => Value",
        "legacy": true,
        "description": "the older `const:expr` expression form, emitted by codegen for workspaces that still hold one — author `c.expression` instead."
      },
      {
        "name": "c.now",
        "signature": "() => Value",
        "description": "Current time as epoch-ms — the engine-native const:epochms constant (no filter). Valid inline as a where/cmp operand. For cutoff math (cutoff = now - max_age) either compare inline or, for reuse/readability, hoist it into an s.set_var and compare against the var."
      },
      {
        "name": "obj",
        "signature": "(fields: Record<string, Value | nested>) => ObjValue<typeof fields>",
        "description": "Dynamic object value → tag \"const:expr2\" (an object-literal expression string). The dynamic sibling of c.obj: members may be inp/ref/auth/col values, env()/setting()/sys.*, c.now(), c.* constants, nested records, or arrays — and each member may carry a FILTER CHAIN (withFilters + fl.*), which renders as the expression pipe `$var.row|get:\"a.b\"`. That matters most for the null-safe drill: db.get binds null on a miss, so ref(path, { safe: true }) inside an obj() is the normal shape, not a workaround — you do NOT need a preceding s.set_var to hoist it. The member record rides the return type, so InferResponse resolves each member the way it resolves a top-level response key — `response: { user: obj({ id: ref(\"row.id\") }) }` derives `{ user: { id: Col | null } }`, and a raw nested object literal (`response: { user: { id: ref(\"row.id\") } }`, auto-wrapped through this) derives the same. NEST WITH A RAW RECORD, not an inner obj() call: an inner call yields a const:expr2 value, which the expression serializer has no spelling for and THROWS. Still rejected: a filter ARGUMENT carrying its own chain (a trailing | binds to the whole value, not one argument), a DISABLED filter (an expression string cannot record that), and the output/response/toolset/reg tags — build those in a prior step and ref() them. Use for e.g. s.ai.agent.run args."
      },
      {
        "name": "ref",
        "signature": "(name: string, opts?: { safe?: boolean }) => Value",
        "description": "Reference a stack variable → tag \"var\". Pass { safe: true } for null-safe nested access — a dotted ref(\"owner.user_id\", { safe: true }) compiles through the get filter so it resolves to null instead of raising \"Unable to locate var\" when the base is null."
      },
      {
        "name": "inp",
        "signature": "(name: string) => Value",
        "description": "Reference a function/endpoint input → tag \"input\". Resolves ONLY against the `input` block of the def it sits in — a value produced earlier in the stack is `ref(\"var.field\")`, not `inp(\"field\")`. A name that is not declared here deploys clean and fails at runtime with ERROR_FATAL \"Unable to locate input: <name>\" on every branch that reads it; `export()` warns, and `--strict` fails the build. Sending the name in the request does NOT rescue it — an undeclared input is never bound, so the call fails identically with the value present. A dotted path drills INTO a declared input (`inp(\"action.amount\")` needs a declared `action`)."
      },
      {
        "name": "col",
        "signature": "(name: string) => Value",
        "description": "Reference a table column → tag \"col\"."
      },
      {
        "name": "auth",
        "signature": "(path?: string) => Value",
        "description": "Reference the authenticated identity (auth(\"id\") → $auth.id) → tag \"auth\"."
      },
      {
        "name": "caught",
        "signature": "(path?: \"code\" | \"message\" | \"name\" | \"result\") => Value",
        "description": "Read the caught error inside an s.try_catch CATCH arm → tag \"trycatch\". Valid ONLY there — it reads empty in the try/finally arms and outside the statement. Those four fields are all the engine binds (result is the attached payload); bare caught() is the whole error record. ⚠ For an ENGINE-raised exception only `code` and `name` are populated; for an `s.throw`, `message` is the fixed string \"Throw Error Statement\" and your text is in `result`. So `caught(\"name\")` is useful in both cases and `caught(\"message\")` in NEITHER."
      },
      {
        "name": "toolset",
        "signature": "(path: \"token\" | \"params\" | `params.${string}`) => Value",
        "description": "Read a toolset-scoped binding inside a tool → tag \"toolset\". The engine binds two: token (the calling URL's token, null when absent) and params (its parameters, as an object); a dotted params.<key> reads one parameter out of that object. Bound only while a tool runs under its toolset — anywhere else it reads empty."
      },
      {
        "name": "env",
        "signature": "(name: string) => Value",
        "description": "Read a WORKSPACE environment variable (set via workspaceConfig({ env }) or the dashboard) → `$env.NAME`. Compiles to tag \"setting\" with the plain name. env(\"remote_ip\") reads a user var named remote_ip, not the caller IP — use sys.remoteIp() for that."
      },
      {
        "name": "setting",
        "signature": "(name: string) => Value",
        "description": "Reference a workspace setting → tag \"setting\". Built-in system vars are $-prefixed settings, e.g. setting(\"$remote_ip\"); prefer the typed sys.* accessors."
      },
      {
        "name": "sys.*",
        "signature": "() => Value",
        "description": "Built-in system / request-context variables → tag \"setting\" ($-prefixed). Accessors: remoteIp, requestMethod, requestUri, requestQueryString, httpHeaders, requestAuthToken, apiBaseUrl, datasource, branch, tenant, release, platform, isDebugger. In XanoScript these are $env.$remote_ip etc.; sys.remoteIp() is the public-endpoint rate-limit key (auth(\"id\") is null there)."
      },
      {
        "name": "filter",
        "signature": "(name: string, ...args: Value[]) => FilterXdo",
        "description": "Build a filter-chain entry by raw name (escape hatch)."
      },
      {
        "name": "fl.*",
        "signature": "(...args: Value[]) => FilterXdo",
        "description": "Typed value-pipeline filters; see the `filters` catalog."
      },
      {
        "name": "withFilters",
        "signature": "(value: Value, ...filters: FilterXdo[]) => Value",
        "description": "Attach a filter chain to a value (filters passed spread; an array is also accepted)."
      }
    ],
    "tags": [
      "const",
      "const:int",
      "const:decimal",
      "const:bool",
      "const:array",
      "const:obj",
      "const:null",
      "const:epochms",
      "const:expr",
      "const:expr2",
      "var",
      "input",
      "auth",
      "env",
      "setting",
      "col",
      "output",
      "response",
      "trycatch",
      "toolset"
    ]
  },
  "objectKinds": [
    {
      "kind": "function",
      "payloadKey": "function",
      "authorFactory": "defineFunction",
      "description": "Reusable server-side logic (a custom function) callable from any stack via `s.function.run`.",
      "registerMethod": "registerFunctions",
      "registered": true
    },
    {
      "kind": "table",
      "payloadKey": "dbo",
      "authorFactory": "table",
      "description": "A database table: typed columns (`f.*`), indexes, and views; the schema other kinds read and write.",
      "registerMethod": "registerTables",
      "registered": true
    },
    {
      "kind": "query",
      "payloadKey": "query",
      "authorFactory": "query",
      "description": "An HTTP API endpoint (verb + path) bound to an API group; the main request/response surface.",
      "registerMethod": "registerQueries",
      "registered": true
    },
    {
      "kind": "api_group",
      "payloadKey": "app",
      "authorFactory": "apiGroup",
      "description": "A container that groups queries under a shared base path, CORS, and swagger config.",
      "registerMethod": "registerApiGroups",
      "registered": true
    },
    {
      "kind": "trigger",
      "payloadKey": "trigger",
      "authorFactory": "{tableTrigger,realtimeServerTrigger,realtimeChannelTrigger,mcpServerTrigger,agentTrigger,workspaceTrigger,errorTrigger}",
      "description": "An event-driven handler fired by a DB write, a realtime server connection or channel join/leave/deliver, an MCP/agent connection, a branch lifecycle event, or an error — inputs are implied by type and arrive on the `t` handle.",
      "registerMethod": "registerTriggers",
      "subKinds": [
        {
          "authorFactory": "tableTrigger",
          "objType": "database",
          "description": "Fires when rows change on a bound table (insert/update/delete/truncate). The changed row is exposed as `t.new`/`t.old`, typed to the table when a `table()` handle is bound. Config-only (no response). `search` filters rows in the DATABASE, so it uses `col(\"NEW.x\")`/`col(\"OLD.x\")`, not `t`; invalid with `truncate`, and insert/delete cannot read the absent side."
        },
        {
          "authorFactory": "realtimeTrigger",
          "objType": "workspace_realtime_channel",
          "legacy": true,
          "description": "the SUPERSEDED realtime trigger, against the workspace-global realtime layer — a different object from the current `channel`, despite the similar name. For a join hook use `realtimeChannelTrigger({ actions: { join: true } })`; for message handling use a `realtimeMessage()` handler, which is the current equivalent of its `message` action (a message is an authored unit now, not a trigger action)."
        },
        {
          "authorFactory": "realtimeServerTrigger",
          "objType": "realtime_server",
          "description": "Fires when a client connects to or disconnects from a realtime server; inspect the connecting client and its permissions via `t`. Bind with `realtimeServer`. Response-bearing."
        },
        {
          "authorFactory": "realtimeChannelTrigger",
          "objType": "channel",
          "description": "Fires when a client joins or leaves a channel; inspect the addressed channel path and the client via `t`. Bind with a `realtimeChannel()` handle (a bare path is ambiguous across servers). Response-bearing."
        },
        {
          "authorFactory": "mcpServerTrigger",
          "objType": "toolset",
          "description": "Fires when an MCP client connects to a bound MCP server; gate or annotate the exposed tools via `t.toolset`/`t.tools`. Response-bearing."
        },
        {
          "authorFactory": "agentTrigger",
          "objType": "toolset",
          "description": "Fires when a client connects to a bound agent; gate or annotate its toolset via `t.toolset`/`t.tools`. Response-bearing."
        },
        {
          "authorFactory": "workspaceTrigger",
          "objType": "workspace",
          "description": "Fires on branch lifecycle events (branch new/merge/live); inspect the from/to branch and action via `t`. Config-only."
        },
        {
          "authorFactory": "errorTrigger",
          "objType": "error",
          "description": "Fires when an error signature is first seen, regresses, or is marked fixed; inspect the error, caller, statement, and occurrence counts via `t`. Config-only."
        }
      ],
      "registered": true
    },
    {
      "kind": "tool",
      "payloadKey": "tool",
      "authorFactory": "tool",
      "description": "An agent/MCP tool: a callable capability with typed inputs an AI agent can invoke.",
      "registerMethod": "registerTools",
      "registered": true
    },
    {
      "kind": "mcp_server",
      "payloadKey": "toolset",
      "authorFactory": "mcpServer",
      "description": "An MCP server exposing a set of tools to external MCP clients.",
      "registerMethod": "registerMcpServers",
      "registered": true
    },
    {
      "kind": "agent",
      "payloadKey": "toolset",
      "authorFactory": "agent",
      "description": "An AI agent: an LLM configuration plus the tools it can call. Invoke it from any stack (query/function/task/tool/trigger) with `s.ai.agent.run` — no public endpoint; the result is a rich envelope whose completion text is at `.result`.",
      "registerMethod": "registerAgents",
      "registered": true
    },
    {
      "kind": "task",
      "payloadKey": "task",
      "authorFactory": "task",
      "description": "A scheduled background job (cron/interval) that runs a stack on a timer.",
      "registerMethod": "registerTasks",
      "registered": true
    },
    {
      "kind": "workflow_test",
      "payloadKey": "workflow_test",
      "authorFactory": "workflowTest",
      "description": "An end-to-end test: a named stack with NO input and NO response that invokes other objects (`s.function.call`, `s.task.call`, `s.api.call`) and asserts on what they bind with `s.expect.*`. `datasource` defaults to `\"\"` (an EMPTY datasource, recommended); naming one makes the engine CLONE that datasource before every run, so pointing a test at production-sized data can be slow enough to fail the run — `\"live\"` warns at compile time.",
      "registerMethod": "registerWorkflowTests",
      "registered": true
    },
    {
      "kind": "middleware",
      "payloadKey": "middleware",
      "authorFactory": "middleware",
      "description": "A reusable pre/post stack attached to a query/function/task/tool/API group to run before or after its own logic.",
      "registerMethod": "registerMiddleware",
      "registered": true
    },
    {
      "kind": "addon",
      "payloadKey": "addon",
      "authorFactory": "addon",
      "description": "A reusable read fragment that enriches a query result by joining related table data.",
      "registerMethod": "registerAddons",
      "registered": true
    },
    {
      "kind": "realtime_server",
      "payloadKey": "realtime_server",
      "authorFactory": "realtimeServer",
      "description": "A realtime (websocket) server: the canonical-addressed container that owns realtime channels. Off until `enabled: true`. Returns a handle with `getUrl(baseUrl)`/`getPath()` for the client's socket URL (`wss://<host>/ws/<canonical>`).",
      "registerMethod": "registerRealtimeServers",
      "registered": true
    },
    {
      "kind": "channel",
      "payloadKey": "channel",
      "authorFactory": "realtimeChannel",
      "description": "A realtime channel: a joinable path on a realtime server (`rooms/{room_id}`) with typed path params, join/publish policy, a client-visible conversation transcript, and delivery semantics. Owns message handlers. Returns a handle with `getChannel(params)` for the path a client joins.",
      "registerMethod": "registerRealtimeChannels",
      "registered": true
    },
    {
      "kind": "message",
      "payloadKey": "message",
      "authorFactory": "realtimeMessage",
      "description": "A realtime message handler: a named message type on a channel with its own typed payload and stack — the realtime analogue of a query. Pass the `realtimeChannel()` handle as `channel` and the owning server comes with it.",
      "registerMethod": "registerRealtimeMessages",
      "registered": true
    },
    {
      "kind": "microservice",
      "payloadKey": "microservice",
      "authorFactory": "microservice",
      "description": "A container workload deployed alongside the workspace, called from a stack with `s.microservice.request`. Two mutually exclusive shapes via `kind`: `builtin` declares containers (image/ports/resources/env/command/args) plus optional `ingresses`, and `helm` points at a chart and its `values` — passing both throws. EARLY SURFACE, expected to change — every export of a workspace declaring one prints a notice saying so. `configs`/`volumes` are typed and `@deprecated` but NOT deployable: the engine rejects an import carrying either, so `export()` fails the build rather than letting the deploy fatal. Put a value the workload reads in a container's `env`, and storage in a container's own `volumes` (`emptyDir`/`persistent`/`config`). Container names are free-form — they need not match the microservice name, which is what a stack addresses. SECRETS RIDE ALONG — `chart.values` and `registryAuth.dockerconfigjson` are carried into the bundle, and into a pulled tree, verbatim (they must be, or a pulled microservice could not be redeployed). Both are stored strings with NO deploy-time indirection: `process.env.X` in the def resolves at EXPORT and writes the literal into the bundle, so it is not a way to keep the credential out. Either leave `registryAuth` unset (public image, or a credential attached outside this workspace) or treat the bundle and any pulled tree as secret material — keep them out of git, or rotate after. Export prints a notice per microservice carrying either field; `--strict` does not promote it. For a secret a STACK reads, the mapped surface is `workspaceConfig({ env })` + `env(\"NAME\")`.",
      "registerMethod": "registerMicroservices",
      "registered": true
    },
    {
      "kind": "workspace",
      "payloadKey": "workspace",
      "authorFactory": "workspaceConfig",
      "description": "Workspace-level configuration such as default middleware chains and request-history defaults per host kind.",
      "registerMethod": "registerWorkspace",
      "registered": true
    }
  ],
  "fieldTypes": [
    {
      "name": "text",
      "stored": "text",
      "methods": [
        "alphaOk",
        "digitOk",
        "lower",
        "max",
        "min",
        "ok",
        "pattern",
        "startsWith",
        "trim",
        "upper"
      ]
    },
    {
      "name": "int",
      "stored": "int",
      "methods": [
        "max",
        "min"
      ]
    },
    {
      "name": "decimal",
      "stored": "decimal",
      "methods": [
        "max",
        "min"
      ]
    },
    {
      "name": "bool",
      "stored": "bool",
      "methods": []
    },
    {
      "name": "uuid",
      "stored": "uuid",
      "methods": []
    },
    {
      "name": "date",
      "stored": "date",
      "methods": []
    },
    {
      "name": "email",
      "stored": "email",
      "methods": [
        "lower",
        "trim"
      ]
    },
    {
      "name": "password",
      "stored": "password",
      "methods": [
        "max",
        "min",
        "minAlpha",
        "minDigit",
        "minLowerAlpha",
        "minSymbol",
        "minUpperAlpha",
        "salt"
      ]
    },
    {
      "name": "json",
      "stored": "json",
      "methods": []
    },
    {
      "name": "timestamp",
      "stored": "epochms",
      "methods": []
    },
    {
      "name": "image",
      "stored": "blob_img",
      "methods": []
    },
    {
      "name": "video",
      "stored": "blob_video",
      "methods": []
    },
    {
      "name": "audio",
      "stored": "blob_audio",
      "methods": []
    },
    {
      "name": "attachment",
      "stored": "blob",
      "methods": []
    },
    {
      "name": "file",
      "stored": "file",
      "methods": [],
      "inputOnly": true
    },
    {
      "name": "dbLink",
      "stored": "<tableGuid>_mvpschema",
      "methods": [],
      "inputOnly": true
    },
    {
      "name": "geo.point",
      "stored": "geo_point",
      "methods": []
    },
    {
      "name": "geo.multipoint",
      "stored": "geo_multipoint",
      "methods": []
    },
    {
      "name": "geo.linestring",
      "stored": "geo_linestring",
      "methods": []
    },
    {
      "name": "geo.multilinestring",
      "stored": "geo_multilinestring",
      "methods": []
    },
    {
      "name": "geo.polygon",
      "stored": "geo_polygon",
      "methods": []
    },
    {
      "name": "geo.multipolygon",
      "stored": "geo_multipolygon",
      "methods": []
    },
    {
      "name": "enum",
      "stored": "enum",
      "methods": []
    },
    {
      "name": "vector",
      "stored": "vector",
      "methods": [
        "max",
        "min"
      ]
    },
    {
      "name": "object",
      "stored": "obj",
      "methods": []
    },
    {
      "name": "tableRef",
      "stored": "int",
      "methods": [
        "max",
        "min"
      ]
    }
  ],
  "statements": [
    {
      "surface": "action.call",
      "storedName": "mvp:action",
      "sPath": "action.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "action.package.call",
      "storedName": "mvp:action_package",
      "sPath": "action.package.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "addon.call",
      "storedName": "mvp:workspace_run_addon",
      "sPath": "addon.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "ai.agent.run",
      "storedName": "mvp:call_agent",
      "sPath": "ai.agent.run",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "ai.external.mcp.server_details",
      "storedName": "mvp:mcp_server_details",
      "sPath": "ai.external.mcp.server_details",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "url",
          "type": "value",
          "optional": true
        },
        {
          "name": "bearer_token",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "connection_type",
          "type": "value",
          "optional": true,
          "default": "sse",
          "enum": [
            "sse",
            "stream"
          ]
        }
      ]
    },
    {
      "surface": "ai.external.mcp.tool.list",
      "storedName": "mvp:mcp_list_tools",
      "sPath": "ai.external.mcp.tool.list",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "url",
          "type": "value",
          "optional": true
        },
        {
          "name": "bearer_token",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "connection_type",
          "type": "value",
          "optional": true,
          "default": "sse",
          "enum": [
            "sse",
            "stream"
          ]
        }
      ]
    },
    {
      "surface": "ai.external.mcp.tool.run",
      "storedName": "mvp:mcp_call_tool",
      "sPath": "ai.external.mcp.tool.run",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "url",
          "type": "value",
          "optional": true
        },
        {
          "name": "bearer_token",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "connection_type",
          "type": "value",
          "optional": true,
          "default": "sse",
          "enum": [
            "sse",
            "stream"
          ]
        },
        {
          "name": "tool",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "args",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "api.call",
      "storedName": "mvp:workspace_run_endpoint",
      "sPath": "api.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "api.realtime_event",
      "storedName": "mvp:realtime_event",
      "sPath": "api.realtime_event",
      "registered": true,
      "declarative": false,
      "legacy": true
    },
    {
      "surface": "api.request",
      "storedName": "mvp:api_request",
      "sPath": "api.request",
      "registered": true,
      "declarative": false,
      "output": true
    },
    {
      "surface": "api.stream",
      "storedName": "mvp:streaming_api_response",
      "sPath": "api.stream",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "array.difference",
      "storedName": "mvp:array_difference",
      "sPath": "array.difference",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": "[]"
        },
        {
          "name": "by",
          "type": "value",
          "optional": true,
          "default": "null"
        }
      ]
    },
    {
      "surface": "array.every",
      "storedName": "mvp:array_every",
      "sPath": "array.every",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "if",
          "type": "comparison",
          "optional": true,
          "default": "null"
        }
      ],
      "result": {
        "name": "as",
        "type": "boolean"
      }
    },
    {
      "surface": "array.filter_count",
      "storedName": "mvp:array_filter_count",
      "sPath": "array.filter_count",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "if",
          "type": "comparison",
          "optional": true,
          "default": "null"
        }
      ]
    },
    {
      "surface": "array.filter",
      "storedName": "mvp:array_filter",
      "sPath": "array.filter",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "if",
          "type": "comparison",
          "optional": true,
          "default": "null"
        }
      ]
    },
    {
      "surface": "array.find_index",
      "storedName": "mvp:array_find_index",
      "sPath": "array.find_index",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "if",
          "type": "comparison",
          "optional": true,
          "default": "null"
        }
      ]
    },
    {
      "surface": "array.find",
      "storedName": "mvp:array_find",
      "sPath": "array.find",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "if",
          "type": "comparison",
          "optional": true,
          "default": "null"
        }
      ]
    },
    {
      "surface": "array.group_by",
      "storedName": "mvp:array_group_by",
      "sPath": "array.group_by",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "by",
          "type": "value",
          "optional": true,
          "default": "null"
        }
      ]
    },
    {
      "surface": "array.has",
      "storedName": "mvp:array_has",
      "sPath": "array.has",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "if",
          "type": "comparison",
          "optional": true,
          "default": "null"
        }
      ]
    },
    {
      "surface": "array.intersection",
      "storedName": "mvp:array_intersection",
      "sPath": "array.intersection",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": "[]"
        },
        {
          "name": "by",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "array.map",
      "storedName": "mvp:array_map",
      "sPath": "array.map",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "array.merge",
      "storedName": "mvp:array_merge",
      "sPath": "array.merge",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "array.partition",
      "storedName": "mvp:array_partition",
      "sPath": "array.partition",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "if",
          "type": "comparison",
          "optional": true,
          "default": "null"
        }
      ]
    },
    {
      "surface": "array.pop",
      "storedName": "mvp:array_pop",
      "sPath": "array.pop",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "array.push",
      "storedName": "mvp:array_push",
      "sPath": "array.push",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "array.shift",
      "storedName": "mvp:array_shift",
      "sPath": "array.shift",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "array.union",
      "storedName": "mvp:array_union",
      "sPath": "array.union",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "array.unshift",
      "storedName": "mvp:array_unshift",
      "sPath": "array.unshift",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "await",
      "storedName": "mvp:async_function_await",
      "sPath": "await",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "ids",
          "type": "value",
          "optional": true,
          "default": "[]"
        },
        {
          "name": "timeout",
          "type": "value",
          "optional": true,
          "default": "10"
        }
      ]
    },
    {
      "surface": "break",
      "storedName": "mvp:foreach_break",
      "sPath": "foreach_break",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "cloud.algolia.request",
      "storedName": "mvp:algolia_request",
      "sPath": "cloud.algolia.request",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "application_id",
          "type": "value",
          "optional": false
        },
        {
          "name": "api_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "url",
          "type": "value",
          "optional": false
        },
        {
          "name": "method",
          "type": "value",
          "optional": true,
          "enum": [
            "POST",
            "GET",
            "DELETE",
            "PUT"
          ]
        },
        {
          "name": "payload",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.aws.opensearch.document",
      "storedName": "mvp:amazon_opensearch_document",
      "sPath": "cloud.aws.opensearch.document",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "auth_type",
          "type": "value",
          "optional": true,
          "default": "IAM",
          "enum": [
            "IAM",
            "master"
          ]
        },
        {
          "name": "key_id",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "access_key",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "region",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "base_url",
          "type": "value",
          "optional": false
        },
        {
          "name": "method",
          "type": "value",
          "optional": true,
          "default": "GET",
          "enum": [
            "GET",
            "POST",
            "PUT",
            "DELETE"
          ]
        },
        {
          "name": "index",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "doc_id",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "doc",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "cloud.aws.opensearch.query",
      "storedName": "mvp:amazon_opensearch_query",
      "sPath": "cloud.aws.opensearch.query",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "auth_type",
          "type": "value",
          "optional": true,
          "default": "IAM",
          "enum": [
            "IAM",
            "master"
          ]
        },
        {
          "name": "key_id",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "access_key",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "region",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "base_url",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "index",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "payload",
          "type": "value",
          "optional": true,
          "default": "{}"
        },
        {
          "name": "size",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "from",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "included_fields",
          "type": "value",
          "optional": true,
          "default": "[]"
        },
        {
          "name": "return_type",
          "type": "value",
          "optional": true,
          "default": "search",
          "enum": [
            "search",
            "count"
          ]
        },
        {
          "name": "expression",
          "type": "value",
          "optional": true,
          "default": "[]"
        },
        {
          "name": "sort",
          "type": "value",
          "optional": true,
          "default": "[]"
        }
      ]
    },
    {
      "surface": "cloud.aws.opensearch.request",
      "storedName": "mvp:amazon_opensearch_request",
      "sPath": "cloud.aws.opensearch.request",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "auth_type",
          "type": "value",
          "optional": true,
          "default": "IAM",
          "enum": [
            "IAM",
            "master"
          ]
        },
        {
          "name": "key_id",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "access_key",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "region",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "method",
          "type": "value",
          "optional": true,
          "default": "GET",
          "enum": [
            "GET",
            "POST",
            "PUT",
            "DELETE",
            "HEAD",
            "OPTIONS",
            "PATCH"
          ]
        },
        {
          "name": "url",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "query",
          "type": "value",
          "optional": true,
          "default": "{}"
        }
      ]
    },
    {
      "surface": "cloud.aws.s3.delete_file",
      "storedName": "mvp:amazon_s3_delete_file",
      "sPath": "cloud.aws.s3.delete_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "region",
          "type": "value",
          "optional": false
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "secret",
          "type": "value",
          "optional": false
        },
        {
          "name": "file_key",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.aws.s3.get_file_info",
      "storedName": "mvp:amazon_s3_get_file_metadata",
      "sPath": "cloud.aws.s3.get_file_info",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "region",
          "type": "value",
          "optional": false
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "secret",
          "type": "value",
          "optional": false
        },
        {
          "name": "file_key",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.aws.s3.list_directory",
      "storedName": "mvp:amazon_s3_list_directory",
      "sPath": "cloud.aws.s3.list_directory",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "region",
          "type": "value",
          "optional": false
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "secret",
          "type": "value",
          "optional": false
        },
        {
          "name": "prefix",
          "type": "value",
          "optional": true
        },
        {
          "name": "next_page_token",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "cloud.aws.s3.read_file",
      "storedName": "mvp:amazon_s3_create_var_from_file_resource",
      "sPath": "cloud.aws.s3.read_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "region",
          "type": "value",
          "optional": false
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "secret",
          "type": "value",
          "optional": false
        },
        {
          "name": "file_key",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.aws.s3.sign_url",
      "storedName": "mvp:amazon_s3_signed_url",
      "sPath": "cloud.aws.s3.sign_url",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "region",
          "type": "value",
          "optional": false
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "secret",
          "type": "value",
          "optional": false
        },
        {
          "name": "file_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "ttl",
          "type": "value",
          "optional": true,
          "default": "300"
        }
      ]
    },
    {
      "surface": "cloud.aws.s3.upload_file",
      "storedName": "mvp:amazon_s3_upload_file",
      "sPath": "cloud.aws.s3.upload_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "region",
          "type": "value",
          "optional": false
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "secret",
          "type": "value",
          "optional": false
        },
        {
          "name": "file_key",
          "type": "value",
          "optional": true
        },
        {
          "name": "file",
          "type": "value",
          "optional": false
        },
        {
          "name": "metadata",
          "type": "value",
          "optional": true
        },
        {
          "name": "object_lock_mode",
          "type": "value",
          "optional": true,
          "enum": [
            "compliance",
            "governance"
          ]
        },
        {
          "name": "object_lock_retain_until",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "cloud.azure.storage.delete_file",
      "storedName": "mvp:azure_blob_storage_delete_file",
      "sPath": "cloud.azure.storage.delete_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "account_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "account_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "container_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.azure.storage.get_file_info",
      "storedName": "mvp:azure_blob_storage_get_file_metadata",
      "sPath": "cloud.azure.storage.get_file_info",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "account_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "account_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "container_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.azure.storage.list_directory",
      "storedName": "mvp:azure_blob_storage_list_directory",
      "sPath": "cloud.azure.storage.list_directory",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "account_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "account_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "container_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "path",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "cloud.azure.storage.read_file",
      "storedName": "mvp:azure_blob_storage_create_var_from_file_resource",
      "sPath": "cloud.azure.storage.read_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "account_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "account_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "container_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.azure.storage.sign_url",
      "storedName": "mvp:azure_blob_storage_signed_url",
      "sPath": "cloud.azure.storage.sign_url",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "account_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "account_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "container_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "path",
          "type": "value",
          "optional": false
        },
        {
          "name": "ttl",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "cloud.azure.storage.upload_file",
      "storedName": "mvp:azure_blob_storage_upload_file",
      "sPath": "cloud.azure.storage.upload_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "account_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "account_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "container_name",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        },
        {
          "name": "file",
          "type": "value",
          "optional": false
        },
        {
          "name": "metadata",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "cloud.elasticsearch.document",
      "storedName": "mvp:elasticsearch_document",
      "sPath": "cloud.elasticsearch.document",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "auth_type",
          "type": "value",
          "optional": true,
          "default": "API Key",
          "enum": [
            "Basic",
            "Bearer",
            "API Key"
          ]
        },
        {
          "name": "key_id",
          "type": "value",
          "optional": false
        },
        {
          "name": "access_key",
          "type": "value",
          "optional": false
        },
        {
          "name": "base_url",
          "type": "value",
          "optional": false
        },
        {
          "name": "index",
          "type": "value",
          "optional": false
        },
        {
          "name": "method",
          "type": "value",
          "optional": true,
          "default": "GET",
          "enum": [
            "GET",
            "POST",
            "PUT",
            "DELETE"
          ]
        },
        {
          "name": "doc_id",
          "type": "value",
          "optional": false
        },
        {
          "name": "doc",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.elasticsearch.query",
      "storedName": "mvp:elasticsearch_query",
      "sPath": "cloud.elasticsearch.query",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "auth_type",
          "type": "value",
          "optional": true,
          "default": "API Key",
          "enum": [
            "Basic",
            "Bearer",
            "API Key"
          ]
        },
        {
          "name": "key_id",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "access_key",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "base_url",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "index",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "payload",
          "type": "value",
          "optional": true,
          "default": "{}"
        },
        {
          "name": "size",
          "type": "value",
          "optional": true,
          "default": "null"
        },
        {
          "name": "from",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "included_fields",
          "type": "value",
          "optional": true,
          "default": "[]"
        },
        {
          "name": "return_type",
          "type": "value",
          "optional": true,
          "default": "search",
          "enum": [
            "search",
            "count"
          ]
        },
        {
          "name": "expression",
          "type": "value",
          "optional": true,
          "default": "[]"
        },
        {
          "name": "sort",
          "type": "value",
          "optional": true,
          "default": "[]"
        }
      ]
    },
    {
      "surface": "cloud.elasticsearch.request",
      "storedName": "mvp:elasticsearch_request",
      "sPath": "cloud.elasticsearch.request",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "auth_type",
          "type": "value",
          "optional": true,
          "default": "API Key",
          "enum": [
            "Basic",
            "Bearer",
            "API Key"
          ]
        },
        {
          "name": "key_id",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "access_key",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "method",
          "type": "value",
          "optional": true,
          "default": "POST",
          "enum": [
            "POST",
            "GET",
            "PUT",
            "DELETE",
            "PATCH"
          ]
        },
        {
          "name": "url",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "payload",
          "type": "value",
          "optional": true,
          "default": "{}"
        }
      ]
    },
    {
      "surface": "cloud.google.storage.delete_file",
      "storedName": "mvp:google_cloud_storage_delete_file",
      "sPath": "cloud.google.storage.delete_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "service_account",
          "type": "value",
          "optional": false
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.google.storage.get_file_info",
      "storedName": "mvp:google_cloud_storage_get_file_metadata",
      "sPath": "cloud.google.storage.get_file_info",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "service_account",
          "type": "value",
          "optional": false
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.google.storage.list_directory",
      "storedName": "mvp:google_cloud_storage_list_directory",
      "sPath": "cloud.google.storage.list_directory",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "service_account",
          "type": "value",
          "optional": false
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "path",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.google.storage.read_file",
      "storedName": "mvp:google_cloud_storage_create_var_from_file_resource",
      "sPath": "cloud.google.storage.read_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "service_account",
          "type": "value",
          "optional": false
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "cloud.google.storage.sign_url",
      "storedName": "mvp:google_cloud_storage_signed_url",
      "sPath": "cloud.google.storage.sign_url",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "service_account",
          "type": "value",
          "optional": false
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        },
        {
          "name": "method",
          "type": "value",
          "optional": true,
          "enum": [
            "GET",
            "POST"
          ]
        },
        {
          "name": "ttl",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "cloud.google.storage.upload_file",
      "storedName": "mvp:google_cloud_storage_upload_file",
      "sPath": "cloud.google.storage.upload_file",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "service_account",
          "type": "value",
          "optional": false
        },
        {
          "name": "bucket",
          "type": "value",
          "optional": false
        },
        {
          "name": "filePath",
          "type": "value",
          "optional": false
        },
        {
          "name": "file",
          "type": "value",
          "optional": false
        },
        {
          "name": "metadata",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "cloud.job.await",
      "storedName": "mvp:cloud_job_await",
      "sPath": "cloud.job.await",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "cloud.job.status",
      "storedName": "mvp:cloud_job_status",
      "sPath": "cloud.job.status",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "cloud.job",
      "storedName": "mvp:cloud_job",
      "sPath": "cloud.job",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "comment",
      "storedName": "mvp:comment",
      "sPath": "comment",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "conditional",
      "storedName": "mvp:conditional",
      "sPath": "conditional",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "continue",
      "storedName": "mvp:foreach_continue",
      "sPath": "foreach_continue",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "datadog.log_bulk",
      "storedName": "mvp:datadog_log_bulk",
      "sPath": "datadog.log_bulk",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "entries",
          "type": "value",
          "optional": false
        },
        {
          "name": "connection",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "datadog.log",
      "storedName": "mvp:datadog_log",
      "sPath": "datadog.log",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "message",
          "type": "value",
          "optional": true
        },
        {
          "name": "status",
          "type": "value",
          "optional": true,
          "enum": [
            "debug",
            "info",
            "notice",
            "warn",
            "error",
            "critical",
            "alert",
            "emergency"
          ]
        },
        {
          "name": "attributes",
          "type": "value",
          "optional": true
        },
        {
          "name": "service",
          "type": "value",
          "optional": true
        },
        {
          "name": "source",
          "type": "value",
          "optional": true
        },
        {
          "name": "env",
          "type": "value",
          "optional": true
        },
        {
          "name": "hostname",
          "type": "value",
          "optional": true
        },
        {
          "name": "tags",
          "type": "value",
          "optional": true
        },
        {
          "name": "timestamp",
          "type": "value",
          "optional": true
        },
        {
          "name": "connection",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "datadog.metric_bulk",
      "storedName": "mvp:datadog_metric_bulk",
      "sPath": "datadog.metric_bulk",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "entries",
          "type": "value",
          "optional": false
        },
        {
          "name": "connection",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "datadog.metric",
      "storedName": "mvp:datadog_metric",
      "sPath": "datadog.metric",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "metric",
          "type": "value",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "type",
          "type": "value",
          "optional": true,
          "enum": [
            "count",
            "gauge",
            "rate",
            "histogram",
            "distribution"
          ]
        },
        {
          "name": "tags",
          "type": "value",
          "optional": true
        },
        {
          "name": "service",
          "type": "value",
          "optional": true
        },
        {
          "name": "source",
          "type": "value",
          "optional": true
        },
        {
          "name": "env",
          "type": "value",
          "optional": true
        },
        {
          "name": "hostname",
          "type": "value",
          "optional": true
        },
        {
          "name": "timestamp",
          "type": "value",
          "optional": true
        },
        {
          "name": "connection",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "db.add_or_edit",
      "storedName": "mvp:dbo_addoreditby",
      "sPath": "db.add_or_edit",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "InferRow<T>",
        "note": "upserts and never misses"
      }
    },
    {
      "surface": "db.add",
      "storedName": "mvp:dbo_add",
      "sPath": "db.add",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "InferRow<T>",
        "note": "the full inserted row incl. id/created_at"
      }
    },
    {
      "surface": "db.bulk.add",
      "storedName": "mvp:dbo_bulkadd",
      "sPath": "db.bulk.add",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.bulk.delete",
      "storedName": "mvp:dbo_bulkdelete",
      "sPath": "db.bulk.delete",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "number",
        "note": "count of deleted rows"
      }
    },
    {
      "surface": "db.bulk.patch",
      "storedName": "mvp:dbo_bulkpatch",
      "sPath": "db.bulk.patch",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "InferRow<T>[]"
      }
    },
    {
      "surface": "db.bulk.update",
      "storedName": "mvp:dbo_bulkupdate",
      "sPath": "db.bulk.update",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.del",
      "storedName": "mvp:dbo_delby",
      "sPath": "db.del",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "null",
        "note": "the engine deletes and returns no value; throws NotFound on a miss"
      }
    },
    {
      "surface": "db.direct_query",
      "storedName": "mvp:dbo_direct_query",
      "sPath": "db.direct_query",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.edit",
      "storedName": "mvp:dbo_editby",
      "sPath": "db.edit",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "InferRow<T>",
        "note": "the full post-mutation row; throws NotFound on a miss"
      }
    },
    {
      "surface": "db.external.mssql.direct_query",
      "storedName": "mvp:dbo_external_mssql_query",
      "sPath": "db.external.mssql.direct_query",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.external.mysql.direct_query",
      "storedName": "mvp:dbo_external_mysql_query",
      "sPath": "db.external.mysql.direct_query",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.external.oracle.direct_query",
      "storedName": "mvp:dbo_external_oracle_query",
      "sPath": "db.external.oracle.direct_query",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.external.postgres.direct_query",
      "storedName": "mvp:dbo_external_postgres_query",
      "sPath": "db.external.postgres.direct_query",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.external.snowflake.direct_query",
      "storedName": "mvp:dbo_external_snowflake_query",
      "sPath": "db.external.snowflake.direct_query",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.get_by_id",
      "storedName": "mvp:dbo_get",
      "sPath": "db.get_by_id",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.get",
      "storedName": "mvp:dbo_getby",
      "sPath": "db.get",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "InferRow<T> | null",
        "note": "binds null on a miss, never throws"
      }
    },
    {
      "surface": "db.has",
      "storedName": "mvp:dbo_hasby",
      "sPath": "db.has",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "boolean"
      }
    },
    {
      "surface": "db.patch",
      "storedName": "mvp:dbo_patch",
      "sPath": "db.patch",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "InferRow<T>",
        "note": "the full post-mutation row; throws NotFound on a miss"
      }
    },
    {
      "surface": "db.query",
      "storedName": "mvp:dbo_view",
      "sPath": "db.query",
      "registered": true,
      "declarative": false,
      "result": {
        "name": "as",
        "type": "InferRow<T>[]",
        "note": "a paging envelope when metadata paging is on"
      }
    },
    {
      "surface": "db.schema",
      "storedName": "mvp:dbo_get_schema",
      "sPath": "db.schema",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.set_datasource",
      "storedName": "mvp:set_data_source",
      "sPath": "db.set_datasource",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "workspace_id",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "db.transaction",
      "storedName": "mvp:db_transaction",
      "sPath": "db.transaction",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "db.truncate",
      "storedName": "mvp:dbo_truncate",
      "sPath": "db.truncate",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "debug.log",
      "storedName": "mvp:debug_log",
      "sPath": "debug.log",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "debug.stop",
      "storedName": "mvp:die",
      "sPath": "debug.stop",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "for",
      "storedName": "mvp:for",
      "sPath": "for",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "foreach.remove",
      "storedName": "mvp:foreach_remove",
      "sPath": "foreach_remove",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "foreach",
      "storedName": "mvp:foreach",
      "sPath": "foreach",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "function.call",
      "storedName": "mvp:workspace_run_function",
      "sPath": "function.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "function.run",
      "storedName": "mvp:function",
      "sPath": "function.run",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "group",
      "storedName": "mvp:group",
      "sPath": "group",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "lambda",
      "storedName": "mvp:lambda",
      "sPath": "lambda",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "code",
          "type": "value",
          "optional": true
        },
        {
          "name": "timeout",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "math.add",
      "storedName": "mvp:math_add",
      "sPath": "math.add",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ],
      "result": {
        "name": "as",
        "type": "number"
      }
    },
    {
      "surface": "math.bitwise.and",
      "storedName": "mvp:bitwise_and",
      "sPath": "math.bitwise.and",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ],
      "result": {
        "name": "as",
        "type": "number"
      }
    },
    {
      "surface": "math.bitwise.or",
      "storedName": "mvp:bitwise_or",
      "sPath": "math.bitwise.or",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ],
      "result": {
        "name": "as",
        "type": "number"
      }
    },
    {
      "surface": "math.bitwise.xor",
      "storedName": "mvp:bitwise_xor",
      "sPath": "math.bitwise.xor",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ],
      "result": {
        "name": "as",
        "type": "number"
      }
    },
    {
      "surface": "math.div",
      "storedName": "mvp:math_div",
      "sPath": "math.div",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "math.mod",
      "storedName": "mvp:math_mod",
      "sPath": "math.mod",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "math.mul",
      "storedName": "mvp:math_mul",
      "sPath": "math.mul",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "math.sub",
      "storedName": "mvp:math_sub",
      "sPath": "math.sub",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "middleware.call",
      "storedName": "mvp:workspace_run_middleware",
      "sPath": "middleware.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "microservice.request",
      "storedName": "mvp:microservice_request",
      "sPath": "microservice.request",
      "registered": true,
      "declarative": false,
      "output": false
    },
    {
      "surface": "object.entries",
      "storedName": "mvp:object_entries",
      "sPath": "object.entries",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ],
      "result": {
        "name": "as",
        "type": "[string, unknown][]"
      }
    },
    {
      "surface": "object.keys",
      "storedName": "mvp:object_keys",
      "sPath": "object.keys",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ],
      "result": {
        "name": "as",
        "type": "string[]"
      }
    },
    {
      "surface": "object.values",
      "storedName": "mvp:object_values",
      "sPath": "object.values",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ],
      "result": {
        "name": "as",
        "type": "unknown[]"
      }
    },
    {
      "surface": "precondition",
      "storedName": "mvp:precondition",
      "sPath": "precondition",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "comparison",
          "optional": true,
          "default": "null"
        },
        {
          "name": "error_type",
          "type": "string",
          "optional": true,
          "default": "standard",
          "enum": [
            "standard",
            "notfound",
            "toomanyrequests",
            "accessdenied",
            "unauthorized",
            "badrequest",
            "inputerror"
          ]
        },
        {
          "name": "error",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "payload",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "realtime.get_session",
      "storedName": "mvp:get_session",
      "sPath": "realtime.get_session",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "realtime.publish",
      "storedName": "mvp:realtime_publish",
      "sPath": "realtime.publish",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "redis.count",
      "storedName": "mvp:redis_countlist",
      "sPath": "redis.count",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "redis.decr",
      "storedName": "mvp:redis_decr",
      "sPath": "redis.decr",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "by",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "redis.del",
      "storedName": "mvp:redis_del",
      "sPath": "redis.del",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "key",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "redis.get",
      "storedName": "mvp:redis_get",
      "sPath": "redis.get",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "redis.has",
      "storedName": "mvp:redis_has",
      "sPath": "redis.has",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "redis.incr",
      "storedName": "mvp:redis_incr",
      "sPath": "redis.incr",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "by",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "redis.keys",
      "storedName": "mvp:redis_keys",
      "sPath": "redis.keys",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "search",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "redis.pop",
      "storedName": "mvp:redis_poplist",
      "sPath": "redis.pop",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "count",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "redis.push",
      "storedName": "mvp:redis_pushlist",
      "sPath": "redis.push",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "redis.range",
      "storedName": "mvp:redis_rangelist",
      "sPath": "redis.range",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "start",
          "type": "value",
          "optional": true
        },
        {
          "name": "stop",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "redis.ratelimit",
      "storedName": "mvp:redis_ratelimit",
      "sPath": "redis.ratelimit",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "max",
          "type": "value",
          "optional": true
        },
        {
          "name": "ttl",
          "type": "value",
          "optional": true
        },
        {
          "name": "error",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "redis.remove",
      "storedName": "mvp:redis_remove_list",
      "sPath": "redis.remove",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "count",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "redis.set",
      "storedName": "mvp:redis_set",
      "sPath": "redis.set",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "data",
          "type": "value",
          "optional": false
        },
        {
          "name": "ttl",
          "type": "value",
          "optional": true
        },
        {
          "name": "create_only",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "redis.shift",
      "storedName": "mvp:redis_shiftlist",
      "sPath": "redis.shift",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "count",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "redis.unshift",
      "storedName": "mvp:redis_unshiftlist",
      "sPath": "redis.unshift",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": false
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "return",
      "storedName": "mvp:return",
      "sPath": "return",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "security.check_password",
      "storedName": "mvp:check_pass",
      "sPath": "security.check_password",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "text_password",
          "type": "value",
          "optional": true
        },
        {
          "name": "hash_password",
          "type": "value",
          "optional": true
        }
      ],
      "result": {
        "name": "as",
        "type": "boolean",
        "note": "true when the plaintext matches the stored hash. ⚠ input.password double-hashes — pass input.text() plaintext"
      }
    },
    {
      "surface": "security.create_auth_token",
      "storedName": "mvp:create_auth",
      "sPath": "security.create_auth_token",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "security.create_curve_key",
      "storedName": "mvp:crypto_create_ec_key",
      "sPath": "security.create_curve_key",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "curve",
          "type": "value",
          "optional": true,
          "enum": [
            "P-256",
            "P-384",
            "P-521"
          ]
        },
        {
          "name": "format",
          "type": "value",
          "optional": true,
          "enum": [
            "object",
            "base64"
          ]
        }
      ]
    },
    {
      "surface": "security.create_guid",
      "storedName": "mvp:guid",
      "sPath": "security.create_guid",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "security.create_password",
      "storedName": "mvp:generate_pass",
      "sPath": "security.create_password",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "character_count",
          "type": "value",
          "optional": true
        },
        {
          "name": "require_lowercase",
          "type": "value",
          "optional": true
        },
        {
          "name": "require_uppercase",
          "type": "value",
          "optional": true
        },
        {
          "name": "require_digit",
          "type": "value",
          "optional": true
        },
        {
          "name": "require_symbol",
          "type": "value",
          "optional": true
        },
        {
          "name": "symbol_whitelist",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.create_rsa_key",
      "storedName": "mvp:crypto_create_rsa_key",
      "sPath": "security.create_rsa_key",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "bits",
          "type": "value",
          "optional": true
        },
        {
          "name": "format",
          "type": "value",
          "optional": true,
          "enum": [
            "object",
            "base64"
          ]
        }
      ]
    },
    {
      "surface": "security.create_secret_key",
      "storedName": "mvp:crypto_create_octet_key",
      "sPath": "security.create_secret_key",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "bits",
          "type": "value",
          "optional": true
        },
        {
          "name": "format",
          "type": "value",
          "optional": true,
          "enum": [
            "object",
            "base64"
          ]
        }
      ]
    },
    {
      "surface": "security.create_uuid",
      "storedName": "mvp:uuid4",
      "sPath": "security.create_uuid",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.decrypt",
      "storedName": "mvp:crypto_decrypt",
      "sPath": "security.decrypt",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "data",
          "type": "value",
          "optional": true
        },
        {
          "name": "algorithm",
          "type": "value",
          "optional": true,
          "enum": [
            "aes-128-cbc",
            "aes-192-cbc",
            "aes-256-cbc",
            "aes-128-gcm",
            "aes-192-gcm",
            "aes-256-gcm"
          ]
        },
        {
          "name": "key",
          "type": "value",
          "optional": true
        },
        {
          "name": "iv",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.encrypt",
      "storedName": "mvp:crypto_encrypt",
      "sPath": "security.encrypt",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "data",
          "type": "value",
          "optional": true
        },
        {
          "name": "algorithm",
          "type": "value",
          "optional": true,
          "enum": [
            "aes-128-cbc",
            "aes-192-cbc",
            "aes-256-cbc",
            "aes-128-gcm",
            "aes-192-gcm",
            "aes-256-gcm"
          ]
        },
        {
          "name": "key",
          "type": "value",
          "optional": true
        },
        {
          "name": "iv",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.jwe_decode",
      "storedName": "mvp:crypto_jwe_decode2",
      "sPath": "security.jwe_decode",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "token",
          "type": "value",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": true
        },
        {
          "name": "check_claims",
          "type": "value",
          "optional": true
        },
        {
          "name": "key_algorithm",
          "type": "value",
          "optional": true,
          "enum": [
            "A128KW",
            "A192KW",
            "A256KW",
            "A128GCMKW",
            "A192GCMKW",
            "A256GCMKW",
            "ECDH-ES+A128KW",
            "ECDH-ES+A192KW",
            "ECDH-ES+A256KW"
          ]
        },
        {
          "name": "content_algorithm",
          "type": "value",
          "optional": true,
          "enum": [
            "A128GCM",
            "A192GCM",
            "A256GCM",
            "A128CBC-HS256",
            "A192CBC-HS384",
            "A256CBC-HS512"
          ]
        },
        {
          "name": "timeDrift",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.jwe_encode",
      "storedName": "mvp:crypto_jwe_encode3",
      "sPath": "security.jwe_encode",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "headers",
          "type": "value",
          "optional": true
        },
        {
          "name": "claims",
          "type": "value",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": true
        },
        {
          "name": "key_algorithm",
          "type": "value",
          "optional": true,
          "enum": [
            "A128KW",
            "A192KW",
            "A256KW",
            "A128GCMKW",
            "A192GCMKW",
            "A256GCMKW",
            "ECDH-ES+A128KW",
            "ECDH-ES+A192KW",
            "ECDH-ES+A256KW"
          ]
        },
        {
          "name": "content_algorithm",
          "type": "value",
          "optional": true,
          "enum": [
            "A128GCM",
            "A192GCM",
            "A256GCM",
            "A128CBC-HS256",
            "A192CBC-HS384",
            "A256CBC-HS512"
          ]
        },
        {
          "name": "ttl",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.jws_decode",
      "storedName": "mvp:crypto_jws_decode2",
      "sPath": "security.jws_decode",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "token",
          "type": "value",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": true
        },
        {
          "name": "check_claims",
          "type": "value",
          "optional": true
        },
        {
          "name": "signature_algorithm",
          "type": "value",
          "optional": true,
          "enum": [
            "PS256",
            "PS384",
            "PS512",
            "RS256",
            "RS384",
            "RS512",
            "HS256",
            "HS384",
            "HS512",
            "ES256",
            "ES384",
            "ES512"
          ]
        },
        {
          "name": "timeDrift",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.jws_encode",
      "storedName": "mvp:crypto_jws_encode2",
      "sPath": "security.jws_encode",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "headers",
          "type": "value",
          "optional": true
        },
        {
          "name": "claims",
          "type": "value",
          "optional": true
        },
        {
          "name": "key",
          "type": "value",
          "optional": true
        },
        {
          "name": "signature_algorithm",
          "type": "value",
          "optional": true,
          "enum": [
            "PS256",
            "PS384",
            "PS512",
            "RS256",
            "RS384",
            "RS512",
            "HS256",
            "HS384",
            "HS512",
            "ES256",
            "ES384",
            "ES512"
          ]
        },
        {
          "name": "ttl",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.random_bytes",
      "storedName": "mvp:random_bytes",
      "sPath": "security.random_bytes",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "length",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "security.random_number",
      "storedName": "mvp:rand",
      "sPath": "security.random_number",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "min",
          "type": "value",
          "optional": true
        },
        {
          "name": "max",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_defined",
      "storedName": "mvp:test_expect_to_be_defined",
      "sPath": "expect.to_be_defined",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_empty",
      "storedName": "mvp:test_expect_to_be_empty",
      "sPath": "expect.to_be_empty",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_false",
      "storedName": "mvp:test_expect_to_be_false",
      "sPath": "expect.to_be_false",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_greater_than",
      "storedName": "mvp:test_expect_to_be_greater_than",
      "sPath": "expect.to_be_greater_than",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_in_the_future",
      "storedName": "mvp:test_expect_to_be_in_the_future",
      "sPath": "expect.to_be_in_the_future",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_in_the_past",
      "storedName": "mvp:test_expect_to_be_in_the_past",
      "sPath": "expect.to_be_in_the_past",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_less_than",
      "storedName": "mvp:test_expect_to_be_less_than",
      "sPath": "expect.to_be_less_than",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_null",
      "storedName": "mvp:test_expect_to_be_null",
      "sPath": "expect.to_be_null",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_true",
      "storedName": "mvp:test_expect_to_be_true",
      "sPath": "expect.to_be_true",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_be_within",
      "storedName": "mvp:test_expect_to_be_within",
      "sPath": "expect.to_be_within",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "min",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "max",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_contain",
      "storedName": "mvp:test_expect_to_contain",
      "sPath": "expect.to_contain",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_end_with",
      "storedName": "mvp:test_expect_to_end_with",
      "sPath": "expect.to_end_with",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_equal",
      "storedName": "mvp:test_expect_to_equal",
      "sPath": "expect.to_equal",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_match",
      "storedName": "mvp:test_expect_to_match",
      "sPath": "expect.to_match",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_not_be_defined",
      "storedName": "mvp:test_expect_to_not_be_defined",
      "sPath": "expect.to_not_be_defined",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_not_be_null",
      "storedName": "mvp:test_expect_to_not_be_null",
      "sPath": "expect.to_not_be_null",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_not_equal",
      "storedName": "mvp:test_expect_to_not_equal",
      "sPath": "expect.to_not_equal",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_start_with",
      "storedName": "mvp:test_expect_to_start_with",
      "sPath": "expect.to_start_with",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "expr",
          "type": "value",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "stack|expect.to_throw",
      "storedName": "mvp:test_expect_to_throw",
      "sPath": "expect.to_throw",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "storage.create_attachment",
      "storedName": "mvp:create_attachment",
      "sPath": "storage.create_attachment",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "access",
          "type": "string",
          "optional": true,
          "default": "public",
          "enum": [
            "public",
            "private"
          ]
        },
        {
          "name": "filename",
          "type": "value",
          "optional": true
        },
        {
          "name": "include_meta",
          "type": "boolean",
          "optional": true
        },
        {
          "name": "type",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "storage.create_audio",
      "storedName": "mvp:create_audio",
      "sPath": "storage.create_audio",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "access",
          "type": "string",
          "optional": true,
          "default": "public",
          "enum": [
            "public",
            "private"
          ]
        },
        {
          "name": "filename",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "storage.create_file_resource",
      "storedName": "mvp:create_file_resource",
      "sPath": "storage.create_file_resource",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "filename",
          "type": "value",
          "optional": false
        },
        {
          "name": "filedata",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "storage.create_image",
      "storedName": "mvp:create_image",
      "sPath": "storage.create_image",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "access",
          "type": "string",
          "optional": true,
          "default": "public",
          "enum": [
            "public",
            "private"
          ]
        },
        {
          "name": "filename",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "storage.create_video",
      "storedName": "mvp:create_video",
      "sPath": "storage.create_video",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "access",
          "type": "string",
          "optional": true,
          "default": "public",
          "enum": [
            "public",
            "private"
          ]
        },
        {
          "name": "filename",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "storage.delete_file",
      "storedName": "mvp:delete_file",
      "sPath": "storage.delete_file",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "pathname",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "storage.read_file_resource",
      "storedName": "mvp:create_var_from_file_resource",
      "sPath": "storage.read_file_resource",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "storage.sign_private_url",
      "storedName": "mvp:vault_sign_url",
      "sPath": "storage.sign_private_url",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "pathname",
          "type": "value",
          "optional": false
        },
        {
          "name": "ttl",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "stream.from_csv",
      "storedName": "mvp:csv_stream",
      "sPath": "stream.from_csv",
      "registered": true,
      "declarative": true,
      "output": true,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "separator",
          "type": "value",
          "optional": true,
          "default": ","
        },
        {
          "name": "enclosure",
          "type": "value",
          "optional": true,
          "default": "\\\""
        },
        {
          "name": "escape_char",
          "type": "value",
          "optional": true,
          "default": "\\\""
        }
      ]
    },
    {
      "surface": "stream.from_jsonl",
      "storedName": "mvp:jsonl_stream",
      "sPath": "stream.from_jsonl",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "stream.from_request",
      "storedName": "mvp:streaming_api_request",
      "sPath": "stream.from_request",
      "registered": true,
      "declarative": false,
      "output": false
    },
    {
      "surface": "switch",
      "storedName": "mvp:switch",
      "sPath": "switch",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "task.call",
      "storedName": "mvp:workspace_run_task",
      "sPath": "task.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "text.append",
      "storedName": "mvp:text_append",
      "sPath": "text.append",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.contains",
      "storedName": "mvp:text_contains",
      "sPath": "text.contains",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.ends_with",
      "storedName": "mvp:text_ends_with",
      "sPath": "text.ends_with",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.icontains",
      "storedName": "mvp:text_icontains",
      "sPath": "text.icontains",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.iends_with",
      "storedName": "mvp:text_iends_with",
      "sPath": "text.iends_with",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.istarts_with",
      "storedName": "mvp:text_istarts_with",
      "sPath": "text.istarts_with",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.ltrim",
      "storedName": "mvp:text_ltrim",
      "sPath": "text.ltrim",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.prepend",
      "storedName": "mvp:text_prepend",
      "sPath": "text.prepend",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.rtrim",
      "storedName": "mvp:text_rtrim",
      "sPath": "text.rtrim",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.starts_with",
      "storedName": "mvp:text_starts_with",
      "sPath": "text.starts_with",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "text.trim",
      "storedName": "mvp:text_trim",
      "sPath": "text.trim",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "throw",
      "storedName": "mvp:throw_error",
      "sPath": "throw",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "name",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "tool.call",
      "storedName": "mvp:workspace_run_tool",
      "sPath": "tool.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "trigger.call",
      "storedName": "mvp:workspace_run_trigger",
      "sPath": "trigger.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "try_catch",
      "storedName": "mvp:try_catch",
      "sPath": "try_catch",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "util.geo_distance",
      "storedName": "mvp:calculate_geo_distance",
      "sPath": "util.geo_distance",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "latitude_1",
          "type": "value",
          "optional": true
        },
        {
          "name": "longitude_1",
          "type": "value",
          "optional": true
        },
        {
          "name": "latitude_2",
          "type": "value",
          "optional": true
        },
        {
          "name": "longitude_2",
          "type": "value",
          "optional": true
        }
      ],
      "result": {
        "name": "as",
        "type": "number",
        "note": "great-circle distance in METRES (a decimal) — divide by 1000 for km. Identical points return 0"
      }
    },
    {
      "surface": "util.get_all_input",
      "storedName": "mvp:get_all_input",
      "sPath": "util.get_all_input",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "util.get_env",
      "storedName": "mvp:get_env",
      "sPath": "util.get_env",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "util.get_input",
      "storedName": "mvp:get_input",
      "sPath": "util.get_input",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "util.get_raw_input",
      "storedName": "mvp:get_input",
      "sPath": "util.get_raw_input",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "util.get_vars",
      "storedName": "mvp:get_vars",
      "sPath": "util.get_vars",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        }
      ]
    },
    {
      "surface": "util.ip_lookup",
      "storedName": "mvp:ipaddress_lookup",
      "sPath": "util.ip_lookup",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ],
      "result": {
        "name": "as",
        "type": "IpLookupResult | null",
        "note": "NESTED, not flat: { continent: {code,name}, country: {code,name}, region: {code,name}, city: {name}, postal: {code}, location: {latitude, longitude, tz, radius} }. Coordinates are ref(\"geo.location.latitude\"/\".longitude\"), place names ref(\"geo.city.name\"/\"geo.region.name\"/\"geo.country.name\"); radius is KILOMETRES. ⚠ Every leaf is nullable and region/city/postal commonly ARE null for a routable public address — that is a normal hit, not a failed lookup. `city` is an OBJECT, so a bare ref(\"geo.city\") into a text column fails on the object and { safe: true } does NOT help; drill to city.name with a fallback. The whole var is null for an unresolvable address"
      }
    },
    {
      "surface": "util.post_process",
      "storedName": "mvp:post_process",
      "sPath": "util.post_process",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "util.send_email",
      "storedName": "mvp:send_email",
      "sPath": "util.send_email",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "service_provider",
          "type": "value",
          "optional": true,
          "enum": [
            "resend",
            "xano"
          ]
        },
        {
          "name": "api_key",
          "type": "value",
          "optional": true
        },
        {
          "name": "subject",
          "type": "value",
          "optional": true
        },
        {
          "name": "message",
          "type": "value",
          "optional": true
        },
        {
          "name": "to",
          "type": "value",
          "optional": true
        },
        {
          "name": "bcc",
          "type": "value",
          "optional": true
        },
        {
          "name": "cc",
          "type": "value",
          "optional": true
        },
        {
          "name": "from",
          "type": "value",
          "optional": true
        },
        {
          "name": "reply_to",
          "type": "value",
          "optional": true
        },
        {
          "name": "scheduled_at",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "util.set_header",
      "storedName": "mvp:setheader",
      "sPath": "util.set_header",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "value",
          "type": "value",
          "optional": false
        },
        {
          "name": "duplicates",
          "type": "string",
          "optional": true,
          "default": "replace",
          "enum": [
            "replace",
            "append"
          ]
        }
      ]
    },
    {
      "surface": "util.sleep",
      "storedName": "mvp:sleep",
      "sPath": "util.sleep",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "util.template_engine",
      "storedName": "mvp:template_string",
      "sPath": "util.template_engine",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true,
          "default": ""
        },
        {
          "name": "value",
          "type": "value",
          "optional": false
        }
      ]
    },
    {
      "surface": "var.update",
      "storedName": "mvp:update_var",
      "sPath": "update_var",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "var",
      "storedName": "mvp:set_var",
      "sPath": "set_var",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "webflow.request",
      "storedName": "mvp:connect_webflow_api_request",
      "sPath": "webflow.request",
      "registered": true,
      "declarative": false,
      "output": false
    },
    {
      "surface": "while",
      "storedName": "mvp:while",
      "sPath": "while",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "workflow_test.call",
      "storedName": "mvp:workspace_run_workflow_test",
      "sPath": "workflow_test.call",
      "registered": true,
      "declarative": false
    },
    {
      "surface": "zip.add_to_archive",
      "storedName": "mvp:zip_add_file_resource",
      "sPath": "zip.add_to_archive",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "file",
          "type": "value",
          "optional": false
        },
        {
          "name": "filename",
          "type": "value",
          "optional": false
        },
        {
          "name": "zip",
          "type": "value",
          "optional": false
        },
        {
          "name": "password",
          "type": "value",
          "optional": true
        },
        {
          "name": "password_encryption",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "zip.create_archive",
      "storedName": "mvp:zip_create_file_resource",
      "sPath": "zip.create_archive",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "filename",
          "type": "value",
          "optional": false
        },
        {
          "name": "password",
          "type": "value",
          "optional": true
        },
        {
          "name": "password_encryption",
          "type": "value",
          "optional": true,
          "enum": [
            "standard",
            "AES-128",
            "AES-192",
            "AES-256"
          ]
        }
      ]
    },
    {
      "surface": "zip.delete_from_archive",
      "storedName": "mvp:zip_delete_file_resource",
      "sPath": "zip.delete_from_archive",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "filename",
          "type": "value",
          "optional": false
        },
        {
          "name": "zip",
          "type": "value",
          "optional": false
        },
        {
          "name": "password",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "zip.extract",
      "storedName": "mvp:zip_extract_file_resource",
      "sPath": "zip.extract",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "zip",
          "type": "value",
          "optional": false
        },
        {
          "name": "password",
          "type": "value",
          "optional": true
        }
      ]
    },
    {
      "surface": "zip.view_contents",
      "storedName": "mvp:zip_view_contents",
      "sPath": "zip.view_contents",
      "registered": true,
      "declarative": true,
      "output": false,
      "fields": [
        {
          "name": "as",
          "type": "string",
          "optional": true
        },
        {
          "name": "zip",
          "type": "value",
          "optional": false
        },
        {
          "name": "password",
          "type": "value",
          "optional": true
        }
      ]
    }
  ],
  "filters": [
    {
      "name": "abs",
      "fl": "fl.abs",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the absolute value"
    },
    {
      "name": "acos",
      "fl": "fl.acos",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the arc cosine of the supplied value in radians"
    },
    {
      "name": "acosh",
      "fl": "fl.acosh",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the inverse hyperbolic cosine of the supplied value in radians"
    },
    {
      "name": "add",
      "fl": "fl.add",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "decimal"
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Add 2 values together and return the answer"
    },
    {
      "name": "addslashes",
      "fl": "fl.addslashes",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Adds a backslash to the following characters: single quote, double quote, backslash, and null character."
    },
    {
      "name": "append",
      "fl": "fl.append",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        },
        {
          "name": "path",
          "type": "text"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Push an element on to the end of an array within an object and return the updated object"
    },
    {
      "name": "array_diff",
      "fl": "fl.array_diff",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>[]"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Return the entries from the first array that are not in the second"
    },
    {
      "name": "array_diff_assoc",
      "fl": "fl.array_diff_assoc",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>[]"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Return the entries from the first array that are not in the second"
    },
    {
      "name": "array_entries",
      "fl": "fl.array_entries",
      "typed": true,
      "result": "any[]",
      "group": "array",
      "description": "Get the property entries of an object/array as a numerically"
    },
    {
      "name": "array_fill",
      "fl": "fl.array_fill",
      "typed": true,
      "args": [
        {
          "name": "start",
          "type": "int"
        },
        {
          "name": "count",
          "type": "int"
        }
      ],
      "result": "any[]",
      "group": "manipulation",
      "description": "Create an array of a certain size with a default value."
    },
    {
      "name": "array_fill_keys",
      "fl": "fl.array_fill_keys",
      "typed": true,
      "args": [
        {
          "name": "keys",
          "type": "any[]"
        }
      ],
      "result": "any[]",
      "group": "manipulation",
      "description": "Create an array of keys with a default value."
    },
    {
      "name": "array_intersect",
      "fl": "fl.array_intersect",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>[]"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Return the entries from the first array that are also present in"
    },
    {
      "name": "array_intersect_assoc",
      "fl": "fl.array_intersect_assoc",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>[]"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Return the entries from the first array that are also present in"
    },
    {
      "name": "array_keys",
      "fl": "fl.array_keys",
      "typed": true,
      "result": "text[]",
      "group": "array",
      "description": "Get the property keys of an object/array as a numerically indexed array."
    },
    {
      "name": "array_merge",
      "fl": "fl.array_merge",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>[]"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Merge the first level of elements of both arrays together and"
    },
    {
      "name": "array_merge_recursive",
      "fl": "fl.array_merge_recursive",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>[]"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Merge the elements from all levels of both arrays together and"
    },
    {
      "name": "array_pop",
      "fl": "fl.array_pop",
      "typed": true,
      "result": "<T>",
      "group": "array",
      "description": "Pops the last element of the array off and returns it"
    },
    {
      "name": "array_push",
      "fl": "fl.array_push",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Push an element on to the end of an array and return the new array"
    },
    {
      "name": "array_remove",
      "fl": "fl.array_remove",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        },
        {
          "name": "path",
          "type": "text"
        },
        {
          "name": "strict",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Remove any elements from the array that match the supplied value"
    },
    {
      "name": "array_shift",
      "fl": "fl.array_shift",
      "typed": true,
      "result": "<T>",
      "group": "array",
      "description": "Shifts the first element of the array off and returns it"
    },
    {
      "name": "array_shuffle",
      "fl": "fl.array_shuffle",
      "typed": true,
      "result": "<T>[]",
      "group": "array",
      "description": "Shuffles the order of the entries in the array."
    },
    {
      "name": "array_slice",
      "fl": "fl.array_slice",
      "typed": true,
      "args": [
        {
          "name": "offset",
          "type": "int"
        },
        {
          "name": "length",
          "type": "int",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Extract a section from an array."
    },
    {
      "name": "array_unshift",
      "fl": "fl.array_unshift",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Push an element to the beginning of an array and return the new array"
    },
    {
      "name": "array_values",
      "fl": "fl.array_values",
      "typed": true,
      "result": "any[]",
      "group": "array",
      "description": "Get the property values of an object/array as a numerically indexed array"
    },
    {
      "name": "asin",
      "fl": "fl.asin",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the arc sine of the supplied value in radians"
    },
    {
      "name": "asinh",
      "fl": "fl.asinh",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the inverse hyperbolic sine of the supplied value in radians"
    },
    {
      "name": "atan",
      "fl": "fl.atan",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the arc tangent of the supplied value in radians"
    },
    {
      "name": "atanh",
      "fl": "fl.atanh",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the inverse hyperbolic tangent of the supplied value in radians"
    },
    {
      "name": "avg",
      "fl": "fl.avg",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the average of the values of the array"
    },
    {
      "name": "base64_decode",
      "fl": "fl.base64_decode",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Decodes the value represented as base64 text and returns the result"
    },
    {
      "name": "base64_decode_urlsafe",
      "fl": "fl.base64_decode_urlsafe",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Decodes the value represented as base64 urlsafe text and returns the result"
    },
    {
      "name": "base64_encode",
      "fl": "fl.base64_encode",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Encodes the value and returns the result as base64 text"
    },
    {
      "name": "base64_encode_urlsafe",
      "fl": "fl.base64_encode_urlsafe",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Encodes the value and returns the result as base64 urlsafe text"
    },
    {
      "name": "base_convert",
      "fl": "fl.base_convert",
      "typed": true,
      "args": [
        {
          "name": "from_base",
          "type": "any"
        },
        {
          "name": "to_base",
          "type": "any"
        }
      ],
      "result": "text",
      "group": "transform",
      "description": "Converts a value between two bases"
    },
    {
      "name": "bin2hex",
      "fl": "fl.bin2hex",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts a binary value into its hex equivalent"
    },
    {
      "name": "bindec",
      "fl": "fl.bindec",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts a binary string (i.e. 01010) into its decimal equivalent"
    },
    {
      "name": "bitwise_and",
      "fl": "fl.bitwise_and",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "int"
        }
      ],
      "result": "int",
      "group": "math",
      "description": "Bitwise AND 2 values together and return the answer"
    },
    {
      "name": "bitwise_not",
      "fl": "fl.bitwise_not",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns the existing value with its bits flipped"
    },
    {
      "name": "bitwise_or",
      "fl": "fl.bitwise_or",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "int"
        }
      ],
      "result": "int",
      "group": "math",
      "description": "Bitwise OR 2 values together and return the answer"
    },
    {
      "name": "bitwise_xor",
      "fl": "fl.bitwise_xor",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "int"
        }
      ],
      "result": "int",
      "group": "math",
      "description": "Bitwise XOR 2 values together and return the answer"
    },
    {
      "name": "capitalize",
      "fl": "fl.capitalize",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Converts the first letter of each word to a capital letter"
    },
    {
      "name": "ceil",
      "fl": "fl.ceil",
      "typed": true,
      "result": "int",
      "group": "math",
      "description": "Round a decimal up to its integer equivalent"
    },
    {
      "name": "concat",
      "fl": "fl.concat",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "any"
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Concatenates two values together"
    },
    {
      "name": "contains",
      "fl": "fl.contains",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        }
      ],
      "result": "bool",
      "group": "text",
      "description": "Returns whether or not the expression is found Direction: the piped value is the subject text; the argument is the substring searched for."
    },
    {
      "name": "convert_encoding",
      "fl": "fl.convert_encoding",
      "typed": true,
      "args": [
        {
          "name": "to",
          "type": "text"
        },
        {
          "name": "from",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Convert the character encoding of the supplied text"
    },
    {
      "name": "cos",
      "fl": "fl.cos",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the cosine of the supplied value in radians"
    },
    {
      "name": "count",
      "fl": "fl.count",
      "typed": true,
      "result": "int",
      "group": "array",
      "description": "Return the number of items in an object/array"
    },
    {
      "name": "create_object",
      "fl": "fl.create_object",
      "typed": true,
      "args": [
        {
          "name": "values",
          "type": "<T>[]"
        }
      ],
      "result": "any",
      "group": "transform",
      "description": "Creates an object based on a list of keys and a list of values"
    },
    {
      "name": "create_object_from_entries",
      "fl": "fl.create_object_from_entries",
      "typed": true,
      "result": "any",
      "group": "transform",
      "description": "Creates an object based on an array of key/value pairs. (i.e. same result as the entries filter)"
    },
    {
      "name": "crypto_jwe_decode",
      "fl": "fl.crypto_jwe_decode",
      "typed": true,
      "args": [
        {
          "name": "check_claims",
          "type": "json"
        },
        {
          "name": "key",
          "type": "json"
        },
        {
          "name": "key_algorithm",
          "type": "enum"
        },
        {
          "name": "content_algorithm",
          "type": "enum"
        },
        {
          "name": "timeDrift",
          "type": "int",
          "optional": true
        }
      ],
      "result": "json",
      "group": "security",
      "description": "Decodes the JWE token and return the result"
    },
    {
      "name": "crypto_jwe_encode",
      "fl": "fl.crypto_jwe_encode",
      "typed": true,
      "args": [
        {
          "name": "headers",
          "type": "json"
        },
        {
          "name": "key",
          "type": "json"
        },
        {
          "name": "key_algorithm",
          "type": "enum"
        },
        {
          "name": "content_algorithm",
          "type": "enum"
        },
        {
          "name": "ttl",
          "type": "int",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Encodes the value and return the result as a JWE token"
    },
    {
      "name": "crypto_jws_decode",
      "fl": "fl.crypto_jws_decode",
      "typed": true,
      "args": [
        {
          "name": "check_claims",
          "type": "json"
        },
        {
          "name": "key",
          "type": "json"
        },
        {
          "name": "algorithm",
          "type": "enum"
        },
        {
          "name": "timeDrift",
          "type": "int",
          "optional": true
        }
      ],
      "result": "json",
      "group": "security",
      "description": "Decodes the JWS token and return the result"
    },
    {
      "name": "crypto_jws_encode",
      "fl": "fl.crypto_jws_encode",
      "typed": true,
      "args": [
        {
          "name": "headers",
          "type": "json"
        },
        {
          "name": "key",
          "type": "json"
        },
        {
          "name": "algorithm",
          "type": "enum"
        },
        {
          "name": "ttl",
          "type": "int",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Encodes the value and return the result as a JWS token"
    },
    {
      "name": "csv_create",
      "fl": "fl.csv_create",
      "typed": true,
      "args": [
        {
          "name": "rows",
          "type": "text[]"
        },
        {
          "name": "separator",
          "type": "text"
        },
        {
          "name": "enclosure",
          "type": "text"
        },
        {
          "name": "escape",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "transform",
      "description": "Creates a CSV format data stream from a list of column names and their corresponding data rows. Direction: the piped value is the list of COLUMN NAMES (written as the header line); the `rows` argument carries the data rows. This is the header-writing counterpart to `csv_encode`, which emits values only."
    },
    {
      "name": "csv_decode",
      "fl": "fl.csv_decode",
      "typed": true,
      "args": [
        {
          "name": "separator",
          "type": "text"
        },
        {
          "name": "enclosure",
          "type": "text"
        },
        {
          "name": "escape",
          "type": "text"
        }
      ],
      "result": "any",
      "group": "transform",
      "description": "Decodes the value represented in the CSV format and returns the result"
    },
    {
      "name": "csv_encode",
      "fl": "fl.csv_encode",
      "typed": true,
      "args": [
        {
          "name": "separator",
          "type": "text"
        },
        {
          "name": "enclosure",
          "type": "text"
        },
        {
          "name": "escape",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "transform",
      "description": "Encodes the value and returns the result in CSV format Writes NO header row — values only. Each row contributes its own values in THAT row's key order, with no normalization across rows, so rows whose keys differ in order or count silently misalign columns rather than erroring. Non-scalar cells (nested objects/arrays) are JSON-encoded into the cell, and `false` writes as empty. If the piped array's elements are scalars rather than objects, the whole array is treated as ONE row and you get a single line. For a header, use `csv_create`."
    },
    {
      "name": "csv_parse",
      "fl": "fl.csv_parse",
      "typed": true,
      "args": [
        {
          "name": "separator",
          "type": "text"
        },
        {
          "name": "enclosure",
          "type": "text"
        },
        {
          "name": "escape",
          "type": "text"
        }
      ],
      "result": "any",
      "group": "transform",
      "description": "Parse the contents of a CSV file and convert it into an array of objects."
    },
    {
      "name": "decbin",
      "fl": "fl.decbin",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts a decimal value into its binary string (i.e. 01010) equivalent"
    },
    {
      "name": "dechex",
      "fl": "fl.dechex",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts a decimal value into its hex equivalent"
    },
    {
      "name": "decoct",
      "fl": "fl.decoct",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts a decimal value into its octal equivalent"
    },
    {
      "name": "decrypt",
      "fl": "fl.decrypt",
      "typed": true,
      "args": [
        {
          "name": "algorithm",
          "type": "enum"
        },
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "iv",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Decrypts the value and returns the result."
    },
    {
      "name": "deg2rad",
      "fl": "fl.deg2rad",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Convert degrees to radians"
    },
    {
      "name": "detect_encoding",
      "fl": "fl.detect_encoding",
      "typed": true,
      "args": [
        {
          "name": "encodings",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Detect the character encoding of the supplied text"
    },
    {
      "name": "div",
      "fl": "fl.div",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "decimal"
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Divides 2 values together and returns the answer"
    },
    {
      "name": "empty",
      "fl": "fl.empty",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is empty (\"\", null, 0, \"0\", false, [], {})"
    },
    {
      "name": "encrypt",
      "fl": "fl.encrypt",
      "typed": true,
      "args": [
        {
          "name": "algorithm",
          "type": "enum"
        },
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "iv",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Encrypts the value and returns the result in raw binary form."
    },
    {
      "name": "ends_with",
      "fl": "fl.ends_with",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        }
      ],
      "result": "bool",
      "group": "text",
      "description": "Returns whether or not the expression is present at the end Direction: the piped value is the subject text; the argument is the substring searched for."
    },
    {
      "name": "epochms_add_ms",
      "fl": "fl.epochms_add_ms",
      "typed": true,
      "args": [
        {
          "name": "milliseconds",
          "type": "int"
        }
      ],
      "result": "epochms",
      "group": "timestamp",
      "description": "Add milliseconds to a timestamp. (negative values are ok)"
    },
    {
      "name": "epochms_add_secs",
      "fl": "fl.epochms_add_secs",
      "typed": true,
      "args": [
        {
          "name": "seconds",
          "type": "int"
        }
      ],
      "result": "epochms",
      "group": "timestamp",
      "description": "Add seconds to a timestamp. (negative values are ok)"
    },
    {
      "name": "epochms_date",
      "fl": "fl.epochms_date",
      "typed": true,
      "args": [
        {
          "name": "format",
          "type": "text"
        },
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "timestamp",
      "description": "Converts a timestamp into a human readable formatted date based on"
    },
    {
      "name": "epochms_from_format",
      "fl": "fl.epochms_from_format",
      "typed": true,
      "args": [
        {
          "name": "format",
          "type": "text"
        },
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "timestamp",
      "description": "Parse a timestamp from a flexible format."
    },
    {
      "name": "epochms_transform",
      "fl": "fl.epochms_transform",
      "typed": true,
      "args": [
        {
          "name": "format",
          "type": "text"
        },
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "timestamp",
      "description": "Takes a timestamp and applies a relative transformation to it. Ex."
    },
    {
      "name": "eq",
      "fl": "fl.eq",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        }
      ],
      "result": "bool",
      "group": "comparison",
      "description": "Returns a boolean if both values are equal"
    },
    {
      "name": "escape",
      "fl": "fl.escape",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Converts special characters into their escaped variants. Ex: for tabs and"
    },
    {
      "name": "even",
      "fl": "fl.even",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is even"
    },
    {
      "name": "every",
      "fl": "fl.every",
      "typed": true,
      "args": [
        {
          "name": "code",
          "type": "text"
        },
        {
          "name": "timeout",
          "type": "int",
          "optional": true
        }
      ],
      "result": "any[]",
      "group": "array",
      "description": "Checks if all elements in the array pass the test implemented by the provided function."
    },
    {
      "name": "exp",
      "fl": "fl.exp",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the exponent of mathematical expression \"e\""
    },
    {
      "name": "filter",
      "fl": "fl.filter",
      "typed": true,
      "args": [
        {
          "name": "code",
          "type": "text"
        },
        {
          "name": "timeout",
          "type": "int",
          "optional": true
        }
      ],
      "result": "any[]",
      "group": "array",
      "description": "Filters the elements of an array based on the code block returning true to keep the element or false to skip it."
    },
    {
      "name": "filter_empty",
      "fl": "fl.filter_empty",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Returns a new array with only entries that are not empty (\"\", null, 0, \"0\", false, [], {})"
    },
    {
      "name": "filter_empty_array",
      "fl": "fl.filter_empty_array",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Returns a new array with only entries that are not an empty array `[]`"
    },
    {
      "name": "filter_empty_object",
      "fl": "fl.filter_empty_object",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Returns a new array with only entries that are not an empty object `{}`"
    },
    {
      "name": "filter_empty_text",
      "fl": "fl.filter_empty_text",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Returns a new array with only entries that are not empty (\"\", null, 0, \"0\", false, [], {})"
    },
    {
      "name": "filter_false",
      "fl": "fl.filter_false",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Returns a new array with only entries that are not false"
    },
    {
      "name": "filter_null",
      "fl": "fl.filter_null",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Returns a new array with only entries that are not null"
    },
    {
      "name": "filter_zero",
      "fl": "fl.filter_zero",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Returns a new array with only entries that are not zero"
    },
    {
      "name": "find",
      "fl": "fl.find",
      "typed": true,
      "args": [
        {
          "name": "code",
          "type": "text"
        },
        {
          "name": "timeout",
          "type": "int",
          "optional": true
        }
      ],
      "result": "any[]",
      "group": "array",
      "description": "Finds if all elements in the array pass the test implemented by the provided function."
    },
    {
      "name": "findIndex",
      "fl": "fl.findIndex",
      "typed": true,
      "args": [
        {
          "name": "code",
          "type": "text"
        },
        {
          "name": "timeout",
          "type": "int",
          "optional": true
        }
      ],
      "result": "any[]",
      "group": "array",
      "description": "Finds the index of the first element in the array that passes the test implemented by the provided function."
    },
    {
      "name": "first",
      "fl": "fl.first",
      "typed": true,
      "result": "<T>",
      "group": "array",
      "description": "Get the first entry of an array"
    },
    {
      "name": "first_notempty",
      "fl": "fl.first_notempty",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "any"
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Returns the first value that is not empty - i.e. not (\"\", null, 0, \"0\", false, [], {})"
    },
    {
      "name": "first_notnull",
      "fl": "fl.first_notnull",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "any"
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Returns the first value that is not null"
    },
    {
      "name": "flatten",
      "fl": "fl.flatten",
      "typed": true,
      "result": "<T>[]",
      "group": "array",
      "description": "Flattens a multidimensional array into a single level array of values."
    },
    {
      "name": "floor",
      "fl": "fl.floor",
      "typed": true,
      "result": "int",
      "group": "math",
      "description": "Round a decimal down to its integer equivalent"
    },
    {
      "name": "from_utf8",
      "fl": "fl.from_utf8",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Convert the supplied text from UTF-8 to its binary form (ISO-8859-1)."
    },
    {
      "name": "fsort",
      "fl": "fl.fsort",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        },
        {
          "name": "type",
          "type": "enum",
          "optional": true,
          "enum": [
            "text",
            "itext",
            "natural",
            "inatural",
            "number"
          ]
        },
        {
          "name": "asc",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Sort an array of elements with an optional path inside the element Only `type: \"number\"` compares NUMERICALLY. \"text\"/\"itext\" are case-sensitive/insensitive string compares, \"natural\"/\"inatural\" are the human-readable \"a2 < a10\" orderings, and the default is \"itext\". An unrecognized spelling silently falls through to \"itext\" rather than erroring, so a numeric sort MUST spell \"number\" — anything else returns the right elements in the wrong order. `path` drills into each element."
    },
    {
      "name": "get",
      "fl": "fl.get",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text"
        },
        {
          "name": "default",
          "type": "json",
          "optional": true
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Returns the value of an object at the specified path"
    },
    {
      "name": "gt",
      "fl": "fl.gt",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        }
      ],
      "result": "bool",
      "group": "comparison",
      "description": "Returns a boolean if the left value is greater than the right value"
    },
    {
      "name": "gte",
      "fl": "fl.gte",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        }
      ],
      "result": "bool",
      "group": "comparison",
      "description": "Returns a boolean if the left value is greater than or equal to the"
    },
    {
      "name": "has",
      "fl": "fl.has",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text"
        }
      ],
      "result": "bool",
      "group": "manipulation",
      "description": "Returns the existence of whether or not something is present in the object at the specified path"
    },
    {
      "name": "hex2bin",
      "fl": "fl.hex2bin",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts a hex value into its binary equivalent"
    },
    {
      "name": "hexdec",
      "fl": "fl.hexdec",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts a hex value into its decimal equivalent"
    },
    {
      "name": "hmac_md5",
      "fl": "fl.hmac_md5",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a MD5 signature representation of the value using a shared secret via the HMAC method"
    },
    {
      "name": "hmac_sha1",
      "fl": "fl.hmac_sha1",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a SHA1 signature representation of the value using a shared secret via the HMAC method"
    },
    {
      "name": "hmac_sha256",
      "fl": "fl.hmac_sha256",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a SHA256 signature representation of the value using a shared secret via the HMAC method"
    },
    {
      "name": "hmac_sha384",
      "fl": "fl.hmac_sha384",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a SHA384 signature representation of the value using a shared secret via the HMAC method"
    },
    {
      "name": "hmac_sha512",
      "fl": "fl.hmac_sha512",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a SHA512 signature representation of the value using a shared secret via the HMAC method"
    },
    {
      "name": "icontains",
      "fl": "fl.icontains",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        }
      ],
      "result": "bool",
      "group": "text",
      "description": "Returns whether or not the case-insensitive expression is found Direction: the piped value is the subject text; the argument is the substring searched for."
    },
    {
      "name": "iends_with",
      "fl": "fl.iends_with",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        }
      ],
      "result": "bool",
      "group": "text",
      "description": "Returns whether or not the case-insensitive expression is present at the end Direction: the piped value is the subject text; the argument is the substring searched for."
    },
    {
      "name": "in",
      "fl": "fl.in",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "<T>"
        }
      ],
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is in the array"
    },
    {
      "name": "index_by",
      "fl": "fl.index_by",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text"
        }
      ],
      "result": "{ [key: string]: <T>[] }",
      "group": "array",
      "description": "Groups the piped array into an OBJECT keyed by each item's path — every value is an ARRAY of the items sharing that key, even when only one item does. So a lookup reads `idx[key][0]`, not `idx[key]`; the singular spelling yields null rather than erroring. Items whose path is missing or non-scalar are dropped."
    },
    {
      "name": "is_array",
      "fl": "fl.is_array",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is a numerical indexed array."
    },
    {
      "name": "is_bool",
      "fl": "fl.is_bool",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is a boolean."
    },
    {
      "name": "is_decimal",
      "fl": "fl.is_decimal",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is a decimal value."
    },
    {
      "name": "is_int",
      "fl": "fl.is_int",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is an integer."
    },
    {
      "name": "is_object",
      "fl": "fl.is_object",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is an object."
    },
    {
      "name": "is_text",
      "fl": "fl.is_text",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is text."
    },
    {
      "name": "is_uuid",
      "fl": "fl.is_uuid",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is a valid UUID."
    },
    {
      "name": "istarts_with",
      "fl": "fl.istarts_with",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        }
      ],
      "result": "bool",
      "group": "text",
      "description": "Returns whether or not the case-insensitive expression is present at the beginning Direction: the piped value is the subject text; the argument is the substring searched for."
    },
    {
      "name": "join",
      "fl": "fl.join",
      "typed": true,
      "args": [
        {
          "name": "separator",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "array",
      "description": "Joins an array into a text string via the separator and returns the result"
    },
    {
      "name": "json_decode",
      "fl": "fl.json_decode",
      "typed": true,
      "result": "any",
      "group": "transform",
      "description": "Decodes the value represented as json and returns the result"
    },
    {
      "name": "json_encode",
      "fl": "fl.json_encode",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Encodes the value and returns the result as json text"
    },
    {
      "name": "jwe_decode",
      "fl": "fl.jwe_decode",
      "typed": true,
      "args": [
        {
          "name": "arg1",
          "type": "any"
        }
      ],
      "description": "Decodes the JWE token and return the result"
    },
    {
      "name": "jwe_encode",
      "fl": "fl.jwe_encode",
      "typed": true,
      "args": [
        {
          "name": "arg1",
          "type": "any"
        }
      ],
      "description": "Encodes the value and return the result as a JWE token"
    },
    {
      "name": "lambda",
      "fl": "fl.lambda",
      "typed": true,
      "args": [
        {
          "name": "code",
          "type": "text"
        },
        {
          "name": "timeout",
          "type": "int",
          "optional": true
        }
      ],
      "result": "any",
      "group": "transform",
      "description": "Business logic using JavaScript."
    },
    {
      "name": "last",
      "fl": "fl.last",
      "typed": true,
      "result": "<T>",
      "group": "array",
      "description": "Get the last entry of an array"
    },
    {
      "name": "list_encodings",
      "fl": "fl.list_encodings",
      "typed": true,
      "result": "text[]",
      "group": "text",
      "description": "List support character encodings"
    },
    {
      "name": "ln",
      "fl": "fl.ln",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the natural logarithm"
    },
    {
      "name": "log",
      "fl": "fl.log",
      "typed": true,
      "args": [
        {
          "name": "base",
          "type": "<T>"
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Returns the logarithm with a custom base"
    },
    {
      "name": "log10",
      "fl": "fl.log10",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the Base-10 logarithm"
    },
    {
      "name": "lower",
      "fl": "fl.lower",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Converts all characters to lower case and returns the result"
    },
    {
      "name": "lt",
      "fl": "fl.lt",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        }
      ],
      "result": "bool",
      "group": "comparison",
      "description": "Returns a boolean if the left value is less than the right value"
    },
    {
      "name": "lte",
      "fl": "fl.lte",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        }
      ],
      "result": "bool",
      "group": "comparison",
      "description": "Returns a boolean if the left value is less than or equal to the right value"
    },
    {
      "name": "ltrim",
      "fl": "fl.ltrim",
      "typed": true,
      "args": [
        {
          "name": "mask",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Trim whitespace or other characters from the left side and return the result"
    },
    {
      "name": "map",
      "fl": "fl.map",
      "typed": true,
      "args": [
        {
          "name": "code",
          "type": "text"
        },
        {
          "name": "timeout",
          "type": "int",
          "optional": true
        }
      ],
      "result": "any[]",
      "group": "array",
      "description": "Creates a new array with the results of calling a provided function on every element in the calling array."
    },
    {
      "name": "max",
      "fl": "fl.max",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the max of the values of the array"
    },
    {
      "name": "md5",
      "fl": "fl.md5",
      "typed": true,
      "args": [
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a MD5 signature representation of the value"
    },
    {
      "name": "min",
      "fl": "fl.min",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the min of the values of the array"
    },
    {
      "name": "mod",
      "fl": "fl.mod",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "int"
        }
      ],
      "result": "int",
      "group": "math",
      "description": "Modulus 2 values together and return the answer"
    },
    {
      "name": "mul",
      "fl": "fl.mul",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "decimal"
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Multiplies 2 values together and returns the answer"
    },
    {
      "name": "ne",
      "fl": "fl.ne",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        }
      ],
      "result": "bool",
      "group": "comparison",
      "description": "Returns a boolean if both values are not equal"
    },
    {
      "name": "not",
      "fl": "fl.not",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns the opposite of the existing value evaluated as a boolean"
    },
    {
      "name": "null",
      "fl": "fl.null",
      "typed": true,
      "result": "null",
      "group": "misc",
      "description": "Returns a null value."
    },
    {
      "name": "num_max",
      "fl": "fl.num_max",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "any"
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Returns the max both values"
    },
    {
      "name": "num_min",
      "fl": "fl.num_min",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "any"
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Returns the min both values"
    },
    {
      "name": "number_format",
      "fl": "fl.number_format",
      "typed": true,
      "args": [
        {
          "name": "decimals",
          "type": "int"
        },
        {
          "name": "decimal_separator",
          "type": "text"
        },
        {
          "name": "thousands_separator",
          "type": "text"
        }
      ],
      "result": "string",
      "group": "math",
      "description": "Format a number with flexible support over decimal places, thousands separator, and decimal separator."
    },
    {
      "name": "octdec",
      "fl": "fl.octdec",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts an octal value into its decimal equivalent"
    },
    {
      "name": "odd",
      "fl": "fl.odd",
      "typed": true,
      "result": "bool",
      "group": "comparison",
      "description": "Returns whether or not the value is odd"
    },
    {
      "name": "pick",
      "fl": "fl.pick",
      "typed": true,
      "args": [
        {
          "name": "keys",
          "type": "text"
        }
      ],
      "result": "<T>",
      "group": "array",
      "description": "Pick keys from the object to create a new object of just those keys."
    },
    {
      "name": "pow",
      "fl": "fl.pow",
      "typed": true,
      "args": [
        {
          "name": "exp",
          "type": "<T>"
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Returns the value raised to the power of exp."
    },
    {
      "name": "prepend",
      "fl": "fl.prepend",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "<T>"
        },
        {
          "name": "path",
          "type": "text"
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Push an element on to the beginning of an array within an object and return the updated object"
    },
    {
      "name": "product",
      "fl": "fl.product",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the product of the values of the array"
    },
    {
      "name": "querystring_parse",
      "fl": "fl.querystring_parse",
      "typed": true,
      "result": "json",
      "group": "text",
      "description": "Parses a query string from a URL into its individual key-value pairs."
    },
    {
      "name": "rad2deg",
      "fl": "fl.rad2deg",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Convert radians to degrees"
    },
    {
      "name": "range",
      "fl": "fl.range",
      "typed": true,
      "args": [
        {
          "name": "start",
          "type": "int"
        },
        {
          "name": "stop",
          "type": "int"
        }
      ],
      "result": "int[]",
      "group": "array",
      "description": "Returns array of values between the specified start/stop."
    },
    {
      "name": "reduce",
      "fl": "fl.reduce",
      "typed": true,
      "args": [
        {
          "name": "initial_value",
          "type": "int"
        },
        {
          "name": "code",
          "type": "text"
        },
        {
          "name": "timeout",
          "type": "int",
          "optional": true
        }
      ],
      "result": "any[]",
      "group": "array",
      "description": "Reduces the array to a single value using the code block to combine each element of the array."
    },
    {
      "name": "regex_match",
      "fl": "fl.regex_match",
      "typed": true,
      "args": [
        {
          "name": "subject",
          "type": "text"
        }
      ],
      "result": "text[]",
      "group": "text",
      "description": "Return the first set of matches performed by a regular expression Direction: the piped value is the regex PATTERN; the `subject` argument is the text tested against it — reversed vs starts_with/contains. Build the pattern with c.regex(...) (delimiter-wrapped); a bare c.text(...) is rejected."
    },
    {
      "name": "regex_match_all",
      "fl": "fl.regex_match_all",
      "typed": true,
      "args": [
        {
          "name": "subject",
          "type": "text"
        }
      ],
      "result": "text[]",
      "group": "text",
      "description": "Return all matches performed by a regular expression on the Direction: the piped value is the regex PATTERN; the `subject` argument is the text tested against it — reversed vs starts_with/contains. Build the pattern with c.regex(...) (delimiter-wrapped); a bare c.text(...) is rejected."
    },
    {
      "name": "regex_quote",
      "fl": "fl.regex_quote",
      "typed": true,
      "args": [
        {
          "name": "delimiter",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Update the supplied text value to be properly escaped for regular expressions."
    },
    {
      "name": "regex_replace",
      "fl": "fl.regex_replace",
      "typed": true,
      "args": [
        {
          "name": "replacement",
          "type": "text"
        },
        {
          "name": "subject",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Perform a regular expression search and replace on the supplied subject text. Direction: the piped value is the regex PATTERN; the `subject` argument is the text tested against it — reversed vs starts_with/contains. Build the pattern with c.regex(...) (delimiter-wrapped); a bare c.text(...) is rejected."
    },
    {
      "name": "regex_test",
      "fl": "fl.regex_test",
      "typed": true,
      "args": [
        {
          "name": "subject",
          "type": "text"
        }
      ],
      "result": "bool",
      "group": "text",
      "description": "Tests if a regular expression matches the supplied subject text. Direction: the piped value is the regex PATTERN; the `subject` argument is the text tested against it — reversed vs starts_with/contains. Build the pattern with c.regex(...) (delimiter-wrapped); a bare c.text(...) is rejected."
    },
    {
      "name": "reverse",
      "fl": "fl.reverse",
      "typed": true,
      "result": "<T>[]",
      "group": "array",
      "description": "Returns values of an array in reverse order"
    },
    {
      "name": "round",
      "fl": "fl.round",
      "typed": true,
      "args": [
        {
          "name": "precision",
          "type": "int",
          "optional": true
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Round a decimal with optional precision"
    },
    {
      "name": "rtrim",
      "fl": "fl.rtrim",
      "typed": true,
      "args": [
        {
          "name": "mask",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Trim whitespace or other characters from the right return the result"
    },
    {
      "name": "safe_array",
      "fl": "fl.safe_array",
      "typed": true,
      "result": "<T>[]",
      "group": "array",
      "description": "Always returns an array. Uses the existing value if it is an array or creates an array of one element."
    },
    {
      "name": "secureid_decode",
      "fl": "fl.secureid_decode",
      "typed": true,
      "args": [
        {
          "name": "salt",
          "type": "text"
        }
      ],
      "result": "int",
      "group": "security",
      "description": "Returns the id of the original encode"
    },
    {
      "name": "secureid_encode",
      "fl": "fl.secureid_encode",
      "typed": true,
      "args": [
        {
          "name": "salt",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns an encrypted version of the id"
    },
    {
      "name": "set",
      "fl": "fl.set",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text"
        },
        {
          "name": "value",
          "type": "any"
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Sets a value at the path within the object and returns the updated object"
    },
    {
      "name": "set_conditional",
      "fl": "fl.set_conditional",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text"
        },
        {
          "name": "value",
          "type": "any"
        },
        {
          "name": "conditional",
          "type": "any"
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Sets a value at the path within the object and returns the updated object, if the conditional expression is true"
    },
    {
      "name": "set_ifnotempty",
      "fl": "fl.set_ifnotempty",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text"
        },
        {
          "name": "value",
          "type": "any"
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Sets a value (if it is not empty: \"\", null, 0, \"0\", false, [], {}) at the path within the object and returns the updated object"
    },
    {
      "name": "set_ifnotnull",
      "fl": "fl.set_ifnotnull",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text"
        },
        {
          "name": "value",
          "type": "any"
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Sets a value (if it is not null) at the path within the object and returns the updated object"
    },
    {
      "name": "sha1",
      "fl": "fl.sha1",
      "typed": true,
      "args": [
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a SHA1 signature representation of the value"
    },
    {
      "name": "sha256",
      "fl": "fl.sha256",
      "typed": true,
      "args": [
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a SHA256 signature representation of the value"
    },
    {
      "name": "sha384",
      "fl": "fl.sha384",
      "typed": true,
      "args": [
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a SHA384 signature representation of the value"
    },
    {
      "name": "sha512",
      "fl": "fl.sha512",
      "typed": true,
      "args": [
        {
          "name": "raw",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "security",
      "description": "Returns a SHA512 signature representation of the value"
    },
    {
      "name": "sin",
      "fl": "fl.sin",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the sine of the supplied value in radians"
    },
    {
      "name": "some",
      "fl": "fl.some",
      "typed": true,
      "args": [
        {
          "name": "code",
          "type": "text"
        },
        {
          "name": "timeout",
          "type": "int",
          "optional": true
        }
      ],
      "result": "any[]",
      "group": "array",
      "description": "Checks if at least one element in the array passes the test implemented by the provided function."
    },
    {
      "name": "sort",
      "fl": "fl.sort",
      "typed": true,
      "variadic": true,
      "description": "Sort an array of elements with an optional path inside the element"
    },
    {
      "name": "split",
      "fl": "fl.split",
      "typed": true,
      "args": [
        {
          "name": "separator",
          "type": "text"
        }
      ],
      "result": "text[]",
      "group": "text",
      "description": "Splits text into an array of text and returns the result"
    },
    {
      "name": "sprintf",
      "fl": "fl.sprintf",
      "typed": true,
      "variadic": true,
      "result": "text",
      "group": "text",
      "description": "formats text with variable substitution"
    },
    {
      "name": "sql_alias",
      "fl": "fl.sql_alias",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Wraps text in double quotes and escapes any double quotes within the text to prevent SQL injection attacks. This is useful for safely inserting user input into table names or aliases within SQL queries."
    },
    {
      "name": "sql_esc",
      "fl": "fl.sql_esc",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Wraps text in single quotes and escapes any single quotes within the text to prevent SQL injection attacks. This is useful for safely inserting user input into values within SQL queries."
    },
    {
      "name": "sqrt",
      "fl": "fl.sqrt",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the square root of the value"
    },
    {
      "name": "starts_with",
      "fl": "fl.starts_with",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        }
      ],
      "result": "bool",
      "group": "text",
      "description": "Returns whether or not the expression is present at the beginning Direction: the piped value is the subject text; the argument is the substring searched for."
    },
    {
      "name": "string_replace",
      "fl": "fl.string_replace",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        },
        {
          "name": "replacement",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Replace a text phrase with another"
    },
    {
      "name": "strip_accents",
      "fl": "fl.strip_accents",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Removes accents from characters"
    },
    {
      "name": "strip_tags",
      "fl": "fl.strip_tags",
      "typed": true,
      "args": [
        {
          "name": "exclude",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Removes HTML tags from a string"
    },
    {
      "name": "stripos",
      "fl": "fl.stripos",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        }
      ],
      "result": "int",
      "group": "text",
      "description": "Returns the index of the case-insensitive expression or false if it"
    },
    {
      "name": "strlen",
      "fl": "fl.strlen",
      "typed": true,
      "result": "int",
      "group": "text",
      "description": "Returns the number of characters"
    },
    {
      "name": "strpos",
      "fl": "fl.strpos",
      "typed": true,
      "args": [
        {
          "name": "search",
          "type": "text"
        }
      ],
      "result": "int",
      "group": "text",
      "description": "Returns the index of the case-sensitive expression or false if it"
    },
    {
      "name": "sub",
      "fl": "fl.sub",
      "typed": true,
      "args": [
        {
          "name": "value",
          "type": "decimal"
        }
      ],
      "result": "decimal",
      "group": "math",
      "description": "Subtracts 2 values together and returns the answer"
    },
    {
      "name": "substr",
      "fl": "fl.substr",
      "typed": true,
      "args": [
        {
          "name": "start",
          "type": "int"
        },
        {
          "name": "length",
          "type": "int"
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Extracts a section of text"
    },
    {
      "name": "sum",
      "fl": "fl.sum",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Returns the sum of the values of the array"
    },
    {
      "name": "tan",
      "fl": "fl.tan",
      "typed": true,
      "result": "decimal",
      "group": "math",
      "description": "Calculates the tangent of the supplied value in radians"
    },
    {
      "name": "text_escape",
      "fl": "fl.text_escape",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Converts control characters into their escaped sequences. Ex: newlines as \\n, tabs as \\t"
    },
    {
      "name": "text_unescape",
      "fl": "fl.text_unescape",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Convert escaped sequences into their raw form. Ex: \\n becomes a newline, \\t becomes a tab."
    },
    {
      "name": "to_bool",
      "fl": "fl.to_bool",
      "typed": true,
      "result": "bool",
      "group": "transform",
      "description": "Converts text, integer, or decimal types to a bool and returns the result"
    },
    {
      "name": "to_decimal",
      "fl": "fl.to_decimal",
      "typed": true,
      "result": "decimal",
      "group": "transform",
      "description": "Converts text, integer, or bool types to a decimal and returns the result"
    },
    {
      "name": "to_epoch_day",
      "fl": "fl.to_epoch_day",
      "typed": true,
      "args": [
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "int",
      "group": "transform",
      "description": "Converts a text expression (now, next friday, Jan 1 2000) to the"
    },
    {
      "name": "to_epoch_hour",
      "fl": "fl.to_epoch_hour",
      "typed": true,
      "args": [
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "int",
      "group": "transform",
      "description": "Converts a text expression (now, next friday, Jan 1 2000) to the"
    },
    {
      "name": "to_epoch_minute",
      "fl": "fl.to_epoch_minute",
      "typed": true,
      "args": [
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "int",
      "group": "transform",
      "description": "Converts a text expression (now, next friday, Jan 1 2000) to the"
    },
    {
      "name": "to_epoch_ms",
      "fl": "fl.to_epoch_ms",
      "typed": true,
      "args": [
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "int",
      "group": "transform",
      "description": "Converts a text expression (now, next friday, Jan 1 2000) to the"
    },
    {
      "name": "to_epoch_sec",
      "fl": "fl.to_epoch_sec",
      "typed": true,
      "args": [
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "int",
      "group": "transform",
      "description": "Converts a text expression (now, next friday, Jan 1 2000) to the"
    },
    {
      "name": "to_epochms",
      "fl": "fl.to_epochms",
      "typed": true,
      "args": [
        {
          "name": "timezone",
          "type": "text",
          "optional": true
        }
      ],
      "result": "epochms",
      "group": "transform",
      "description": "Converts a text expression (now, next friday, Jan 1 2000) to"
    },
    {
      "name": "to_expr",
      "fl": "fl.to_expr",
      "typed": true,
      "result": "any",
      "group": "transform",
      "description": "Treats the PIPED TEXT as Xano Expression Engine source, evaluates it, and returns the result. Takes no argument. `$var`, `$input`, `$env` and `$auth` resolve inside it; there is no operand binding (`$0` is null) because the operand IS the source. For an expression OVER a value, use fl.transform."
    },
    {
      "name": "to_int",
      "fl": "fl.to_int",
      "typed": true,
      "result": "int",
      "group": "transform",
      "description": "Converts text, decimal, or bool types to an integer and returns the result"
    },
    {
      "name": "to_text",
      "fl": "fl.to_text",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Converts integer, decimal, or bool types to text and returns the result"
    },
    {
      "name": "to_utf8",
      "fl": "fl.to_utf8",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Convert the supplied text from its binary form (ISO-8859-1) to UTF-8."
    },
    {
      "name": "transform",
      "fl": "fl.transform",
      "typed": true,
      "args": [
        {
          "name": "expression",
          "type": "text"
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Evaluates a Xano Expression Engine expression over the piped value. NOT a JavaScript body — there is no `return`, and the piped value binds POSITIONALLY as `$0` (or `$$`), NOT as `$this` (which resolves to null here, yielding a wrong answer with no error). `$var`, `$input`, `$env` and `$auth` also resolve, and filters may be piped inside the expression: `$0 * 2`, `$0|sort|join:\",\"`, `{ id: $0.id, total: $0.qty * $0.price }`. PARENTHESIZE a pipe used inside an object/array literal — `{ s: ($0|sort|join:\",\") }` — or the filter argument's comma is read as the key separator, returning null and silently dropping every later key. For JavaScript use fl.lambda, whose body does bind `$this`."
    },
    {
      "name": "trim",
      "fl": "fl.trim",
      "typed": true,
      "args": [
        {
          "name": "mask",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Trim whitespace or other characters from both sides and return the result"
    },
    {
      "name": "uid",
      "fl": "fl.uid",
      "typed": true,
      "result": "int",
      "group": "security",
      "description": "Returns a unique 64bit unsigned int value seeded off the value"
    },
    {
      "name": "unique",
      "fl": "fl.unique",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text",
          "optional": true
        }
      ],
      "result": "<T>[]",
      "group": "array",
      "description": "Returns unique values of an array"
    },
    {
      "name": "unpick",
      "fl": "fl.unpick",
      "typed": true,
      "args": [
        {
          "name": "keys",
          "type": "text"
        }
      ],
      "result": "<T>",
      "group": "array",
      "description": "Remove keys from the object to create a new object of the remaining keys."
    },
    {
      "name": "unset",
      "fl": "fl.unset",
      "typed": true,
      "args": [
        {
          "name": "path",
          "type": "text"
        }
      ],
      "result": "any",
      "group": "manipulation",
      "description": "Removes a value at the path within the object and returns the updated object"
    },
    {
      "name": "upper",
      "fl": "fl.upper",
      "typed": true,
      "result": "text",
      "group": "text",
      "description": "Converts all characters to upper case and returns the result"
    },
    {
      "name": "url_addarg",
      "fl": "fl.url_addarg",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "value",
          "type": "text"
        },
        {
          "name": "encoding_rfc3986",
          "type": "bool",
          "optional": true
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Parses a URL and returns an updated version with an encoded version of the supplied argument"
    },
    {
      "name": "url_decode",
      "fl": "fl.url_decode",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Decodes the value represented as a url encoded value"
    },
    {
      "name": "url_decode_rfc3986",
      "fl": "fl.url_decode_rfc3986",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Decodes the value represented as a url encoded value using the RFC 3986 specification"
    },
    {
      "name": "url_delarg",
      "fl": "fl.url_delarg",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Parses a URL and returns an updated version with the supplied argument removed"
    },
    {
      "name": "url_encode",
      "fl": "fl.url_encode",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Encodes the value and returns the result as a url encoded value"
    },
    {
      "name": "url_encode_rfc3986",
      "fl": "fl.url_encode_rfc3986",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Encodes the value and returns the result as a url encoded value using the RFC 3986 specification"
    },
    {
      "name": "url_getarg",
      "fl": "fl.url_getarg",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        },
        {
          "name": "default",
          "type": "text",
          "optional": true
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Gets the argument's value from a URL"
    },
    {
      "name": "url_hasarg",
      "fl": "fl.url_hasarg",
      "typed": true,
      "args": [
        {
          "name": "key",
          "type": "text"
        }
      ],
      "result": "text",
      "group": "text",
      "description": "Returns the existence of a argument in the URL"
    },
    {
      "name": "url_parse",
      "fl": "fl.url_parse",
      "typed": true,
      "result": "json",
      "group": "text",
      "description": "Parses a URL into its individual components."
    },
    {
      "name": "uuid4",
      "fl": "fl.uuid4",
      "typed": true,
      "result": "text",
      "group": "security",
      "description": "Returns a universally unique identifier"
    },
    {
      "name": "xml_decode",
      "fl": "fl.xml_decode",
      "typed": true,
      "result": "any",
      "group": "transform",
      "description": "Decodes XML and returns the result"
    },
    {
      "name": "yaml_decode",
      "fl": "fl.yaml_decode",
      "typed": true,
      "result": "obj",
      "group": "transform",
      "description": "Decodes the value represented as yaml and returns the result"
    },
    {
      "name": "yaml_encode",
      "fl": "fl.yaml_encode",
      "typed": true,
      "result": "text",
      "group": "transform",
      "description": "Encodes the value and returns the result as yaml text"
    }
  ],
  "cli": [
    {
      "command": "codegen",
      "args": "<bundle.json> <path>",
      "flags": [
        {
          "flag": "--name <n>",
          "description": "Project name (default: the target directory's basename)"
        },
        {
          "flag": "--framework <id>",
          "description": "Frontend framework to scaffold: react (default), svelte"
        },
        {
          "flag": "--ai <preset>",
          "description": "AI instruction files to scaffold: claude, codex, cursor, none"
        },
        {
          "flag": "--force",
          "description": "Scaffold into a non-empty directory (overwriting our own files)"
        },
        {
          "flag": "--no-install",
          "description": "Skip the post-scaffold npm install"
        },
        {
          "flag": "--no-verify",
          "description": "Skip the offline round-trip check that the written tree re-exports (no network, no deploy)"
        }
      ],
      "description": "A bundle JSON file → a runnable XanoTS project (offline)"
    },
    {
      "command": "compile",
      "args": "<file>",
      "flags": [
        {
          "flag": "--out, -o <path>",
          "description": "Write the artifact to this path instead of stdout"
        },
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        }
      ],
      "description": "Type-check a single object def and print its JSON artifact"
    },
    {
      "command": "completion",
      "args": "<shell>",
      "description": "Print a shell completion script (bash, zsh, fish)"
    },
    {
      "command": "deploy",
      "args": "<file>",
      "flags": [
        {
          "flag": "--dest <ephemeral|sandbox>",
          "description": "Which environment to import into (default: ephemeral)"
        },
        {
          "flag": "--expires-hours <n>",
          "description": "Ephemeral TTL at create time, 1–72 (default: 1)"
        },
        {
          "flag": "--name <n>",
          "description": "Display name for the ephemeral env (default: the workspace name)"
        },
        {
          "flag": "--bundle <path>",
          "description": "Use an already-exported bundle instead of an entry file"
        },
        {
          "flag": "--static <dir>",
          "description": "Archive this built frontend and deploy it to the static host"
        },
        {
          "flag": "--static-host <name>",
          "description": "Static-host name to deploy to (default: default)"
        },
        {
          "flag": "--static-routing spa|multipage",
          "description": "Override URL resolution (inferred from the bundle; rarely needed)"
        },
        {
          "flag": "--static-env KEY=VALUE",
          "description": "Public config baked in as window.<KEY> (repeatable; never secrets)"
        },
        {
          "flag": "--allow-seed-in-static",
          "description": "Publish the static build even if it contains non-public seed values"
        },
        {
          "flag": "--no-verify",
          "description": "Skip the post-deploy liveness checks (static host, microservices); on the codegen commands it skips the offline round-trip check instead"
        },
        {
          "flag": "--require-microservices",
          "description": "Fail the deploy (exit 4) when a microservice is not ready by the end of the wait"
        },
        {
          "flag": "--test",
          "description": "After deploying, run the environment's tests; a failure exits 5 without retracting the deploy"
        },
        {
          "flag": "--open",
          "description": "Open the deployed URL in your browser when it lands"
        },
        {
          "flag": "--reset",
          "description": "Accepted but redundant — every deploy is a full replace"
        },
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--frozen-lock",
          "description": "CI guard: fail instead of changing the lock"
        },
        {
          "flag": "--strict",
          "description": "Promote every export warning (data-losing shapes, unresolvable filters) to a hard failure"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Ship to a live ephemeral env (or --dest sandbox) → URL"
    },
    {
      "command": "ephemeral codegen",
      "args": "<name> <path>",
      "flags": [
        {
          "flag": "--name <n>",
          "description": "Project name (default: the target directory's basename)"
        },
        {
          "flag": "--framework <id>",
          "description": "Frontend framework to scaffold: react (default), svelte"
        },
        {
          "flag": "--ai <preset>",
          "description": "AI instruction files to scaffold: claude, codex, cursor, none"
        },
        {
          "flag": "--force",
          "description": "Scaffold into a non-empty directory (overwriting our own files)"
        },
        {
          "flag": "--no-install",
          "description": "Skip the post-scaffold npm install"
        },
        {
          "flag": "--no-verify",
          "description": "Skip the offline round-trip check that the written tree re-exports (no network, no deploy)"
        },
        {
          "flag": "--report <grouped|full|json>",
          "description": "Findings as grouped root causes (default), every site, or JSON"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Decode an env into a runnable XanoTS project"
    },
    {
      "command": "ephemeral delete",
      "args": "<name>",
      "flags": [
        {
          "flag": "--yes, -y",
          "description": "Confirm a destructive action non-interactively"
        },
        {
          "flag": "--force",
          "description": "Skip the destroy-this-env confirmation (same as --yes)"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Tear an env down now instead of waiting for its TTL"
    },
    {
      "command": "ephemeral export",
      "args": "<name>",
      "flags": [
        {
          "flag": "--format <json|multidoc>",
          "description": "Which artifact to emit"
        },
        {
          "flag": "--path <p>",
          "description": "Output location — `-` for stdout, a dir, or a file path"
        },
        {
          "flag": "--name <n>",
          "description": "Output basename (default: the env name)"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Write an env's bundle JSON"
    },
    {
      "command": "ephemeral get",
      "args": "<name>",
      "flags": [
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Show one env's URL, status, and expiry"
    },
    {
      "command": "ephemeral impersonate",
      "args": "<name>",
      "flags": [
        {
          "flag": "--guest, -g",
          "description": "Mint a read-only guest session (browse only)"
        },
        {
          "flag": "--url-only, -u",
          "description": "Print the dashboard URL instead of opening a browser"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Open the env's dashboard as a scoped session"
    },
    {
      "command": "ephemeral list",
      "flags": [
        {
          "flag": "--all-workspaces",
          "description": "Enumerate across every workspace, not just the token's"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "List the ephemeral envs under your workspace"
    },
    {
      "command": "export",
      "args": "<file>",
      "flags": [
        {
          "flag": "--out, -o <path>",
          "description": "Write the artifact to this path instead of stdout"
        },
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--frozen-lock",
          "description": "CI guard: fail instead of changing the lock"
        },
        {
          "flag": "--strict",
          "description": "Promote every export warning (data-losing shapes, unresolvable filters) to a hard failure"
        }
      ],
      "description": "Compile and write the deployable JSON bundle"
    },
    {
      "command": "help",
      "args": "[command]",
      "description": "Show this help"
    },
    {
      "command": "init",
      "args": "[dir]",
      "flags": [
        {
          "flag": "--name <n>",
          "description": "Project name (default: the target directory's basename)"
        },
        {
          "flag": "--framework <id>",
          "description": "Frontend framework to scaffold: react (default), svelte"
        },
        {
          "flag": "--ai <preset>",
          "description": "AI instruction files to scaffold: claude, codex, cursor, none"
        },
        {
          "flag": "--force",
          "description": "Scaffold into a non-empty directory (overwriting our own files)"
        },
        {
          "flag": "--no-install",
          "description": "Skip the post-scaffold npm install"
        }
      ],
      "description": "Scaffold a new XanoTS project"
    },
    {
      "command": "lock adopt",
      "args": "<bundle.json>",
      "flags": [
        {
          "flag": "--yes, -y",
          "description": "Confirm a destructive action non-interactively"
        },
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--entry=<path>",
          "description": "Workspace entry to resolve xano.lock beside (for lock subcommands that take no entry file)"
        }
      ],
      "description": "Seed the lock from a live engine packageExport"
    },
    {
      "command": "lock prune",
      "args": "<entry-file> [keys…]",
      "flags": [
        {
          "flag": "--yes, -y",
          "description": "Confirm a destructive action non-interactively"
        },
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--entry=<path>",
          "description": "Workspace entry to resolve xano.lock beside (for lock subcommands that take no entry file)"
        },
        {
          "flag": "--no-verify",
          "description": "Prune the named keys without evaluating the entry file (identity only)"
        }
      ],
      "description": "Drop orphaned entries (all, or just the named keys)"
    },
    {
      "command": "lock rename",
      "args": "<kind> <old> <new>",
      "flags": [
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--entry=<path>",
          "description": "Workspace entry to resolve xano.lock beside (for lock subcommands that take no entry file)"
        }
      ],
      "description": "Move an entry keeping its identity, so the next export renames in place"
    },
    {
      "command": "login",
      "flags": [
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        },
        {
          "flag": "--port <n>",
          "description": "Fixed loopback callback port (default: ephemeral)"
        },
        {
          "flag": "--scope \"<list>\"",
          "description": "OAuth scopes to request (default: the built-in set)"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--force",
          "description": "Sign in again even when a credential is already cached"
        }
      ],
      "description": "OAuth sign-in — shared cache, or --local per project"
    },
    {
      "command": "logout",
      "flags": [
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        }
      ],
      "description": "Revoke the refresh token and clear the cache"
    },
    {
      "command": "marketplace details",
      "args": "<package>",
      "flags": [
        {
          "flag": "--prompt",
          "description": "Print only the add-on wiring prompt, for piping to a coding agent"
        }
      ],
      "description": "Show what an add-on installs, what it needs, and how to register it"
    },
    {
      "command": "marketplace install",
      "args": "<package>",
      "description": "Install a package into the XanoTS project in the current directory"
    },
    {
      "command": "marketplace list",
      "description": "List every published add-on, newest first"
    },
    {
      "command": "marketplace search",
      "args": "<string>",
      "description": "Search add-ons by keyword across name, tagline and description"
    },
    {
      "command": "paths",
      "args": "<file>",
      "flags": [
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--emit <path>",
          "description": "Write a generated route + socket module there (plain data, no SDK import)"
        },
        {
          "flag": "--strict",
          "description": "Promote every export warning (data-losing shapes, unresolvable filters) to a hard failure"
        }
      ],
      "description": "List each query's verb + resolved api:<canonical>/<name>"
    },
    {
      "command": "profile me",
      "flags": [
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Print the scoped user and the instance URL"
    },
    {
      "command": "release",
      "args": "<file>",
      "flags": [
        {
          "flag": "--bundle <path>",
          "description": "Use an already-exported bundle instead of an entry file"
        },
        {
          "flag": "--dry-run",
          "description": "Print what would change and exit without sending it"
        },
        {
          "flag": "--prune",
          "description": "Also delete workspace objects your project no longer defines"
        },
        {
          "flag": "--reset-data",
          "description": "Empty every table the bundle carries before importing"
        },
        {
          "flag": "--seed",
          "description": "Write the bundle's table rows (off by default)"
        },
        {
          "flag": "--replace",
          "description": "Wipe the workspace and import in its place, instead of merging"
        },
        {
          "flag": "--yes, -y",
          "description": "Confirm a destructive action non-interactively"
        },
        {
          "flag": "--force",
          "description": "Skip the confirmation prompt (same as --yes)"
        },
        {
          "flag": "--static <dir>",
          "description": "Archive this built frontend and deploy it to the static host"
        },
        {
          "flag": "--static-host <name>",
          "description": "Static-host name to deploy to (default: default)"
        },
        {
          "flag": "--static-routing spa|multipage",
          "description": "Override URL resolution (inferred from the bundle; rarely needed)"
        },
        {
          "flag": "--static-env KEY=VALUE",
          "description": "Public config baked in as window.<KEY> (repeatable; never secrets)"
        },
        {
          "flag": "--allow-seed-in-static",
          "description": "Publish the static build even if it contains non-public seed values"
        },
        {
          "flag": "--no-verify",
          "description": "Skip the post-deploy liveness checks (static host, microservices); on the codegen commands it skips the offline round-trip check instead"
        },
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--frozen-lock",
          "description": "CI guard: fail instead of changing the lock"
        },
        {
          "flag": "--strict",
          "description": "Promote every export warning (data-losing shapes, unresolvable filters) to a hard failure"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Promote to your instance workspace (merges; never wipes data)"
    },
    {
      "command": "routes",
      "args": "<file>",
      "flags": [
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--emit <path>",
          "description": "Write a generated route + socket module there (plain data, no SDK import)"
        },
        {
          "flag": "--strict",
          "description": "Promote every export warning (data-losing shapes, unresolvable filters) to a hard failure"
        }
      ],
      "description": "Alias for `paths` (alias of `paths`)"
    },
    {
      "command": "sandbox codegen",
      "args": "<path>",
      "flags": [
        {
          "flag": "--name <n>",
          "description": "Project name (default: the target directory's basename)"
        },
        {
          "flag": "--framework <id>",
          "description": "Frontend framework to scaffold: react (default), svelte"
        },
        {
          "flag": "--ai <preset>",
          "description": "AI instruction files to scaffold: claude, codex, cursor, none"
        },
        {
          "flag": "--force",
          "description": "Scaffold into a non-empty directory (overwriting our own files)"
        },
        {
          "flag": "--no-install",
          "description": "Skip the post-scaffold npm install"
        },
        {
          "flag": "--no-verify",
          "description": "Skip the offline round-trip check that the written tree re-exports (no network, no deploy)"
        },
        {
          "flag": "--report <grouped|full|json>",
          "description": "Findings as grouped root causes (default), every site, or JSON"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Decode the sandbox into a runnable XanoTS project"
    },
    {
      "command": "sandbox details",
      "flags": [
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Print the sandbox tenant, headlined by its URL"
    },
    {
      "command": "sandbox export",
      "flags": [
        {
          "flag": "--format <json|multidoc>",
          "description": "Which artifact to emit"
        },
        {
          "flag": "--path <p>",
          "description": "Output location — `-` for stdout, a dir, or a file path"
        },
        {
          "flag": "--name <n>",
          "description": "Output basename (default: `sandbox`)"
        },
        {
          "flag": "--bundle <path>",
          "description": "Use an already-exported bundle instead of an entry file"
        },
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--frozen-lock",
          "description": "CI guard: fail instead of changing the lock"
        },
        {
          "flag": "--strict",
          "description": "Promote every export warning (data-losing shapes, unresolvable filters) to a hard failure"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Write the sandbox workspace as JSON or multidoc XanoScript"
    },
    {
      "command": "test list",
      "flags": [
        {
          "flag": "--dest <ephemeral|sandbox>",
          "description": "Which environment to read (default: ephemeral)"
        },
        {
          "flag": "--name <n>",
          "description": "Ephemeral env to target (default: the one this project last deployed to)"
        },
        {
          "flag": "--kind <unit|workflow>",
          "description": "Only this test family (default: both)"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "List the tests in an environment, without running any"
    },
    {
      "command": "test run",
      "args": "<name>",
      "flags": [
        {
          "flag": "--dest <ephemeral|sandbox>",
          "description": "Which environment to read (default: ephemeral)"
        },
        {
          "flag": "--name <n>",
          "description": "Ephemeral env to target (default: the one this project last deployed to)"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Run one test by name"
    },
    {
      "command": "test run-all",
      "flags": [
        {
          "flag": "--dest <ephemeral|sandbox>",
          "description": "Which environment to read (default: ephemeral)"
        },
        {
          "flag": "--name <n>",
          "description": "Ephemeral env to target (default: the one this project last deployed to)"
        },
        {
          "flag": "--kind <unit|workflow>",
          "description": "Only this test family (default: both)"
        },
        {
          "flag": "--concurrency <n>",
          "description": "Run this many tests at once (default: 1). Tests share the environment database, so raise it only when yours do not depend on shared state."
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Run every test in an environment and report pass/fail"
    },
    {
      "command": "validate",
      "args": "<file>",
      "flags": [
        {
          "flag": "--bundle <path>",
          "description": "Use an already-exported bundle instead of an entry file"
        },
        {
          "flag": "--runtime",
          "description": "After the round-trip, run each deployed function and report"
        },
        {
          "flag": "--capture",
          "description": "Write each round-tripped function's fetched JSON"
        },
        {
          "flag": "--verbose",
          "description": "Print full diffs and raw engine detail"
        },
        {
          "flag": "--instance <url>",
          "description": "Override XANO_VALIDATE_INSTANCE for this run"
        },
        {
          "flag": "--out, -o <path>",
          "description": "Write the artifact to this path instead of stdout"
        },
        {
          "flag": "--lock[=<path>]",
          "description": "Use (and create) xano.lock — default: beside the entry file"
        },
        {
          "flag": "--frozen-lock",
          "description": "CI guard: fail instead of changing the lock"
        },
        {
          "flag": "--strict",
          "description": "Promote every export warning (data-losing shapes, unresolvable filters) to a hard failure"
        }
      ],
      "description": "Deploy to a throwaway tenant and verify the round-trip"
    },
    {
      "command": "version",
      "description": "Print the CLI version"
    },
    {
      "command": "whoami",
      "flags": [
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Alias for `profile me` (alias of `profile me`)"
    },
    {
      "command": "workspace codegen",
      "args": "<path>",
      "flags": [
        {
          "flag": "--name <n>",
          "description": "Project name (default: the target directory's basename)"
        },
        {
          "flag": "--framework <id>",
          "description": "Frontend framework to scaffold: react (default), svelte"
        },
        {
          "flag": "--ai <preset>",
          "description": "AI instruction files to scaffold: claude, codex, cursor, none"
        },
        {
          "flag": "--force",
          "description": "Scaffold into a non-empty directory (overwriting our own files)"
        },
        {
          "flag": "--no-install",
          "description": "Skip the post-scaffold npm install"
        },
        {
          "flag": "--no-verify",
          "description": "Skip the offline round-trip check that the written tree re-exports (no network, no deploy)"
        },
        {
          "flag": "--report <grouped|full|json>",
          "description": "Findings as grouped root causes (default), every site, or JSON"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Decode it into a runnable XanoTS project"
    },
    {
      "command": "workspace details",
      "flags": [
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Which instance and workspace am I bound to?"
    },
    {
      "command": "workspace export",
      "flags": [
        {
          "flag": "--path <p>",
          "description": "Output location — `-` for stdout, a dir, or a file path"
        },
        {
          "flag": "--name <n>",
          "description": "Output basename (default: `workspace`)"
        },
        {
          "flag": "--origin <origin>",
          "description": "Xano control-plane OAuth host (default: $XANO_ORIGIN)"
        },
        {
          "flag": "--config <path>",
          "description": "Explicit credential file (default: $XANO_CONFIG)"
        },
        {
          "flag": "--local",
          "description": "Use the project-local ./.xano/auth.json instead of the shared cache"
        }
      ],
      "description": "Write its bundle JSON"
    }
  ],
  "cliGlobalFlags": [
    {
      "flag": "--json",
      "description": "Force JSON on stdout (default: whenever stdout is not a terminal)"
    },
    {
      "flag": "--help, -h",
      "description": "Show help for the command and exit"
    },
    {
      "flag": "--version, -v",
      "description": "Print the CLI version and exit"
    }
  ]
}
