The account the route moves money through (register external_id).
Display names for the external ids this route's matcher references. See matcherReferencesSql.
Composed route display name: ${productName} · ${vendorName}.
Human display name from product.name (NOT NULL).
The program the route belongs to (prog_…): the account's, or the
one a sub-account provider's route names.
The next version to take effect, when one is scheduled. Every version field above is the one in effect now, which is what the resolver reads.
Human display name from product_vendor.name (NOT NULL).
Admin-tier view of a route = identity columns + the routing fields from the version in effect (matcher + label + per-route fee and limit ceilings)
idis the identity row's external id.Vendor metadata (bank linkage) is NOT surfaced here — it belongs to the vendor domain. Consumers that need it fetch the vendor separately via
ProductVendorAdminService.get({ id: route.vendor }). Keeping the route surface free of vendor identity ensures a vendor edit doesn't silently change the shape of every route.