We have something similar on other places (`GatewayChoiceType`, `PaymentGatewayChoiceType`, `RuleChoiceType`...) and another type of choices like `ShippingCategoryChoiceType`. If you lok at this classes, they all have same implementation. I think we can have one choice type for the cases like this.