Normalised balance entry, returned by every venue package.
:timestamp means when we asked
A balance is the only one of the six value types with no venue event time behind it. It is a snapshot, not an occurrence: no exchange reports "this balance happened at 10:04". So its timestamp is the moment the request was made, and that is its freshness — the only honest answer to "how old is this number".
It is enforced for the same reason every other type enforces its timestamp. A balance with no freshness is indistinguishable from a stale one, and a consumer sizing a trade against a balance it believes is current is exactly the failure this family is built to refuse.
Summary
Types
Functions
Builds a t/0, failing closed if a required field is absent or nil.
@enforce_keys guards presence, not nil — see DpExchange.Core.Types.Validate.