arora-behavior 1.0.0

The Behavior abstraction the Arora runtime ticks: a behavior tree, a node graph, or any interpreter, against the shared data store.
Documentation

arora-behavior

The behavior abstraction of Arora: anything the runtime can tick.

A Behavior advances one step at a time — tick(&mut BehaviorContext) — and reports whether it is Running or Done. The context hands it the shared data store (read inputs, write intent) and the module-call bridge, so a behavior can be a behavior tree (arora-behavior-tree), a node graph, or any other interpreter: the runtime queues Box<dyn Behavior> and ticks them without knowing which is which.

Golden keys: timing is data, not an argument

The runtime keeps time out of the tick signature. Before it ticks any behavior, it publishes the frame's clock into the shared store under two reserved golden keys a behavior can rely on:

Key Value Meaning
arora/time U64 monotonic nanoseconds since the runtime started
arora/dt U64 nanoseconds elapsed since the previous step

A behavior that paces itself — an animation module, a graph time node — reads them from ctx.store like any other slot, so timing composes as ordinary data rather than a special tick parameter. They live under the reserved arora/ namespace (golden::is_golden) and stay local to the device: the runtime never forwards them out over the bridge. The names and the predicate are in the golden module.

Part of the device runtime interfaces, with arora-hal and arora-bridge.