Controller

Controllers consume observations and emit actions each cycle; they can pair with tasks, planners, or custom policies.

(To be expanded: async controllers and UniSim integration.)