V2 uses @maat/finance as the source of truth for economy decisions that need
pricing, refund, and regulatory-cap checks. V2Persistence remains the local
in-engine cache for offline play and save serialization.
Contract#
@maat/financeexportsv2-persistence-ledger.tsfor regional pricing, spend/refund decisions, regulatory caps, and reconciliation planning.@v2/maat-finance-ledgercomposes that contract for V2 services.- Unreal mirrors the contract with
FV2MaatFinanceLedgerPolicy,FV2CurrencyLedger::ApplyMaatFinanceTransaction, andFV2CurrencyLedger::NeedsOnlineReconciliation. @maat/financeis registered as a V2Services adapter for the Maat domain.
Offline Cache#
If online authority is unavailable, V2 may apply a locally validated spend or refund to the in-engine ledger cache. Those entries carry:
MaatFinanceDecisionId;bRegulatoryCapChecked;bRequiresOnlineReconciliation.
The next online sync must submit the cached decision ids to Maat for final reconciliation before cross-progression or cloud save can treat the ledger as authoritative.
Rollback Boundary#
Finance decisions are off rollback. Rollback frames never call Maat; they only consume already-accepted local persistence state.