Decision Tasks#

Decision tasks are ~upstage.task.Task`s that take zero time and were briefly demonstrated in :doc:`Rehearsal. The purpose of a Decision task is to allow decision making and TaskNetwork routing without moving the simulation clock and do so inside of a Task Network.

A decision task must implement two methods:

Neither method outputs anything. The expectation is that inside these methods you modify the task network using:

The difference between making and rehearsing the decision is covered in the tutorial. The former method is called during normal operations of UPSTAGE, and the latter is called during a rehearsal of the task or network. It is up the user to ensure that no side-effects occur during the rehearsal that would touch non-rehearsing state, actors, or other data.