The single source of truth for every deal figure on the site. Committed defaults live in
data/deal-terms.js; anything changed here is saved as an override under
_settings.dealTerms in the shared settings blob and picked up by every page that
reads getDealTerms(). Derived figures — deposit, note principal, interest, price
per sf — are always computed, never stored, so they cannot drift.
Stamps the whole settings blob (deal terms included) as a named version before you change
it — e.g. LOI-as-offered. Uses the same tagging the admin page uses; snapshots
are read-only history, restoring one is done from /admin.
{}