Care required

preAction / postAction

The preAction() and postAction() methods are called several times for each timestep (once for each metier). If
preAction() and postAction() should only act once per timestep, a trick, such as a state field, must be used to
suppress the repeated actions.

Field initialization

Rules are only instantiated once and init() is called only once. The fields are, therefore, not reinitialized
between timesteps.

Persistence of the modifications

The modifications made by a rule are rolled back at the end of each timestep. Persistent changes made to the database
must be repeated for each timestep.