Interactor provides a base template for any kind of interaction.
Interactions can be wholly defined by three things: the concrete Interactor, the concrete Interactable, and the logic governing their coordination.
Subclasses are responsible for implementing that coordination logic via template methods that operate on the concrete interactor and interactable classes.