Currently, ControllerVector is:
class ControllerVector(MutableMapping[int, Controller], BaseController):
Which presumibly would allow you to add_sub_controller with different types of Controller. Instead, we should make ControllerVector generic on a Controller.
Acceptance Criteria
ControllerVector is generic on a Controller