{
  "openapi": "3.1.0",
  "info": {
    "title": "basic-app API",
    "version": "0.8.0"
  },
  "paths": {
    "/api/webhooks/payment": {
      "post": {
        "operationId": "postWebhooksPayment",
        "summary": "Payment completed",
        "description": "Sent after a payment reaches its settled state.",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/webhooks/payment.ts"
      }
    },
    "/api/users/csr": {
      "get": {
        "operationId": "getUsersCsr",
        "summary": "GET /api/users/csr",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/users/csr.ts"
      }
    },
    "/api/users/ssr": {
      "get": {
        "operationId": "getUsersSsr",
        "summary": "GET /api/users/ssr",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/users/ssr.ts"
      }
    },
    "/api/graphql-example": {
      "post": {
        "operationId": "postGraphqlExample",
        "summary": "POST /api/graphql-example",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/graphql-example.ts"
      }
    },
    "/api/typed-user": {
      "post": {
        "operationId": "postTypedUser",
        "summary": "POST /api/typed-user",
        "description": "Validate and echo a typed user payload.",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/typed-user.ts"
      }
    },
    "/api/logout": {
      "post": {
        "operationId": "postLogout",
        "summary": "POST /api/logout",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/logout.ts"
      }
    },
    "/api/hello": {
      "get": {
        "operationId": "getHello",
        "summary": "GET /api/hello",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/hello.ts"
      }
    },
    "/api/login": {
      "post": {
        "operationId": "postLogin",
        "summary": "POST /api/login",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/login.ts"
      }
    },
    "/api/echo": {
      "get": {
        "operationId": "getEcho",
        "summary": "GET /api/echo",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/echo.ts"
      },
      "post": {
        "operationId": "postEcho",
        "summary": "POST /api/echo",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/echo.ts"
      }
    },
    "/api/me": {
      "get": {
        "operationId": "getMe",
        "summary": "GET /api/me",
        "tags": ["API"],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "x-wrnexus-source": "app/api/me.ts"
      }
    }
  },
  "webhooks": {
    "payment.completed": {
      "post": {
        "summary": "Payment completed",
        "description": "Sent after a payment reaches its settled state.",
        "parameters": [
          {
            "name": "x-payment-signature",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentCompleted"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook accepted"
          }
        },
        "x-wrnexus-source": "app/api/webhooks/payment.ts"
      }
    }
  }
}
