{"description":"Real-time indoor positioning API based on UWB technology","endpoints":{"REST":{"/api/anchors":"Get anchor positions and configuration","/api/commentary":"POST - AI commentary generation","/api/config":"Get full configuration","/api/leaderboard":"GET - Get daily/weekly/monthly leaderboards, POST - Save race results","/api/players":"GET - Get player names config, POST - Update player config","/api/positions":"Get current positions of all tags","/api/start":"POST - Start positioning server","/api/stats":"Get server statistics","/api/stop":"POST - Stop positioning server","/api/track":"Get track layout","/api/tts":"POST - Text-to-speech (returns WAV audio)"},"WebSocket":{"commentary_audio_chunk":"Event - Streaming PCM16 audio chunk (base64)","commentary_audio_end":"Event - Utterance finished streaming","commentary_audio_start":"Event - New utterance begins (includes sampleRate, channels, bitDepth)","commentary_text":"Event - Commentary text for display","connect":"Connect to receive real-time updates","position_update":"Event - Receive tag positions (30Hz)","race_data_update":"Event - Computed race data (drivers, state) (30Hz)","reset_race":"Emit - Reset the race","set_broadcast_mode":"Emit - Set broadcast mode (race/laptime)","set_voice_enabled":"Emit - Enable/disable TTS voice","start_race":"Emit - Start the race","system_status":"Event - Receive system status updates"}},"name":"UWB Positioning API","update_rate_hz":30,"version":"1.0","websocket_url":"ws://0.0.0.0:5003"}
