{"service":"desertbus","version":"1.0.0","baseUrl":"https://desertbus.ja1.io","updatedAt":"2026-10-28T03:20:17.311Z","purpose":"Desert Microbus is an independent browser road trip in a 1979 VW camper, inspired by the classic endurance-driving premise.","unofficialDisclaimer":"Unofficial fan tribute. Not affiliated with Penn & Teller or Absolute Entertainment.","endpoints":[{"method":"GET","path":"/api/v1/activity/{id}/image.webp","public":true,"futureProtected":false,"description":"Actual bounded WebP game-canvas thumbnail for a recorded first drive or overtake; 404 when no screenshot exists."},{"method":"GET","path":"/api/v1/activity","public":true,"futureProtected":false,"description":"Recent five-mile checkpoints, first recorded drives, leaderboard overtakes, actual game-canvas images when available, and top ten unique arcade handles."},{"method":"GET","path":"/api/v1/radio","public":true,"futureProtected":false,"description":"Read-only q search (2–120 characters) through podcasts.ja1.io; returns at most 12 validated Internet Archive embed choices, with honest unavailable states. Server-only PLATPHORM_API_KEY; playback is not certified."},{"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":"Up to ten unique driver handles by default, ranked across durable run history with explicit unavailable status."},{"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","mileage":{"source":"browser-reported odometer","checkpoints":"On first driving second, each five-mile marker, every 60 driving seconds and on page hide; best-effort network sync.","storage":"Cloudflare D1 with honest unavailable fallback","rss":"/api/rss/leaderboard"},"arcadeShortcuts":{"pickup":"watermelon","bonusSeconds":300,"bonusMiles":3.75,"leaderboard":"Actual miles persist to the community board; shortcuts are labeled and earn no canonical points."},"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":"Automatic by default; W / Arrow Up / RT for manual throttle","action":"Accelerate (disable auto-accelerate in Settings for manual driving)","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":"mingus-mountain","name":"Mingus Mountain","mile":20,"type":"landmark","description":"AZ 89A • Scenic descent"},{"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":"us-60-corridor","name":"US 60 corridor","mile":105,"type":"landmark","description":"Toward the west Valley"},{"id":"buckeye","name":"Buckeye","mile":120,"type":"city","description":"I-10 to AZ 85 south"},{"id":"gila-bend","name":"Gila Bend","mile":140,"type":"town","description":"Space Age Lodge"},{"id":"sentinel","name":"Sentinel","mile":160,"type":"landmark","description":"I-8 west • Volcanic desert"},{"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":"winterhaven","name":"Winterhaven","mile":235,"type":"town","description":"California • Across the Colorado River"},{"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":"Mountain Springs grade • I-8 west"},{"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":"vanagon","name":"Vanagon.com","url":"https://vanagon.com/","relationship":"Related Vanagon network site.","donationHandling":"Informational outbound link.","publicAccess":"Public outbound link"},{"id":"gerry-vanagon","name":"Gerry Vanagon","url":"https://gerry.vanagon.com/","relationship":"Related Gerry Vanagon project site.","donationHandling":"Informational outbound link.","publicAccess":"Public outbound link"},{"id":"vanagain","name":"Vanagain.com","url":"https://vanagain.com/","relationship":"Related Vanagain project site.","donationHandling":"Informational outbound link.","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_game_activity","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://activity","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":["*.vanagon.com"],"routeStandard":{"publicRoutes":[{"path":"/","title":"Home","description":"Playable Desert Microbus homepage.","kind":"page"},{"path":"/embed","title":"Embedded game","description":"Public game for authorized Vanagon/Gerry iframe parents; delegate fullscreen with allow=fullscreen. Fictional trip dialogue, real-place inspiration, compressed game distances.","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":"Persistent player mileage, checkpoint storage status, and RSS.","kind":"page"},{"path":"/history","title":"History","description":"Original game 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":"/atom.xml","title":"Atom Activity 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/v1/activity/{id}/image.webp","public":true,"futureProtected":false,"description":"Actual bounded WebP game-canvas thumbnail for a recorded first drive or overtake; 404 when no screenshot exists."},{"method":"GET","path":"/api/v1/activity","public":true,"futureProtected":false,"description":"Recent five-mile checkpoints, first recorded drives, leaderboard overtakes, actual game-canvas images when available, and top ten unique arcade handles."},{"method":"GET","path":"/api/v1/radio","public":true,"futureProtected":false,"description":"Read-only q search (2–120 characters) through podcasts.ja1.io; returns at most 12 validated Internet Archive embed choices, with honest unavailable states. Server-only PLATPHORM_API_KEY; playback is not certified."},{"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":"Up to ten unique driver handles by default, ranked across durable run history with explicit unavailable status."},{"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 Microbus gameplay, non-sensitive run history, leaderboard entries, related Vanagon project 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 Microbus operations are intentionally supported for public entertainment. This is an unofficial tribute and does not process donations. PLATPHORM_API_KEY support is scaffolded for protected backend services, event ingestion, webhook operations, sync, test-triggering, reporting, administrative actions, and sensitive operations."}