{
  "name": "HowLongToBeat API with Supabase",
  "version": "4.2.0",
  "description": "v4.2: Stale-while-revalidate for both DB cache and auth token. Cache always returned immediately, refreshed in background if stale. Token used even past expiry, refreshed async via ctx.waitUntil.",
  "endpoints": {
    "v2_resolve": "GET|POST /v2/resolve?gameName=xxx&titleId=xxx&releaseYear=2015&debug=1 (public)",
    "v2_clean": "GET /v2/clean?q=gameName (public, preview cleanGameName)",
    "search": "GET /search?q=gameName&debug=1 (public)",
    "query": "GET /hltb?titleId=CUSA12345 (requires x-api-key)",
    "batchQuery": "POST /hltb/batch (requires x-api-key)",
    "upload": "POST /hltb/upload (requires x-api-key)",
    "batchUpload": "POST /hltb/upload/batch (requires x-api-key)"
  }
}