{"service":"desertbus","version":"0.1.0","baseUrl":"https://desertbus.platphormnews.com","updatedAt":"2026-06-24T03:17:09.135Z","purpose":"Public browser tribute game for the 1979 VW Westfalia Desert Bus endurance premise.","unofficialDisclaimer":"Unofficial fan tribute. Not affiliated with Penn & Teller, Absolute Entertainment, LoadingReadyRun, Desert Bus for Hope, or Childs Play.","endpoints":[{"method":"GET","path":"/api/health","public":true,"futureProtected":false,"description":"Health summary with honest degraded states."},{"method":"GET","path":"/api/v1/health","public":true,"futureProtected":false,"description":"Versioned health summary."},{"method":"GET","path":"/api/v1/game","public":true,"futureProtected":false,"description":"Game metadata and rules."},{"method":"GET","path":"/api/v1/game/state-schema","public":true,"futureProtected":false,"description":"Local game state schema."},{"method":"GET","path":"/api/v1/game/rules","public":true,"futureProtected":false,"description":"Canonical and non-canonical mode rules."},{"method":"GET","path":"/api/v1/runs/local-schema","public":true,"futureProtected":false,"description":"Browser-local run schema."},{"method":"GET","path":"/api/v1/leaderboard","public":true,"futureProtected":false,"description":"Leaderboard policy and ephemeral server cache."},{"method":"GET","path":"/api/v1/route","public":true,"futureProtected":false,"description":"Route and landmarks."},{"method":"GET","path":"/api/v1/milestones","public":true,"futureProtected":false,"description":"Route milestones including Dateland."},{"method":"GET","path":"/api/v1/charity-links","public":true,"futureProtected":false,"description":"Official external charity links."},{"method":"GET","path":"/api/v1/story","public":true,"futureProtected":false,"description":"Story sections."},{"method":"GET","path":"/api/v1/polaroids","public":true,"futureProtected":false,"description":"Accessible polaroid gallery metadata."},{"method":"GET","path":"/api/events","public":true,"futureProtected":false,"description":"Event capability metadata."},{"method":"GET","path":"/api/v1/events","public":true,"futureProtected":false,"description":"Versioned event capability metadata."},{"method":"POST","path":"/api/v1/events","public":true,"futureProtected":true,"description":"Bounded event validation scaffold; future protected sync."},{"method":"POST","path":"/api/webhooks","public":false,"futureProtected":true,"description":"Webhook validation scaffold."},{"method":"POST","path":"/api/v1/webhooks","public":false,"futureProtected":true,"description":"Versioned webhook validation scaffold."},{"method":"GET","path":"/api/v1/webhooks/status","public":true,"futureProtected":false,"description":"Webhook degraded status."},{"method":"GET","path":"/api/v1/integrations/games","public":true,"futureProtected":false,"description":"Games/BBS integration status."},{"method":"GET","path":"/api/v1/integrations/status","public":true,"futureProtected":false,"description":"Cross-site integration status."},{"method":"GET","path":"/api/mcp","public":true,"futureProtected":false,"description":"MCP metadata and usage."},{"method":"POST","path":"/api/mcp","public":true,"futureProtected":true,"description":"JSON-RPC 2.0 MCP endpoint."},{"method":"GET","path":"/api/cron/refresh","public":false,"futureProtected":true,"description":"Bounded refresh preview/status."},{"method":"POST","path":"/api/cron/refresh","public":false,"futureProtected":true,"description":"Bounded refresh job."}],"authPolicy":{"publicSafeByDefault":true,"enforcementEnv":"PLATPHORM_REQUIRE_API_KEY","keyEnv":"PLATPHORM_API_KEY","acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key: $PLATPHORM_API_KEY"],"neverStore":"PLATPHORM_API_KEY is never stored in browser storage, scores, local runs, traces, logs, RSS, sitemap, OpenAPI examples, or public discovery files.","enforcementEnabled":false,"configured":true},"publicAccess":{"enabledByDefault":true,"publicSafeFlows":["gameplay","local leaderboard","story","charity links","health","discovery","read-only MCP"]},"gameRules":{"mode":"canonical","routeMiles":360,"speedMph":45,"canonicalTripSeconds":28800,"canonicalTripLabel":"08:00:00","pointsPerCompletedRun":1,"noPause":true,"driftLeft":true,"datelandMile":180,"start":"Jerome, Arizona","finish":"La Jolla, San Diego","premise":"Drive 360 miles at 45 mph in real elapsed driving time. The steering pulls left and the player must steer right."},"controls":[{"id":"accelerate","input":"W / Arrow Up / RT","action":"Accelerate","publicAccess":"Public browser control"},{"id":"brake","input":"S / Arrow Down / LT","action":"Brake","publicAccess":"Public browser control"},{"id":"steer-left","input":"A / Arrow Left / left stick left","action":"Steer left","publicAccess":"Public browser control"},{"id":"steer-right","input":"D / Arrow Right / left stick right","action":"Steer right against the constant left pull","publicAccess":"Public browser control"},{"id":"horn","input":"H / Space / X button","action":"Horn","publicAccess":"Public browser control"},{"id":"wipers","input":"V / Y button","action":"Toggle windshield wipers","publicAccess":"Public browser control"},{"id":"fullscreen","input":"F / Start button","action":"Toggle fullscreen","publicAccess":"Public browser control"}],"route":{"id":"jerome-to-la-jolla","name":"Jerome, AZ to La Jolla, San Diego","distanceMiles":360,"nominalSpeedMph":45,"durationSeconds":28800,"landmarks":[{"id":"jerome-arizona","name":"Jerome, Arizona","mile":0,"type":"start","description":"Copper Mining Town"},{"id":"prescott-valley","name":"Prescott Valley","mile":40,"type":"town","description":"Prescott Valley route marker."},{"id":"yavapai-prescott-tribe","name":"Yavapai-Prescott Tribe","mile":55,"type":"reservation","description":"Yavapai Nation"},{"id":"wickenburg","name":"Wickenburg","mile":80,"type":"town","description":"Guest Ranch Capital"},{"id":"gila-river-indian-community","name":"Gila River Indian Community","mile":105,"type":"reservation","description":"Akimel O’odham / Pee-Posh"},{"id":"phoenix","name":"Phoenix","mile":120,"type":"city","description":"Valley of the Sun"},{"id":"gila-bend","name":"Gila Bend","mile":140,"type":"town","description":"Space Age Lodge"},{"id":"tohono-o-odham-nation","name":"Tohono O’odham Nation","mile":160,"type":"reservation","description":"Desert People"},{"id":"dateland","name":"Dateland","mile":180,"type":"milestone","description":"Dateland halfway milestone and date-shake stop."},{"id":"yuma","name":"Yuma","mile":215,"type":"city","description":"Gateway to California"},{"id":"cocopah-reservation","name":"Cocopah Reservation","mile":235,"type":"reservation","description":"Cocopah Indian Tribe"},{"id":"el-centro","name":"El Centro","mile":260,"type":"city","description":"Imperial Valley"},{"id":"ocotillo","name":"Ocotillo","mile":290,"type":"town","description":"Last Stop Before the Climb"},{"id":"san-diego-county-line","name":"San Diego County Line","mile":315,"type":"landmark","description":"Welcome to California"},{"id":"pine-valley","name":"Pine Valley","mile":335,"type":"town","description":"Pine Valley route marker."},{"id":"la-jolla-san-diego","name":"La Jolla, San Diego","mile":360,"type":"end","description":"Beach at Last"}]},"milestones":[{"id":"dateland","name":"Dateland","mile":180,"type":"milestone","description":"Dateland halfway milestone and date-shake stop.","slug":"dateland","triggered":false,"canonical":true}],"localLeaderboardPolicy":{"storageMode":"ephemeral-memory","canonicalStorage":"browser-local","globalLeaderboard":{"status":"degraded-unavailable","reason":"No durable backend leaderboard is configured in Phase 1.","futureProtected":true},"entries":[],"count":0,"emptyState":"No server-cache runs have been submitted in this deployment instance. Browser-local leaderboards remain local to each player."},"charityLinks":[{"id":"desert-bus-for-hope","name":"Desert Bus for Hope","url":"https://desertbus.org/","relationship":"Official external Desert Bus for Hope site.","donationHandling":"Outbound only. This site does not process or route donations.","publicAccess":"Public outbound link"},{"id":"childs-play","name":"Childs Play Charity","url":"https://childsplaycharity.org/","relationship":"Official external Childs Play Charity site.","donationHandling":"Outbound only. This site does not process or route donations.","publicAccess":"Public outbound link"},{"id":"childs-play-get-involved","name":"Support Childs Play","url":"https://childsplaycharity.org/get-involved","relationship":"Official external Childs Play support and get-involved page.","donationHandling":"Outbound only. Support actions happen on Childs Play systems, not PlatPhormNews.","publicAccess":"Public outbound link"}],"eventCapabilities":{"publicMetadata":true,"localValidation":true,"remoteIngestion":"future-protected"},"webhookCapabilities":{"status":"degraded-local-validation-only","outboundDelivery":false,"futureProtected":true},"modelScaffolding":{"status":"degraded-deterministic-fallback","clientModelCalls":false,"tasks":["game explanation","run summary","story summary","accessibility guidance","testing guidance","reports"]},"tools":["get_game_info","get_game_rules","get_route_info","list_milestones","get_milestone","get_leaderboard","get_local_run_schema","list_charity_links","validate_charity_links","get_story_sections","get_polaroids","get_health","get_info","get_route_compliance","get_discovery_compliance","create_docs_report","create_sheet_report","create_deck_summary"],"resources":["desertbus://game","desertbus://rules","desertbus://route","desertbus://milestones","desertbus://milestone/dateland","desertbus://leaderboard","desertbus://charity-links","desertbus://story","desertbus://polaroids","desertbus://faq","desertbus://openapi","desertbus://llms","desertbus://trust-policy"],"prompts":["explain_desert_bus","explain_controls","summarize_run","generate_charity_blurb","explain_dateland_milestone","create_desertbus_testing_plan","create_desertbus_report","human_machine_desertbus_handoff"],"trustedDomains":["*.platphormnews.com"],"routeStandard":{"publicRoutes":[{"path":"/","title":"Home","description":"Playable Desert Bus Westfalia Edition homepage.","kind":"page"},{"path":"/play","title":"Play","description":"Public playable game cockpit.","kind":"page"},{"path":"/how-to-play","title":"How to Play","description":"Controls, canonical rules, and accessibility notes.","kind":"page"},{"path":"/leaderboard","title":"Leaderboard","description":"Browser-local leaderboard and global persistence status.","kind":"page"},{"path":"/history","title":"History","description":"Original Desert Bus context and tribute disclaimer.","kind":"page"},{"path":"/charity","title":"Charity","description":"Official outbound charity links and donation policy.","kind":"page"},{"path":"/story","title":"Story","description":"Westfalia road-trip story layer.","kind":"page"},{"path":"/dateland","title":"Dateland","description":"Halfway milestone and route context.","kind":"page"},{"path":"/polaroids","title":"Polaroids","description":"Accessible story image gallery.","kind":"page"},{"path":"/faq","title":"FAQ","description":"Public frequently asked questions.","kind":"page"},{"path":"/about","title":"About","description":"Site purpose and platform contract summary.","kind":"page"},{"path":"/privacy","title":"Privacy","description":"Browser-local storage and no-account policy.","kind":"page"},{"path":"/terms","title":"Terms","description":"Tribute terms and safety notes.","kind":"page"},{"path":"/disclaimer","title":"Disclaimer","description":"Unofficial tribute and external donation disclaimer.","kind":"page"},{"path":"/stats","title":"Stats","description":"Browser-local player stats page.","kind":"page"}],"discoveryRoutes":[{"path":"/api/docs","title":"API Docs","kind":"api-docs"},{"path":"/openapi.yaml","title":"OpenAPI YAML","kind":"discovery"},{"path":"/openapi.json","title":"OpenAPI JSON","kind":"discovery"},{"path":"/llms.txt","title":"LLMS Text","kind":"discovery"},{"path":"/llms-full.txt","title":"LLMS Full Text","kind":"discovery"},{"path":"/llms-index.json","title":"LLMS Index","kind":"discovery"},{"path":"/rss.xml","title":"RSS Feed","kind":"feed"},{"path":"/feed.xml","title":"Feed Alias","kind":"feed"},{"path":"/sitemap.xml","title":"Sitemap","kind":"discovery"},{"path":"/sitemap-main.xml","title":"Main Sitemap","kind":"discovery"},{"path":"/sitemap-index.xml","title":"Sitemap Index","kind":"discovery"},{"path":"/robots.txt","title":"Robots","kind":"discovery"},{"path":"/manifest.webmanifest","title":"Web Manifest","kind":"discovery"},{"path":"/.well-known/mcp.json","title":"MCP Well Known","kind":"well-known"},{"path":"/.well-known/agents.json","title":"Agents Well Known","kind":"well-known"},{"path":"/.well-known/ai-plugin.json","title":"AI Plugin Well Known","kind":"well-known"},{"path":"/.well-known/security.txt","title":"Security Policy","kind":"well-known"},{"path":"/.well-known/trust.json","title":"Trust Policy","kind":"well-known"}],"apiEndpoints":[{"method":"GET","path":"/api/health","public":true,"futureProtected":false,"description":"Health summary with honest degraded states."},{"method":"GET","path":"/api/v1/health","public":true,"futureProtected":false,"description":"Versioned health summary."},{"method":"GET","path":"/api/v1/game","public":true,"futureProtected":false,"description":"Game metadata and rules."},{"method":"GET","path":"/api/v1/game/state-schema","public":true,"futureProtected":false,"description":"Local game state schema."},{"method":"GET","path":"/api/v1/game/rules","public":true,"futureProtected":false,"description":"Canonical and non-canonical mode rules."},{"method":"GET","path":"/api/v1/runs/local-schema","public":true,"futureProtected":false,"description":"Browser-local run schema."},{"method":"GET","path":"/api/v1/leaderboard","public":true,"futureProtected":false,"description":"Leaderboard policy and ephemeral server cache."},{"method":"GET","path":"/api/v1/route","public":true,"futureProtected":false,"description":"Route and landmarks."},{"method":"GET","path":"/api/v1/milestones","public":true,"futureProtected":false,"description":"Route milestones including Dateland."},{"method":"GET","path":"/api/v1/charity-links","public":true,"futureProtected":false,"description":"Official external charity links."},{"method":"GET","path":"/api/v1/story","public":true,"futureProtected":false,"description":"Story sections."},{"method":"GET","path":"/api/v1/polaroids","public":true,"futureProtected":false,"description":"Accessible polaroid gallery metadata."},{"method":"GET","path":"/api/events","public":true,"futureProtected":false,"description":"Event capability metadata."},{"method":"GET","path":"/api/v1/events","public":true,"futureProtected":false,"description":"Versioned event capability metadata."},{"method":"POST","path":"/api/v1/events","public":true,"futureProtected":true,"description":"Bounded event validation scaffold; future protected sync."},{"method":"POST","path":"/api/webhooks","public":false,"futureProtected":true,"description":"Webhook validation scaffold."},{"method":"POST","path":"/api/v1/webhooks","public":false,"futureProtected":true,"description":"Versioned webhook validation scaffold."},{"method":"GET","path":"/api/v1/webhooks/status","public":true,"futureProtected":false,"description":"Webhook degraded status."},{"method":"GET","path":"/api/v1/integrations/games","public":true,"futureProtected":false,"description":"Games/BBS integration status."},{"method":"GET","path":"/api/v1/integrations/status","public":true,"futureProtected":false,"description":"Cross-site integration status."},{"method":"GET","path":"/api/mcp","public":true,"futureProtected":false,"description":"MCP metadata and usage."},{"method":"POST","path":"/api/mcp","public":true,"futureProtected":true,"description":"JSON-RPC 2.0 MCP endpoint."},{"method":"GET","path":"/api/cron/refresh","public":false,"futureProtected":true,"description":"Bounded refresh preview/status."},{"method":"POST","path":"/api/cron/refresh","public":false,"futureProtected":true,"description":"Bounded refresh job."}]},"trustPolicy":"Public-safe browser-based Desert Bus gameplay, local non-sensitive run history, local leaderboard entries, official charity outbound links, story/history browsing, read-only MCP introspection, RSS/feed consumption, trusted-domain discovery, standard route compliance, Vercel metadata capture, backend model scaffolding, and trace-linked Desert Bus operations are intentionally supported for public entertainment and charity-awareness use. This is an unofficial tribute and does not process donations. PLATPHORM_API_KEY support is scaffolded for future protected backend services, global leaderboard persistence, event ingestion, webhook operations, sync, test-triggering, reporting, administrative actions, and sensitive operations."}