/** * Outbox rows are written in the same local transaction as every business * change from the FIRST local-only build (D14): dormant until the cloud tier * exists, at which point a sync agent drains them. Cloud enablement must be a * switch-on, never a data migration. */ export interface OutboxRow { opId: string // uuidv7 — the idempotency key tenantId: string deviceId: string deviceSeq: number docType: string docId: string /** Whole-document changeset envelope — row-level sync is forbidden by design. */ envelope: unknown createdAtWallClock: string lamport: number }