PLAN 4.3 lets a field of the wrong type fall back to its default alone.
Newtonsoft converted such values implicitly, so "delete-card": 0 became
false and "custom-pixels": "500" became 500. Booleans, integers and
strings are now read only from tokens of exactly that type.
PLAN 4.3 writes app.json when the session modified a setting. The store
compared the live configuration with the loaded one instead, so a setting
changed and changed back was never written. Each section now records a
dirty flag in its setters; assigning the current value is not a change and
the load-time field fallbacks are cleared after reading.
An app.json that exists but cannot be read, or a .bak that cannot be written,
now yields defaults instead of an unhandled exception before the main window
exists. A failed write at exit is logged and ignored, and the session is
disposed in a finally block, so the lock and connection are always released.