{
  "openapi": "3.0.0",
  "info": {
    "version": "2.2.0",
    "title": "RivetKit API"
  },
  "components": {
    "schemas": {},
    "parameters": {}
  },
  "paths": {
    "/actors": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": false,
            "name": "name",
            "in": "query"
          },
          {
            "schema": {
              "type": "string"
            },
            "required": false,
            "name": "actor_ids",
            "in": "query"
          },
          {
            "schema": {
              "type": "string"
            },
            "required": false,
            "name": "key",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "actors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "actor_id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "key": {
                            "type": "string"
                          },
                          "namespace_id": {
                            "type": "string"
                          },
                          "runner_name_selector": {
                            "type": "string"
                          },
                          "create_ts": {
                            "type": "number"
                          },
                          "connectable_ts": {
                            "type": "number",
                            "nullable": true
                          },
                          "destroy_ts": {
                            "type": "number",
                            "nullable": true
                          },
                          "sleep_ts": {
                            "type": "number",
                            "nullable": true
                          },
                          "start_ts": {
                            "type": "number",
                            "nullable": true
                          },
                          "error": {
                            "nullable": true
                          }
                        },
                        "required": [
                          "actor_id",
                          "name",
                          "key",
                          "namespace_id",
                          "runner_name_selector",
                          "create_ts"
                        ]
                      }
                    }
                  },
                  "required": [
                    "actors"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "User error"
          },
          "500": {
            "description": "Internal error"
          }
        }
      },
      "put": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datacenter": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "key": {
                    "type": "string"
                  },
                  "runner_name_selector": {
                    "type": "string"
                  },
                  "crash_policy": {
                    "type": "string"
                  },
                  "input": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name",
                  "key",
                  "runner_name_selector",
                  "crash_policy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "actor": {
                      "type": "object",
                      "properties": {
                        "actor_id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "namespace_id": {
                          "type": "string"
                        },
                        "runner_name_selector": {
                          "type": "string"
                        },
                        "create_ts": {
                          "type": "number"
                        },
                        "connectable_ts": {
                          "type": "number",
                          "nullable": true
                        },
                        "destroy_ts": {
                          "type": "number",
                          "nullable": true
                        },
                        "sleep_ts": {
                          "type": "number",
                          "nullable": true
                        },
                        "start_ts": {
                          "type": "number",
                          "nullable": true
                        },
                        "error": {
                          "nullable": true
                        }
                      },
                      "required": [
                        "actor_id",
                        "name",
                        "key",
                        "namespace_id",
                        "runner_name_selector",
                        "create_ts"
                      ]
                    },
                    "created": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "actor",
                    "created"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "User error"
          },
          "500": {
            "description": "Internal error"
          }
        }
      },
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datacenter": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "runner_name_selector": {
                    "type": "string"
                  },
                  "crash_policy": {
                    "type": "string"
                  },
                  "key": {
                    "type": "string",
                    "nullable": true
                  },
                  "input": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "name",
                  "runner_name_selector",
                  "crash_policy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "actor": {
                      "type": "object",
                      "properties": {
                        "actor_id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "namespace_id": {
                          "type": "string"
                        },
                        "runner_name_selector": {
                          "type": "string"
                        },
                        "create_ts": {
                          "type": "number"
                        },
                        "connectable_ts": {
                          "type": "number",
                          "nullable": true
                        },
                        "destroy_ts": {
                          "type": "number",
                          "nullable": true
                        },
                        "sleep_ts": {
                          "type": "number",
                          "nullable": true
                        },
                        "start_ts": {
                          "type": "number",
                          "nullable": true
                        },
                        "error": {
                          "nullable": true
                        }
                      },
                      "required": [
                        "actor_id",
                        "name",
                        "key",
                        "namespace_id",
                        "runner_name_selector",
                        "create_ts"
                      ]
                    }
                  },
                  "required": [
                    "actor"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "User error"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/actors/names": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "namespace",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "names": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "metadata": {
                            "type": "object",
                            "additionalProperties": {
                              "nullable": true
                            }
                          }
                        },
                        "required": [
                          "metadata"
                        ]
                      }
                    }
                  },
                  "required": [
                    "names"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "User error"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/actors/{actor_id}/kv/keys/{key}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "actor_id",
            "in": "path"
          },
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "key",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "value": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "value"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "User error"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/gateway/{actor}/health": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Health check",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/gateway/{actor}/action/{action}": {
      "post": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "action",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The name of the action to execute"
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "args": {}
                },
                "required": [
                  "args"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Action executed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "output": {}
                  },
                  "required": [
                    "output"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid action"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/gateway/{actor}/request/{path}": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The HTTP path to forward to the actor"
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Response from actor's raw HTTP handler"
          }
        }
      },
      "post": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The HTTP path to forward to the actor"
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Response from actor's raw HTTP handler"
          }
        }
      },
      "put": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The HTTP path to forward to the actor"
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Response from actor's raw HTTP handler"
          }
        }
      },
      "delete": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The HTTP path to forward to the actor"
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Response from actor's raw HTTP handler"
          }
        }
      },
      "patch": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The HTTP path to forward to the actor"
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Response from actor's raw HTTP handler"
          }
        }
      },
      "head": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The HTTP path to forward to the actor"
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Response from actor's raw HTTP handler"
          }
        }
      },
      "options": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The HTTP path to forward to the actor"
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Response from actor's raw HTTP handler"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/state": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Current actor state",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "state": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "patch": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "state": {}
                },
                "required": [
                  "state"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "State updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/connections": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Current actor connections",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "connections": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/rpcs": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Available actor actions/RPCs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rpcs": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/action/{name}": {
      "post": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The name of the action to execute"
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "args": {
                    "type": "array",
                    "items": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Action executed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "output": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/queue": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50
            },
            "description": "Maximum number of queue messages to return"
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Queue status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "size": {
                      "type": "integer"
                    },
                    "maxSize": {
                      "type": "integer"
                    },
                    "truncated": {
                      "type": "boolean"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "createdAtMs": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Enqueue a message from the inspector",
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Queue message name."
                  },
                  "body": {
                    "description": "Message payload. Any JSON value."
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Enqueued message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "createdAtMs": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "delete": {
        "summary": "Clear the queue",
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          }
        ],
        "responses": {
          "200": {
            "description": "Queue cleared",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/traces": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "startMs",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0
            },
            "description": "Start of time range in epoch milliseconds"
          },
          {
            "name": "endMs",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "End of time range in epoch milliseconds. Defaults to now."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1000
            },
            "description": "Maximum number of spans to return"
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Trace spans in OTLP JSON format",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "otlp": {
                      "type": "object"
                    },
                    "clamped": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/workflow-history": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Workflow history and status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "history": {},
                    "isWorkflowEnabled": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/workflow/replay": {
      "post": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "entryId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Workflow history after scheduling a replay",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "history": {},
                    "isWorkflowEnabled": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/summary": {
      "get": {
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Full actor inspector summary",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "state": {},
                    "connections": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "rpcs": {
                      "type": "object"
                    },
                    "queueSize": {
                      "type": "integer"
                    },
                    "isStateEnabled": {
                      "type": "boolean"
                    },
                    "isDatabaseEnabled": {
                      "type": "boolean"
                    },
                    "isWorkflowEnabled": {
                      "type": "boolean"
                    },
                    "workflowHistory": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/queue/{name}": {
      "post": {
        "summary": "Send a queue message",
        "description": "Enqueue a message on the actor's queue. Optionally wait for the actor to complete it and return its response.",
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Name of the queue message."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "body": {
                    "description": "Message payload. Any JSON value."
                  },
                  "wait": {
                    "type": "boolean",
                    "description": "Wait for the actor to complete the message and return its response.",
                    "default": false
                  },
                  "timeout": {
                    "type": "integer",
                    "description": "How long to wait for completion, in milliseconds. Only used with wait."
                  }
                },
                "required": [
                  "body"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Message enqueued. When wait is true, also reports whether the actor completed it.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "completed",
                        "timedOut"
                      ],
                      "description": "Whether the actor completed the message before the timeout."
                    },
                    "response": {
                      "description": "Value the actor passed to complete(). Present when status is completed."
                    }
                  },
                  "required": [
                    "status"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/gateway/{actor}/metadata": {
      "get": {
        "summary": "Get runtime metadata",
        "description": "Identify the RivetKit runtime serving the actor.",
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Runtime metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "runtime": {
                      "type": "string",
                      "description": "Always rivetkit."
                    },
                    "version": {
                      "type": "string",
                      "description": "RivetKit version."
                    },
                    "type": {
                      "type": "string",
                      "description": "Runtime flavor, such as native or wasm."
                    }
                  },
                  "required": [
                    "runtime",
                    "version",
                    "type"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/gateway/{actor}/": {
      "get": {
        "summary": "Actor root",
        "description": "Plain-text banner confirming the request reached a RivetKit actor.",
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-namespace",
            "description": "Engine namespace. Required when actor selects an actor name."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "get",
                "getOrCreate"
              ]
            },
            "name": "rvt-method",
            "description": "Actor-name resolution method. Use get, or getOrCreate with rvt-pool or rvt-runner."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-key",
            "description": "Comma-separated actor key components for actor-name resolution."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-pool",
            "description": "Pool name. Required for getOrCreate unless rvt-runner is supplied."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-runner",
            "description": "Legacy runner name accepted as the pool selector for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-input",
            "description": "Base64url-encoded CBOR actor input for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-region",
            "description": "Preferred region for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "restart",
                "sleep",
                "destroy"
              ]
            },
            "name": "rvt-crash-policy",
            "description": "Crash policy for getOrCreate."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "name": "rvt-skip-ready-wait",
            "description": "Return after resolution without waiting for actor readiness."
          },
          {
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "name": "rvt-token",
            "description": "Routing token. Credentials should be supplied by a trusted client provider, not constructed by models."
          }
        ],
        "responses": {
          "200": {
            "description": "Banner text",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/gateway/{actor}/inspector/database/schema": {
      "get": {
        "summary": "List SQLite tables",
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          }
        ],
        "responses": {
          "200": {
            "description": "Tables and views in the actor's SQLite database",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "schema": {
                      "type": "object",
                      "properties": {
                        "tables": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "table",
                                  "view"
                                ]
                              },
                              "columns": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string"
                                    },
                                    "notnull": {
                                      "type": "boolean"
                                    },
                                    "pk": {
                                      "type": "boolean"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/database/rows": {
      "get": {
        "summary": "Read rows from a table",
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          },
          {
            "name": "table",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Table or view to read."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "maximum": 500
            },
            "description": "Maximum rows to return."
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0
            },
            "description": "Rows to skip."
          }
        ],
        "responses": {
          "200": {
            "description": "Rows",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rows": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/gateway/{actor}/inspector/database/execute": {
      "post": {
        "summary": "Run a SQL statement",
        "parameters": [
          {
            "name": "actor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Actor ID, actor ID with @routing-token, or actor name used with the rvt-* selector query parameters.",
            "x-rivet-actor-selector": {
              "direct": [
                "actor_id",
                "actor_id@routing_token"
              ],
              "query": {
                "required": [
                  "rvt-namespace",
                  "rvt-method"
                ],
                "getOrCreateRequiresOneOf": [
                  "rvt-pool",
                  "rvt-runner"
                ]
              }
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bearer token for inspector authentication. Required in production, optional in development."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sql": {
                    "type": "string",
                    "description": "SQL statement to run against the actor's SQLite database."
                  },
                  "args": {
                    "type": "array",
                    "items": {},
                    "description": "Positional bind parameters."
                  },
                  "properties": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Driver-specific execution options."
                  }
                },
                "required": [
                  "sql"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result rows",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rows": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    }
  }
}