RIDICULOUS NITPICK AHEAD
There’s actually an extremely subtle difference between “rule fails” on the one hand and “instead” and “stop the action” on the other hand:
This almost never should make a difference for any practical purpose. It only came up for me because I was doing something fancy where I had to call a custom rulebook, pass its results to another custom rulebook, and then use the “if rule failed” test to check whether that rulebook had done anything. Code here using this extension, in case anyone wants to look.
But again, it’s very unlikely that you’ll encounter a case where this makes a practical difference.