- vendor/leaflet.js (no more CDN dependency for JS) - direct tile.openstreetmap.org (was {s}.tile) - backend GET /api/v1/auth/consents (check if all accepted) - frontend ConsentApi.status() before showing overlay - only show overlay once
- index.html with bottom tabbar (Map/Chats/Profile/Settings) - Telegram WebApp SDK auth via /api/v1/auth/telegram - Consent gate on first login (4 checkboxes) - Map view with Leaflet (OSM) + nearby users + radius selector - Chat list + single chat with WebSocket realtime - Profile editing (drinks, activities, purposes) - Review screen with stars + anonymous toggle - User reviews list with stats - User profile (public) with rating, write/block/report - Legal pages (TERMS / PRIVACY / DISCLAIMER)