{
  "openapi": "3.0.3",
  "info": {
    "title": "simturk",
    "version": "1"
  },
  "paths": {
    "/api/challenge": {
      "get": {
        "responses": {
          "200": { "description": "puzzle" }
        }
      }
    },
    "/api/solve": {
      "get": {
        "parameters": [
          { "name": "id", "in": "query", "required": true, "schema": { "type": "string" } },
          { "name": "answer", "in": "query", "required": true, "schema": { "type": "string" } }
        ],
        "responses": {
          "200": { "description": "session_id" }
        }
      }
    },
    "/api/pages": {
      "get": {
        "parameters": [
          { "name": "session_id", "in": "query", "required": true, "schema": { "type": "string" } },
          { "name": "q", "in": "query", "schema": { "type": "string" } },
          { "name": "limit", "in": "query", "schema": { "type": "integer", "default": 20, "maximum": 50 } },
          { "name": "offset", "in": "query", "schema": { "type": "integer", "default": 0 } }
        ],
        "responses": { "200": { "description": "pages, total, limit, offset" } }
      }
    },
    "/api/pages/{name}": {
      "get": {
        "parameters": [
          { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } },
          { "name": "session_id", "in": "query", "required": true, "schema": { "type": "string" } }
        ],
        "responses": { "200": { "description": "body" } }
      }
    },
    "/api/w/{name}": {
      "get": {
        "parameters": [
          { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } },
          { "name": "session_id", "in": "query", "required": true, "schema": { "type": "string" } },
          { "name": "op", "in": "query", "required": true, "schema": { "type": "string", "enum": ["append", "set"] } },
          { "name": "body", "in": "query", "required": true, "schema": { "type": "string" } },
          { "name": "as", "in": "query", "schema": { "type": "string" } },
          { "name": "once", "in": "query", "schema": { "type": "string" } }
        ],
        "responses": { "200": { "description": "ok" } }
      }
    }
  }
}
