{
  "openapi": "3.1.0",
  "info": {
    "title": "GXceed Paper Search API",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://gxceed.com"
    }
  ],
  "paths": {
    "/api/v1/papers/search": {
      "get": {
        "operationId": "searchPapers",
        "summary": "Search GXceed papers",
        "description": "Search published GXceed papers by keyword.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Search query.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum results.",
            "schema": {
              "type": "integer",
              "default": 5,
              "maximum": 50
            }
          },
          {
            "name": "topic",
            "in": "query",
            "required": false,
            "description": "Topic slug filter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language filter: ja, en, or all.",
            "schema": {
              "type": "string",
              "default": "all"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "api_version": { "type": "string" },
                    "query": { "type": "string" },
                    "total": { "type": "integer" },
                    "count": { "type": "integer" },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": { "type": "string" },
                          "title": { "type": "string" },
                          "authors": { "type": "array", "items": { "type": "string" } },
                          "year": { "type": "integer" },
                          "venue": { "type": "string" },
                          "abstract": { "type": "string" },
                          "citation_url": { "type": "string" },
                          "updated_at": { "type": "string" }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
