# One onboarding per business. `open` is the intake as submitted; the # generator (portal-trainer generate) turns it into a draft content # repo; the business reviews the draft and either it goes live or it # comes back for another pass. aggregates: - bucket: onboardings initial: open states: open: { event: intake_received } drafted: { event: draft_generated } revising: { event: revision_requested } live: { event: went_live } declined: { event: declined } transitions: open: [drafted, declined] drafted: [live, revising, declined] revising: [drafted, declined]