The third alternative is to handle exceptions to the rules when they come up. In the chest scenario, you saw when the state transition was triggered by another object, rather than a direct pick, you would want to skip the regular animation. Because the primary picked object is handled in a different part of the code than the auxiliary objects, this will be relatively easy to engineer.