{"ok":true,"service":"grid-ccg-proto backend","db":"postgres","version":"1.0.0","uptimeSec":2994,"cards":529,"pools":9,"shopItems":407,"tasks":1715,"gameplayConfig":true,"endpoints":["GET    /healthz              -> liveness probe { ok, status:alive }","GET    /readyz               -> readiness probe { ok, status:ready } (pings DB)","POST   /api/login            { uid?, name? } -> { token, refreshToken, uid, friendCode, profile }","POST   /api/auth/register    { username, password, name?, deviceId? } -> { token, refreshToken, recoveryCode, profile }","POST   /api/auth/bind        (auth) { username, password, deviceId? } -> { bound, recoveryCode, profile }","POST   /api/auth/login       { username, password } | { username, recoveryCode } | { deviceId } -> { token, refreshToken, profile }","POST   /api/auth/refresh     { refreshToken } -> { token, refreshToken, expiresAt }","GET    /api/profile          (auth) -> { profile }","GET    /api/cards            -> all card defs + localised names","GET    /api/gameplay-config  -> gameplay balance config (elements/cost curve/keywords/fusion/awaken)","GET    /api/collection       (auth) -> owned cards","GET    /api/gacha/pools      -> pool list + rates","POST   /api/gacha/pull       (auth) { poolId, count } -> pulled cards","GET    /api/decks            (auth) -> decks","POST   /api/decks            (auth) { id?, name, cards[<=30] } -> deck","DELETE /api/decks?id=        (auth) -> deleted","GET    /api/shop             -> shop items","POST   /api/shop/buy         (auth) { itemId, qty? } -> result","GET    /api/tasks            -> tasks (+claimed if auth)","POST   /api/tasks/claim      (auth) { taskId } -> granted","GET    /api/ranked           (auth) -> rank + match stub","POST   /api/ranked           (auth) -> matched opponent","POST   /api/match/result     (auth) { win, mode? } -> rewards + new rank","POST   /api/friends/request  (auth) { playerId(uid|code) } -> { status }","POST   /api/friends/accept   (auth) { playerId } -> { status:accepted }","GET    /api/friends          (auth) -> { friends[], incoming[], outgoing[], online/lastSeen }","DELETE /api/friends?playerId= (auth) -> { removed }","POST   /api/friends/battle   (auth) { playerId, mode?:battle|visit } -> match/visit stub","GET    /api/mail             (auth) -> { mail[], unclaimed }","POST   /api/mail/claim       (auth) { mailId? } -> { granted, balance } (omit mailId = claim all)"]}