Cyclical Transporter Rule
Sends idle transporters in rotation, beginning after whichever was chosen last.
The cyclical unit-selection rule of the reference implementation this subsystem is validated against, and it is here so that a guided-path model can be compared with one built there. It is a fair rule rather than an efficient one: it spreads work over the fleet without regard to where the work is, so on a one-way loop it will routinely send a transporter the long way round when a nearer one is standing idle. LeastUsedTransporterRule balances usage with the same indifference to distance but counts seizes instead of taking turns, so the two agree only when every transporter is always available.
The rotation is over declaration order, taken from the model element identifiers the fleet was created with, so it is the order the modeller wrote and not an accident of which transporters happen to be idle. Busy transporters are skipped, as they are there: the rule chooses the first candidate that follows the last one chosen, wrapping round to the start of the list.
Stateful, and therefore reset between replications by the pool that owns it.