All fields that can appear in the criteria payload passed to b2b.rule_match.
Route-scoped fields (bankId, speed) and entityType are injected by the
SQL search layer — callers don't set them directly, but they are valid matcher
fields because rules can target them.
Rolling-window usage fields (usage{24h,7d,30d}{Usd,Count}) are pre-fetched
by ProductQuoteService and passed through so fee/limit/activation rules
can branch on the customer's prior volume — e.g. "charge 0bps once 30D
volume crosses $1M". Set when the caller supplies getUsage; absent in
estimate-mode callers.
All fields that can appear in the criteria payload passed to
b2b.rule_match. Route-scoped fields (bankId,speed) andentityTypeare injected by the SQL search layer — callers don't set them directly, but they are valid matcher fields because rules can target them.Rolling-window usage fields (
usage{24h,7d,30d}{Usd,Count}) are pre-fetched byProductQuoteServiceand passed through so fee/limit/activation rules can branch on the customer's prior volume — e.g. "charge 0bps once 30D volume crosses $1M". Set when the caller suppliesgetUsage; absent in estimate-mode callers.