0) { $score = tetrisFetchScore($id); if (!$score) { respond(404, ['success' => false, 'message' => 'Score not found.']); } respond(200, [ 'success' => true, 'score' => $score, 'rank' => tetrisFetchScoreRank($id), ]); } respond(200, [ 'success' => true, 'scores' => tetrisFetchTopScores($limit), 'recent' => tetrisFetchRecentScores(6), ]); } if ($_SERVER['REQUEST_METHOD'] !== 'POST') { respond(405, ['success' => false, 'message' => 'Method not allowed.']); } $raw = file_get_contents('php://input'); $data = json_decode($raw ?: '{}', true); if (!is_array($data)) { respond(400, ['success' => false, 'message' => 'Invalid JSON payload.']); } $result = tetrisInsertScore($data); respond(201, [ 'success' => true, 'message' => 'Score submitted to the online leaderboard.', 'score' => $result['score'], 'rank' => $result['rank'], 'scores' => tetrisFetchTopScores(12), ]); } catch (InvalidArgumentException $exception) { respond(422, ['success' => false, 'message' => $exception->getMessage()]); } catch (Throwable $exception) { error_log('Tetris score API error: ' . $exception->getMessage()); respond(500, ['success' => false, 'message' => 'Leaderboard service is temporarily unavailable.']); }