So I split responsibilities:
- privateId: a sequential bigserial, used only for db internal references
- id: a prefixed Nano ID like us_msny03yjrocv, used everywhere else
The prefix (e.g. us_, ag_, dn_) reveals the entity type. The rest is short, unambiguous, and random.