Stable AWS API Gateway stage this product is served by (operator-linked;
null until linked). The stage name resolves to a usage plan at runtime;
no usage-plan id is stored here.
Structural aggregate grouping — DEPOSIT, WITHDRAWAL, or null for
products in no aggregate family (organization, identity, card, swap,
redemption transfer, virtual account).
Read-only, deliberately. Unlike name / description / apiStage,
this is not an operator-editable label: it selects which wildcard
product's aggregate limit rules a quote is enforced against, so editing
it at runtime would silently re-point live limit enforcement. It is
written by migration and read from the column — update() does not
accept it.
Admin-tier projection of a
productrow.idis the canonicalProductName(externalIdin the DB). The set of products is authored at compile time viaCONCRETE_PRODUCT_NAMESand seeded — runtime creation is intentionally out of scope (seerules/cascade-product.md). Onlyname,description, andapiStageare runtime-editable.