This type was introducing more complications than it was solving. We were using a specialized runtime.add method to support transition interactions. This works so long as the type of the interaction is known to be a transition interaction at call time. If the interaction is typed as a property interaction, e.g. let spring: Spring = TransitionSpring, then the wrong method will be invoked and our transition setup code won't be executed.
This change removes the transition type and moves the special logic into the interaction's add method instead.