{"openapi":"3.0.3","info":{"title":"Mini Game Arcade API","description":"A curated collection of 23 browser-based mini games. Play Snake, Tetris, Minesweeper, Space Invaders, and more - free, no downloads required.\n\n## MCP Integration\n\nThis API is discoverable through the MCP (Model Context Protocol) hub at `mcp.platphormnews.com`. The `/network.json` endpoint provides machine-readable metadata for federation and automated service discovery.\n\n## LLM Context Files\n\n- `/llms.txt` - Brief context for language models\n- `/llms-full.txt` - Comprehensive context including all game data and API schemas\n- `/llms-index.json` - Machine-readable index of all discovery files","version":"2.0.0","contact":{"name":"Michael Barbine","email":"Michael@Barbineworldwide.com","url":"https://github.com/mbarbine"},"license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"}},"servers":[{"url":"https://games.platphormnews.com","description":"Production"},{"url":"http://localhost:3000","description":"Local development"}],"paths":{"/api/health":{"get":{"operationId":"getHealth","summary":"Health check","description":"Returns service health status, version, uptime, and game count. Use this endpoint for monitoring and uptime checks.","tags":["System"],"responses":{"200":{"description":"Service is healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/api/v1/games":{"get":{"operationId":"listGames","summary":"List all games","description":"Returns a paginated, filterable list of all games in the arcade. Supports category filtering and full-text search across titles, descriptions, and keywords.","tags":["Games"],"parameters":[{"name":"category","in":"query","description":"Filter by game category","schema":{"type":"string","enum":["Arcade","Puzzle","Strategy","Action"]}},{"name":"search","in":"query","description":"Full-text search across title, description, and keywords","schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number (1-indexed)","schema":{"type":"integer","default":1,"minimum":1}},{"name":"limit","in":"query","description":"Items per page (max 50)","schema":{"type":"integer","default":50,"minimum":1,"maximum":50}}],"responses":{"200":{"description":"List of games","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GamesListResponse"}}}}}}},"/api/v1/games/{slug}":{"get":{"operationId":"getGame","summary":"Get a single game by slug","description":"Returns full metadata for a single game identified by its URL slug.","tags":["Games"],"parameters":[{"name":"slug","in":"path","required":true,"description":"URL-friendly game identifier (e.g. 'snake', 'tetris', 'aim-trainer')","schema":{"type":"string"}}],"responses":{"200":{"description":"Game details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponse"}}}},"404":{"description":"Game not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/faq":{"get":{"operationId":"listFAQ","summary":"List FAQ entries","description":"Returns all FAQ entries, optionally filtered by category.","tags":["Content"],"parameters":[{"name":"category","in":"query","description":"Filter by FAQ category","schema":{"type":"string","enum":["general","technical","games","api"]}}],"responses":{"200":{"description":"List of FAQ entries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FAQListResponse"}}}}}}},"/api/webhooks":{"post":{"operationId":"receiveWebhook","summary":"Receive webhook events","description":"Accepts inbound webhook events. Supports idempotency via the `x-webhook-id` header. Duplicate webhook IDs are acknowledged without reprocessing.","tags":["Automation"],"parameters":[{"name":"x-webhook-id","in":"header","description":"Unique webhook delivery ID for idempotency","schema":{"type":"string"}},{"name":"x-webhook-signature","in":"header","description":"HMAC-SHA256 signature for payload verification","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookPayload"}}}},"responses":{"200":{"description":"Webhook accepted"},"400":{"description":"Invalid payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/events":{"get":{"operationId":"getEvents","summary":"Event outbox","description":"Returns recent events in an automation-tool compatible format. Useful for integration with workflow tools and event-driven architectures.","tags":["Automation"],"responses":{"200":{"description":"List of recent events","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsResponse"}}}}}}},"/network.json":{"get":{"operationId":"getNetworkManifest","summary":"Network federation manifest","description":"Machine-readable manifest for service federation and MCP discovery. Contains API endpoints, discovery file locations, and site metadata.","tags":["Discovery"],"responses":{"200":{"description":"Network manifest JSON"}}}}},"components":{"schemas":{"Game":{"type":"object","properties":{"id":{"type":"string","description":"Internal game identifier"},"slug":{"type":"string","description":"URL-friendly slug"},"title":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Short description"},"category":{"type":"string","enum":["Arcade","Puzzle","Strategy","Action"]},"themeColor":{"type":"string","description":"Hex color code"},"iconClass":{"type":"string","description":"Tailwind background class"},"isNew":{"type":"boolean","description":"Whether game is recently added"},"keywords":{"type":"array","items":{"type":"string"},"description":"Search keywords"}},"required":["id","slug","title","description","category","themeColor","iconClass","keywords"]},"FAQEntry":{"type":"object","properties":{"id":{"type":"string"},"question":{"type":"string"},"answer":{"type":"string"},"category":{"type":"string","enum":["general","technical","games","api"]}},"required":["id","question","answer","category"]},"WebhookPayload":{"type":"object","properties":{"event":{"type":"string","description":"Event type (e.g. game.played, game.highscore, site.deployed)"},"data":{"type":"object","description":"Event-specific payload data"}},"required":["event"]},"HealthResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","example":"healthy"},"version":{"type":"string","example":"2.0.0"},"uptime":{"type":"number","description":"Uptime in seconds"},"gameCount":{"type":"number","example":23},"timestamp":{"type":"string","format":"date-time"},"environment":{"type":"string"}}}}},"GamesListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"},"totalPages":{"type":"integer"},"categories":{"type":"array","items":{"type":"string"}}}}}},"GameResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Game"}}},"FAQListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FAQEntry"}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"categories":{"type":"array","items":{"type":"string"}}}}}},"EventsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"data":{"type":"object"}}}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"format":{"type":"string","example":"n8n-compatible"}}}}},"ErrorResponse":{"type":"object","properties":{"data":{"type":"null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"tags":[{"name":"Roadmap","description":"SEO, GEO, AEO, and claws.platphormenews.com integration"},{"name":"System","description":"Health checks and infrastructure"},{"name":"Games","description":"Game catalog and metadata"},{"name":"Content","description":"FAQ and content endpoints"},{"name":"Automation","description":"Webhooks, events, and integration"},{"name":"Discovery","description":"Network federation and MCP metadata"}],"externalDocs":{"description":"LLM Context Files","url":"https://games.platphormnews.com/llms-full.txt"}}