State and control targets
Scene, Frame, Geometry, and Control Context return stable value objects carrying run, generation, revision, or tick. Callers observe a committed boundary rather than a mutable backend container.
control.targets() exposes authorized actors, resource groups, axes, command spaces, and controllers. Producers discover targets before constructing commands and do not guess native degree-of-freedom ordering.
Chunks, Operations, and arbitration
A producer submits a time-aware Chunk. Runtime validates generation, resources, units, schedule, and authorization, then applies it through UniRoboSim at control-tick boundaries. Rule-based, Model, Teleop, and remote Server control use the same executor.
Asynchronous submission returns an Operation with its own ID, status, result, cancel, and release semantics. A waiting timeout does not mean the Operation was cancelled. Reset and close invalidate old-generation work and complete cleanup explicitly.
When producers overlap a resource, compiled authority and priority determine admission and preemption at the common control boundary. Plugins do not arbitrate by calling each other or racing to write the final command frame.
Planning algorithms remain outside Core. A plugin may capture coherent scene/frame/geometry/target data, compute in its own worker, revalidate, and submit physical chunks. See Application API and Python SDK.
The complete loop
A source first captures Scene, Frame, Geometry, state, and control.targets() at one committed boundary. It computes outside Core, then submits a timed Chunk. Runtime validates generation, actor/group/axis identity, units, timing, capacity, and authority before scheduling work through the Provider.
Targets are the intersection of the compiled Plan and the current runtime. Callers must not assume a group or command space exists from a README, or reuse a Provider-native DOF array as portable ordering.
Submission success means accepted work, not semantic task success. Retain the Operation ID, observe result, request cancellation explicitly when needed, and release it. Reset, stop, and close converge old-generation Operations; a client disconnect does not prove cancellation.
Long-running planning captures the relevant revisions and rechecks them before admission. Kinematics only solves; the caller still decides whether a returned solution should become an authorized physical Chunk. Bounded queues and explicit capacity errors prevent slow consumers from turning latency into unbounded memory.