- number field on cards, unique per project - backfilled existing cards in created order - both create paths (owner action, client API) assign on creation - seed script is idempotent across re-runs