str; do not convert them to float when precision matters.
List credit systems
CreditSystem typed dictionaries.
Customer balances
Customer operation history
Entity balances
pool_policy is entity_only, entity_then_customer, customer_only, or None.
Entity operation history
Allocate credits
Deallocate credits
Advisory usage check
usage.check() does not reserve or mutate credits.
Atomic usage tracking
usage.track() atomically evaluates the metric conversion, selects eligible sources, deducts credits, and records the operation. Entity IDs enable per-Entity attribution and configured pool policy.
Legacy wallet adapter
nozle.check_and_deduct(customer_id, feature, credits) remains available for the legacy wallet path. New product-credit integrations should use usage.check() and usage.track().
Keep reads and mutations behind authenticated backend routes and derive customer and Entity IDs from trusted identity data.