{"name":"simple-server","endpoints":{"GET /movies":"All cinemas + showtimes for a movie in an Indian city, fetched directly from District (~1s, no Google/ScrapingBee). Params: name (required), location (required, India city e.g. \"Delhi NCR\"). e.g. /movies?name=Alpha&location=Delhi+NCR","GET /worldcup":"World Cup matches happening now or later, with live scores.","GET /worldcup/h2h":"Most recent match between two teams. Params: a, b, optional mode=score|winner. e.g. /worldcup/h2h?a=Mexico&b=South+Africa&mode=winner","POST /llm":"Natural-language router. Body: { query, deviceId (UUID), requestId }. The LLM picks and runs the right tool(s) (worldcup / movies) and returns { apiVersion, results:[{tool,status,title,text,data,error}] }.","GET /oauth/google/start":"Begin server-handled Google OAuth. Param: state (the app deviceId, a UUID). Redirects to Google, then back to the app via the smartykbd:// scheme.","GET /oauth/google/callback":"Google's redirect target. Exchanges the code for tokens, stores them, and redirects to smartykbd://oauth-callback?status=...","GET /calendar/availability":"Free time slots from the connected Google Calendar. Params: deviceId (required UUID), optional date (YYYY-MM-DD, default today), duration (mins, default 30), timezone (IANA, default Asia/Kolkata).","GET /calendar/screen":"All meetings over a day or date range (past, ongoing and upcoming), each with its date, subject and from/till time. Params: deviceId (required UUID), optional date (YYYY-MM-DD, default today), endDate (YYYY-MM-DD, default = date; set later for a range like this week), timezone (IANA, default Asia/Kolkata), limit (default 10, max 50).","GET /docs/:documentId":"Plain text + title of a Google Doc. Param: deviceId (required UUID).","GET /drive/files":"List/search recent Google Drive files. Params: deviceId (required UUID), optional q (name filter), limit (default 10, max 50).","GET /gmail/messages":"List/search recent Gmail messages (from, subject, snippet). Params: deviceId (required UUID), optional q (Gmail search, e.g. is:unread), limit (default 10, max 50).","GET /meet/link":"Create a standalone Google Meet link (no calendar event). Param: deviceId (required UUID).","GET /tools":"Tool catalog + integration connect-status + this device's enabled state. Param: deviceId (required UUID). Works before any integration is connected.","PUT /tools":"Save the device's tool preferences (full replace: absent tool = disabled). Body: { deviceId (UUID), tools: { toolName: boolean } }. Returns the same shape as GET /tools.","GET /health":"Health check."}}