'Checks if the rule should trigger with its current state.
This method should be pure and NOT mutate any state on the object.'

@abstractmethod
def should_trigger(self, dt):

    raise NotImplementedError('should_trigger')
