(() => { const makeStorageKey = (sceneId) => `physilinks-highscore-${sceneId}`; const makeChainKey = (sceneId) => `physilinks-longestchain-${sceneId}`; const loadHighScore = (sceneId) => { try { const raw = localStorage.getItem(makeStorageKey(sceneId)); const parsed = parseInt(raw, 10); return Number.isFinite(parsed) ? parsed : 0; } catch (err) { console.error("Failed to load high score", { sceneId, err }); return 0; } }; const loadLongestChain = (sceneId) => { try { const raw = localStorage.getItem(makeChainKey(sceneId)); const parsed = parseInt(raw, 10); return Number.isFinite(parsed) ? parsed : 0; } catch (err) { console.error("Failed to load longest chain", { sceneId, err }); return 0; } }; const saveHighScore = (sceneId, highScore) => { try { localStorage.setItem(makeStorageKey(sceneId), String(highScore)); } catch (err) { console.error("Failed to save high score", { sceneId, err }); } }; const saveLongestChain = (sceneId, longestChain) => { try { localStorage.setItem(makeChainKey(sceneId), String(longestChain)); } catch (err) { console.error("Failed to save longest chain", { sceneId, err }); } }; window.PhysilinksStorage = { makeStorageKey, makeChainKey, loadHighScore, loadLongestChain, saveHighScore, saveLongestChain, }; })();