OptionalpaymentInstrumentId?: SelectPaymentInstrument["externalId"]Lookup key, not a matcher field; must belong to the search's customer.
Optionalusage?: booleanLook up the entity's accepted usage (USAGE_CRITERIA_FIELDS) from
b2b.route_criteria_usage: of productId for search(), of its
category for the category limit rule read. A caller value still wins.
One product plus the criteria to resolve it against — the unit ProductRouteService.search batches. The entity, customer and clock are shared across a batch and travel on the call, not here.