ReadonlyactionA mapping from action name to an array containing all active embargoes associated with that action.
Action embargoes are a kind of authorial affordance that allows a Viv author to constrain the subsequent performance of some action according to various constraints. For instance, an embargo can prevent a character from performing the same action for some period of time, or from doing so at the same location, and so forth. Embargoes can specify locations, time windows, and arbitrary subsets of an action's bindings.
ReadonlyactionA mapping from entity ID for a character to an array storing queued actions (and queued action selectors) for that character, with the following invariants: urgent actions come first, and the two buckets (urgent, non-urgent) are themselves sorted in order of priority. Character keys are added only as needed.
ReadonlyactiveA mapping from plan UID to plan state, for all active plans. A plan is active between launching (not queueing) and reaching either a success or failure state.
The story-time timestamp at which memory saliences were last decayed.
This value is used as the starting point for computing elapsed time when fading character
memories. It is initialized to null until a first instance of memory fading occurs.
The global plan queue, which stores all queued plans (and queued plan selectors). This is not keyed by character because plans are not associated with initiators (they can orchestrate complex action sequences across multiple total initiators). While this is maintained as a FIFO queue, it can more accurately be considered to be conceptually unordered, because all queued plans are pursued every planner tick, and a plan launched before another one on the same tick has no advantage as far as being the first to action performance. This is because plans can only queue actions -- and not cause them to be immediately performed -- and the action manager always pursues queued actions in priority order.
A mapping from queued-construct UID to queued-construct status, for all constructs that have ever been queued. Note that entries are never deleted.
OptionaldebuggingWhen applicable, live data associated with the debugging facilities of the Viv runtime.
Internal state required by the Viv runtime. The host application must persist this state, but Viv is in charge of managing it (via calls to HostApplicationAdapter.saveVivInternalState).