{"openapi": "3.1.0", "info": {"title": "Pairoo Connect", "version": "0.3.0", "description": "Project-scoped beta. Create the project and integration key in the workspace. No launch, spend or social-send endpoints. Generation is asynchronous; poll the specific /jobs/{job_id} endpoint with read scope. Challenge generation uses community scope, kit/chat use create scope; all share the same owner AI quota. Activity edits require owner and draft state; exports require read scope and closed state. Cookie-authenticated mutations require a trusted Origin; bearer calls do not use cookies. 60 mutations and 180 authenticated requests per minute per principal; 20 AI requests per owner per 24h. Key issuance retries return 409 secret_already_delivered, never the secret again."}, "servers": [{"url": "/"}], "paths": {"/v1/projects": {"get": {"summary": "List accessible projects", "operationId": "get_v1_projects", "parameters": [], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}, "post": {"summary": "Create a private project", "operationId": "post_v1_projects", "parameters": [{"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Owner session required.", "security": [{"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Identifier"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NewProject"}}}}}}, "/v1/projects/{project_id}": {"get": {"summary": "Project, revisions, approved decisions, dialogue and job states", "operationId": "get_v1_projects_project_id", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}, "/v1/projects/{project_id}/revisions": {"post": {"summary": "Save a draft kit revision", "operationId": "post_v1_projects_project_id_revisions", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Project-bound integration scope: create.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Identifier"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RevisionInput"}}}}}}, "/v1/projects/{project_id}/generate": {"post": {"summary": "Queue creative kit generation", "operationId": "post_v1_projects_project_id_generate", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Project-bound integration scope: create.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"202": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Prompt"}}}}}}, "/v1/projects/{project_id}/chat": {"post": {"summary": "Queue a project-aware conversation", "operationId": "post_v1_projects_project_id_chat", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Project-bound integration scope: create.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"202": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Prompt"}}}}}}, "/v1/projects/{project_id}/jobs/{job_id}": {"get": {"summary": "Read a specific job, including jobs outside the latest project list", "operationId": "get_v1_projects_project_id_jobs_job_id", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "job_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobStatus"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}, "/v1/projects/{project_id}/revisions/{revision_id}/approve": {"post": {"summary": "Approve a specific revision", "operationId": "post_v1_projects_project_id_revisions_revision_id_approve", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "revision_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Owner session required.", "security": [{"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object"}}}}}}, "/v1/projects/{project_id}/publication": {"post": {"summary": "Publish or hide the approved kit as a project page", "operationId": "post_v1_projects_project_id_publication", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Owner session required.", "security": [{"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Publication"}}}}}}, "/v1/showcase/{project_id}": {"get": {"summary": "Published kit and public challenges only", "operationId": "get_v1_showcase_project_id", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Public endpoint.", "security": [], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}, "/v1/projects/{project_id}/memory": {"post": {"summary": "Explicitly edit or delete an approved decision", "operationId": "post_v1_projects_project_id_memory", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Project-bound integration scope: memory.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Memory"}}}}}}, "/v1/projects/{project_id}/activities": {"post": {"summary": "Create a private activity draft", "operationId": "post_v1_projects_project_id_activities", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Project-bound integration scope: community.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NewActivity"}}}}}}, "/v1/projects/{project_id}/activities/generate": {"post": {"summary": "Queue an AI challenge draft using the project kit and decisions; consumes shared owner AI quota", "operationId": "post_v1_projects_project_id_activities_generate", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Project-bound integration scope: community.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"202": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Prompt"}}}}}}, "/v1/projects/{project_id}/activities/{activity_id}": {"get": {"summary": "Private activity and moderation queue", "operationId": "get_v1_projects_project_id_activities_activity_id", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "activity_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}, "post": {"summary": "Edit a draft, publish, hide, close or moderate an activity", "operationId": "post_v1_projects_project_id_activities_activity_id", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "activity_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Owner session required.", "security": [{"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ManageActivity"}}}}}}, "/v1/projects/{project_id}/activities/{activity_id}/results.json": {"get": {"summary": "Export a closed activity: approved contributions and credits only", "operationId": "get_v1_projects_project_id_activities_activity_id_results_json", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "activity_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ActivityResults"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}, "/v1/projects/{project_id}/activities/{activity_id}/results.md": {"get": {"summary": "Export credited results of a closed activity as Markdown", "operationId": "get_v1_projects_project_id_activities_activity_id_results_md", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "activity_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"text/markdown": {"schema": {"type": "string"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}, "/v1/projects/{project_id}/keys": {"post": {"summary": "Issue a scoped key; secret returned exactly once", "operationId": "post_v1_projects_project_id_keys", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Owner session required.", "security": [{"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NewKey"}}}}}}, "/v1/projects/{project_id}/keys/{key_id}/revoke": {"post": {"summary": "Revoke an integration immediately", "operationId": "post_v1_projects_project_id_keys_key_id_revoke", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "key_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Owner session required.", "security": [{"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object"}}}}}}, "/v1/activities/{activity_id}": {"get": {"summary": "Published rules and approved contributions only", "operationId": "get_v1_activities_activity_id", "parameters": [{"name": "activity_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Public endpoint.", "security": [], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}, "/v1/activities/{activity_id}/entries": {"post": {"summary": "Submit one contribution for moderation", "operationId": "post_v1_activities_activity_id_entries", "parameters": [{"name": "activity_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "Idempotency-Key", "in": "header", "required": true, "schema": {"type": "string", "minLength": 1, "maxLength": 128}, "description": "Reuse only for an exact retry of the same operation and input."}], "description": "Owner session required.", "security": [{"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Entry"}}}}}}, "/v1/projects/{project_id}/revisions/{revision_id}/card.svg": {"get": {"summary": "Export a specific kit revision", "operationId": "get_v1_projects_project_id_revisions_revision_id_card_svg", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "revision_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"image/svg+xml": {"schema": {"type": "string"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}, "/v1/projects/{project_id}/revisions/{revision_id}/kit.md": {"get": {"summary": "Export a specific kit revision", "operationId": "get_v1_projects_project_id_revisions_revision_id_kit_md", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "revision_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"text/markdown": {"schema": {"type": "string"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}, "/v1/projects/{project_id}/revisions/{revision_id}/kit.json": {"get": {"summary": "Export a specific kit revision", "operationId": "get_v1_projects_project_id_revisions_revision_id_kit_json", "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}, {"name": "revision_id", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-f0-9]{24}$"}}], "description": "Project-bound integration scope: read.", "security": [{"projectKey": []}, {"ownerSession": []}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object"}}}}, "400": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "401": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "403": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "404": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "409": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "413": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "415": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "429": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "500": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}, "503": {"description": "Structured error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Problem"}}}}}}}}, "components": {"securitySchemes": {"projectKey": {"type": "http", "scheme": "bearer"}, "ownerSession": {"type": "apiKey", "in": "cookie", "name": "__Secure-pairoo_session"}}, "schemas": {"Problem": {"type": "object", "properties": {"error": {"type": "object", "properties": {"code": {"type": "string"}, "message": {"type": "string"}}, "required": ["code", "message"], "additionalProperties": false}}, "required": ["error"], "additionalProperties": false}, "NewProject": {"type": "object", "properties": {"name": {"type": "string", "maxLength": 64}, "brief": {"type": "string", "maxLength": 6000}}, "required": ["name", "brief"], "additionalProperties": false}, "Kit": {"type": "object", "additionalProperties": false, "properties": {"name": {"type": "string"}, "tagline": {"type": "string"}, "concept": {"type": "string"}, "description": {"type": "string"}, "character": {"type": "string"}, "art_direction": {"type": "string"}, "palette": {"type": "array", "items": {"type": "string"}, "minItems": 2, "maxItems": 5}, "posts": {"type": "array", "items": {"type": "string"}, "minItems": 3, "maxItems": 3}}, "required": ["name", "tagline", "concept", "description", "character", "art_direction", "palette", "posts"]}, "RevisionInput": {"type": "object", "properties": {"kit": {"$ref": "#/components/schemas/Kit"}}, "required": ["kit"], "additionalProperties": false}, "Prompt": {"type": "object", "properties": {"message": {"type": "string", "maxLength": 4000}}, "required": ["message"], "additionalProperties": false}, "Memory": {"type": "object", "properties": {"name": {"type": "string", "maxLength": 100}, "text": {"type": "string", "maxLength": 2000}, "remove": {"type": "boolean"}}, "required": ["name"], "additionalProperties": false}, "NewActivity": {"type": "object", "properties": {"title": {"type": "string", "maxLength": 100}, "instructions": {"type": "string", "maxLength": 4000}, "deadline": {"type": ["number", "null"]}}, "required": ["title", "instructions"], "additionalProperties": false}, "ManageActivity": {"type": "object", "properties": {"action": {"enum": ["edit", "publish", "unpublish", "close", "approve", "reject", "winner"]}, "entry_id": {"type": "string"}, "title": {"type": "string", "maxLength": 100}, "instructions": {"type": "string", "maxLength": 4000}, "deadline": {"type": ["number", "null"]}}, "required": ["action"], "additionalProperties": false}, "Entry": {"type": "object", "properties": {"text": {"type": "string", "maxLength": 2000}, "url": {"type": "string", "maxLength": 1000}}, "required": ["text"], "additionalProperties": false}, "NewKey": {"type": "object", "properties": {"label": {"type": "string", "maxLength": 80}, "scopes": {"type": "array", "minItems": 1, "items": {"enum": ["read", "create", "memory", "community"]}}}, "required": ["label", "scopes"], "additionalProperties": false}, "Job": {"type": "object", "properties": {"job_id": {"type": "string"}, "state": {"const": "queued"}}, "required": ["job_id", "state"], "additionalProperties": false}, "JobStatus": {"type": "object", "properties": {"id": {"type": "string"}, "kind": {"enum": ["kit", "chat", "activity"]}, "state": {"enum": ["queued", "running", "completed", "failed"]}, "result": {"type": ["object", "null"]}, "error": {"type": ["string", "null"]}, "at": {"type": "number"}, "finished": {"type": ["number", "null"]}}, "required": ["id", "kind", "state", "result"], "additionalProperties": false}, "ActivityResults": {"type": "object", "properties": {"activity_id": {"type": "string"}, "title": {"type": "string"}, "instructions": {"type": "string"}, "state": {"const": "closed"}, "generated_at": {"type": "number"}, "winner": {"type": ["string", "null"]}, "approved_count": {"type": "integer", "minimum": 0}, "entries": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "string"}, "label": {"type": "string"}, "text": {"type": "string"}, "url": {"type": "string"}, "at": {"type": "number"}}, "required": ["id", "label", "text", "url", "at"], "additionalProperties": false}}}, "required": ["activity_id", "title", "instructions", "state", "generated_at", "winner", "approved_count", "entries"], "additionalProperties": false}, "Identifier": {"type": "object", "properties": {"id": {"type": "string"}}, "required": ["id"], "additionalProperties": false}, "Project": {"type": "object", "required": ["id", "name", "brief", "memory", "revisions", "jobs"], "properties": {"id": {"type": "string"}, "name": {"type": "string"}, "brief": {"type": "string"}, "approved": {"type": ["string", "null"]}, "revisions": {"type": "array", "items": {"type": "object"}}, "memory": {"type": "array", "items": {"type": "object"}}, "jobs": {"type": "array", "items": {"type": "object"}}, "dialogue": {"type": "array", "items": {"type": "object"}}, "activities": {"type": "array", "items": {"type": "object"}}}}, "Publication": {"type": "object", "properties": {"published": {"type": "boolean"}}, "required": ["published"], "additionalProperties": false}}}}