{"ok":true,"service":"vuln-signal-app-home","deviceId":"anonymous","progressSource":"d1","app":{"startUrl":"/pages/mini-game-app-home.html","recommendedShell":"android-webview","userAgentSuffix":"VulnSignalAndroidWebView/<version>","reviewRoutes":["/pages/status.html","/pages/diagnostics.html","/pages/quality-center.html"],"nativeRails":{"practice":["Home","Coach","Daily","Practice","Progress"],"reviewAction":["Practice Report","Learn","Help","Share","Copy","Open Web"]},"recovery":{"refreshCurrentPage":true,"restoreLastSuccessfulPage":true,"openCurrentPageExternally":true},"localStorageKeys":["vuln-signal-device-id","vuln-signal-app-shell","vuln-signal-app-start-url","vuln-signal-app-last-url","vuln-signal-network-state","vuln-signal-app-last-seen","vuln-signal-app-version","vuln-signal-app-build-channel","vuln-signal-app-launch-source","vuln-signal-app-share-supported","vuln-signal-app-copy-supported","vuln-signal-app-browser-supported","vuln-signal-app-refresh-supported","vuln-signal-app-restore-supported","vuln-signal-app-rail-model","vuln-signal-app-last-status","vuln-signal-app-last-error","vuln-signal-game-progress","vuln-signal-pack-progress"],"trustBoundary":"Practice state is local-first. D1 progress is device-id scoped and does not prove identity, certification, compliance, or production security posture."},"daily":{"date":"2026-07-01","game":{"id":"security-court","title":"Security Court","category":"Evidence","difficulty":"Beginner","priority":33,"goal":"Challenge scary claims with evidence rules.","mechanic":"A claim is presented by prosecution; the player admits, rejects, or rewrites it based on exhibits.","scoring":"Precise claims and avoided unsupported language.","buildNext":false,"relatedPage":"site-can-prove.html"},"scenario":{"id":"security-court-001","gameId":"security-court","title":"The compromise claim","prompt":"A report says attackers use this CVE. A stakeholder wants to write 'we were breached by it.'","choices":["reject-and-rewrite","approve-claim","delete-evidence"],"answer":"reject-and-rewrite","explanation":"External exploitation does not prove local compromise. Rewrite with caveats and evidence gaps."},"playUrl":"/pages/mini-game-player.html?id=security-court"},"coach":{"primary":{"title":"Coach","reason":"Best first stop when the user is unsure. It chooses one small route instead of exposing the whole catalog.","url":"/pages/mini-game-coach.html"},"recommended":[{"id":"five-minute-awareness","title":"5-Minute Awareness Warmup","time":"5 minutes","difficulty":"Beginner","reason":"Practice safe first reactions to phishing, QR, MFA, and rumor signals.","url":"/pages/mini-game-packs.html"},{"id":"patch-owner-sprint","title":"Patch Owner Sprint","time":"12 minutes","difficulty":"Analyst","reason":"Choose patch, control, SLA, rollback, and sequencing decisions under pressure.","url":"/pages/mini-game-packs.html"}]},"catalog":{"games":35,"scenarios":55,"buildFirst":11,"categories":{"Awareness":4,"Operations":7,"Evidence":5,"Threat Intel":6,"Communication":4,"Incident Response":3,"SOC":1,"Strategy":2,"GRC":1,"Mobile":2},"difficulties":{"Beginner":12,"Analyst":18,"Advanced":5}},"guidance":{"headline":"Use the app like a small trainer, not like the full portal.","steps":[{"label":"New or confused","title":"Open Coach","detail":"Coach picks one safe route and explains why. Use this before browsing the full practice library.","url":"/pages/mini-game-coach.html"},{"label":"Only a minute","title":"Play Daily","detail":"Daily is one fictional decision. It is the lowest-friction habit.","url":"/pages/mini-game-daily.html"},{"label":"Need context","title":"Learn basics","detail":"Use Learn when terms like CVE, KEV, exposure, evidence, mitigation, and patch feel unclear.","url":"/pages/learn.html"},{"label":"After practice","title":"Check Progress","detail":"Progress and Report are review tools. Use them after you have played, not before.","url":"/pages/mini-game-progress.html"}]},"packs":{"count":8,"recommended":[{"id":"five-minute-awareness","title":"5-Minute Awareness Warmup","time":"5 minutes","difficulty":"Beginner","url":"/pages/mini-game-packs.html"},{"id":"patch-owner-sprint","title":"Patch Owner Sprint","time":"12 minutes","difficulty":"Analyst","url":"/pages/mini-game-packs.html"},{"id":"evidence-discipline","title":"Evidence Discipline","time":"10 minutes","difficulty":"Beginner","url":"/pages/mini-game-packs.html"},{"id":"soc-shift","title":"SOC Shift Simulator Path","time":"15 minutes","difficulty":"Analyst","url":"/pages/mini-game-packs.html"}]},"progress":[],"shortcuts":[{"label":"Home","url":"/pages/mini-game-app-home.html"},{"label":"Coach","url":"/pages/mini-game-coach.html"},{"label":"Daily","url":"/pages/mini-game-daily.html"},{"label":"Practice","url":"/pages/mini-game-arcade.html"},{"label":"Progress","url":"/pages/mini-game-progress.html"},{"label":"Practice Report","url":"/pages/mini-game-report.html"},{"label":"Learn","url":"/pages/learn.html"},{"label":"Help","url":"/pages/start-here.html"}]}