Any IF/THEN statement (with allowances such as IF x BUT NOT y, THEN z), but the IF part of the statement can only cover one specific happenstance (which can then be further specified with BUT NOT, IF x AND y, the result changed based on the number of occurrences, actions can be pushed back, etc.). Thus, no "IF special fire move, THEN mirror coat" is not allowed becuase "special fire move" is not specific enough, ie it can be triggered by more than one command. However, "IF Fire Blast, THEN Mirror coat" is kosher because the substitute occurs IFF (if and only if) Fire Blast is used.