The ConsecutiveEventsRestrictions define rules that apply to each pair (A, B) of consecutive events, enforcing that event B is a valid "successor" of event A (event A is then called a valid "predecessor" of event B). - When time flows forward, for each pair of consecutive events, the event which is closer to the path origin must be a valid predecessor of the event which is closer to the path destination. - When time flows backward, for each pair of consecutive events, the event which is closer to the path origin must be a valid successor of the event which is closer to the path destination. - When the time flow is not constrained, for each pair of consecutive events, the event which is closer to the path origin must either be a valid successor or a valid predecessor of the event which is closer to the path destination.