{"success":true,"message":"RefCapture API","version":"1.0.0","endpoints":{"health":"GET /health","auth":{"register":"POST /api/auth/register","login":"POST /api/auth/login","refresh":"POST /api/auth/refresh","logout":"POST /api/auth/logout","profile":"GET /api/auth/profile (requires auth)"},"users":{"list":"GET /api/users (requires admin)","get":"GET /api/users/:id (requires auth)","update":"PUT /api/users/:id (requires auth)","updatePassword":"PUT /api/users/:id/password (requires auth)","delete":"DELETE /api/users/:id (requires admin)"},"games":{"list":"GET /api/games (requires auth)","get":"GET /api/games/:id (requires auth)","create":"POST /api/games (requires auth)","update":"PUT /api/games/:id (requires auth)","delete":"DELETE /api/games/:id (requires auth)"},"crews":{"list":"GET /api/crews (requires auth)","get":"GET /api/crews/:id (requires auth)","create":"POST /api/crews (requires auth)","update":"PUT /api/crews/:id (requires auth)","delete":"DELETE /api/crews/:id (requires auth)","addMember":"POST /api/crews/:id/members (requires auth)","updateMember":"PUT /api/crews/:id/members/:memberId (requires auth)","removeMember":"DELETE /api/crews/:id/members/:memberId (requires auth)"},"penalties":{"list":"GET /api/penalties (requires auth)","getByGame":"GET /api/penalties/game/:gameId (requires auth)","get":"GET /api/penalties/:id (requires auth)","create":"POST /api/penalties (requires auth)","createBulk":"POST /api/penalties/bulk (requires auth)","update":"PUT /api/penalties/:id (requires auth)","delete":"DELETE /api/penalties/:id (requires auth)"},"scanner":{"upload":"POST /api/scanner/upload (requires auth)","get":"GET /api/scanner/:id (requires auth)","getByGame":"GET /api/scanner/game/:gameId (requires auth)","delete":"DELETE /api/scanner/:id (requires auth)"},"conferences":{"list":"GET /api/conferences (requires auth)","get":"GET /api/conferences/:id (requires auth)","create":"POST /api/conferences (requires admin)","update":"PUT /api/conferences/:id (requires admin)","delete":"DELETE /api/conferences/:id (requires admin)"},"availability":{"getUserAvailability":"GET /api/availability/user/:userId (requires auth)","getAvailableOfficials":"GET /api/availability/officials/:date (requires crew chief/assignor)","save":"POST /api/availability (requires auth)","delete":"DELETE /api/availability/:id (requires auth)"},"schedule":{"mySchedule":"GET /api/games/my-schedule (requires auth)","substitute":"POST /api/games/:gameId/substitute (requires crew chief/assignor)"}},"documentation":"See README.md for detailed API documentation"}