// "Continue playing": remembered per browser, the server stores only saves. export interface RecentPlay { gameId: number; versionId: number; title: string; coverHash: string | null; at: number; } const KEY = "pg-recent"; const MAX = 12; export function getRecent(): RecentPlay[] { try { const list = JSON.parse(localStorage.getItem(KEY) ?? "[]"); return Array.isArray(list) ? list : []; } catch { return []; } } export function pushRecent(item: Omit) { try { const list = getRecent().filter((r) => r.gameId !== item.gameId); localStorage.setItem(KEY, JSON.stringify([{ ...item, at: Date.now() }, ...list].slice(0, MAX))); } catch { /* storage unavailable */ } } export function dropRecent(gameId: number) { try { localStorage.setItem(KEY, JSON.stringify(getRecent().filter((r) => r.gameId !== gameId))); } catch { /* storage unavailable */ } }