This MR will refactor the current Subscription and Unsubscription workflows into pluggable components. Which will allow to easily insert additional steps into the [un]subscription process for both core and plugins.
This also means splitting the current [Unn]SubscriptionWorkflow classes into multiple blocks that can be chained, somewhat like chains work. So that they can be reused by other workflows.
Let's say a subscription workflow, introduced by a plugin, that checks the address for being present in some company/organization/other database so that only customers/members/... are allowed to subscribe to a list with that policy.