InternalReadonlybindingsThe final bindings that were constructed for the plan during role casting.
Bindings map roles to the respective entities (or symbols) that were cast in those roles.
The name of the current plan phase.
Always initializes to the name of the first phase in the plan.
ReadonlyevaluationThe (dehydrated) evaluation context associated with the launched plan.
ReadonlyidUID for the launched plan.
The current stack of loop frames, which we process using a LIFO policy.
This is an empty array when there are no active loops.
ReadonlyplanThe name of the plan at hand.
A program counter indicating the address of the current
plan instruction, which is concretely an index into the tape
array of the current plan phase.
Always initializes to 0.
UIDs for all queued constructs that have been queued during the active reaction window,
if there is one, else null.
Following the opening of a reaction window, all reactions queued during the window are tracked. At the close of the window, depending on the operator and the QueuedConstructStatus of these queued constructs, either the plan will fail entirely or plan execution will advance to the next instruction.
Whether plan execution has terminated, regardless of the reason.
The deadline for an active wait instruction, if any, else null.
This is the diegetic timestamp at which the wait will expire, though there may be associated conditions that could cause an earlier progression to the next instruction.
OptionalsourceWhen applicable, the original queued plan (or plan selector) that resulted in this plan being launched.
This field is only present when the original queued plan has repeat logic. In such cases, the plan might be re-queued upon successful execution, and as such we need to keep the original queued plan around so that we can make a copy later on.
Note that this situation differs considerably from action re-queueing: because an action is performed instantaneously, we will always still have the queued action handy at the time it's successfully executed. In the case of a plan, however, arbitrary amounts of time can pass between launching a queued plan and its being successfully performed.
State for an active plan, meaning what that has been launched and is still underway.
Execution of the plan will continue until a success or failure point is reached.
This is an internal type that is not part of the stable API surface. Its shape may change in any release.