Branch nbudin/issue11238 has an existing WIP migration (db/migrate/20260615192952_convert_registration_policies_to_tables.rb, never run — db:migrate:status shows it down) that creates registration_policies/registration_policy_buckets tables and drops events.registration_policy (jsonb). That migration currently leaves the app broken: app/models/event.rb still does serialize :registration_policy, coder: ActiveModelCoder.new("RegistrationPolicy") against a column the migration deletes, no association was wired up, and none of the ~25 files across models/services/presenters/notifiers/GraphQL/Liquid that call RegistrationPolicy/RegistrationPolicy::Bucket methods have been touched.
The goal of this pass: finish the migration so the schema change and all application code land together, consistently, in one deploy. Scope decisions made with the user:
EventProposalis migrated too, in this same pass (it