# ADR-001: Stack and storage ## Decision Electron + React + TypeScript + Vite; JSON file store (`userData/store.json`) for systems/characters; portable `app/shared` contract for future TTRPG Player + mobile. ## Rationale Offline-first; avoids native module rebuild (better-sqlite3) requiring Visual Studio on Windows. # ADR-002: Formula DSL Custom minimal expression language with explicit rounding; portable to the player. # ADR-003: Schema freeze via snapshotHash Player binds store `snapshotHash` rather than inline full schema per character. # ADR-004: Spells from dnd.su Import pipeline for PHB-labelled spells at product owner request, with IP disclaimer. Default presets ship SRD stubs.