JSON-safe projection of BankTransaction for the L2 cache. L2
round-trips through JSON, so the Date timestamps (postedAt / createdAt /
updatedAt, all non-nullable) arrive as ISO strings on cross-process /
post-L1 reads. Everything else is already JSON-safe: amount is a numeric
(string), and reconciliation / methodData / raw are jsonb.
JSON-safe projection of BankTransaction for the L2 cache. L2 round-trips through JSON, so the
Datetimestamps (postedAt/createdAt/updatedAt, all non-nullable) arrive as ISO strings on cross-process / post-L1 reads. Everything else is already JSON-safe:amountis anumeric(string), andreconciliation/methodData/raware jsonb.