/* global PuzzleState */ class StorageManager { static _key(roomCode) { return `ipuzzle_${roomCode}`; } static save(state) { try { localStorage.setItem(StorageManager._key(state.roomCode), JSON.stringify(state.serialize())); } catch (e) { console.warn('iPuzzle: localStorage save failed', e); } } static load(roomCode) { try { const raw = localStorage.getItem(StorageManager._key(roomCode)); if (!raw) return null; return PuzzleState.deserialize(JSON.parse(raw)); } catch (e) { console.warn('iPuzzle: localStorage load failed', e); return null; } } static remove(roomCode) { localStorage.removeItem(StorageManager._key(roomCode)); } }