- Significant rewrite that dropped support for implicit argument matching in favor of direct wiring.
- Renamed 'execute' (now deprecated) to 'activate' methods on Orchestrator in order to clarify concepts.
- Added Orchestrator.activateFuture(), which facilitates working asynchronously with a uniform set of items.
- Added a variant of Orchestrator.activateWait() that works likewise with a uniform set of items.
- Added Orchestrator.activateAsReady() for streaming results.
- Limited activation on CompletableFutures to value-access methods only, such as get(), join().
- Added activate() methods on Orchestrator and TaskWrapper for easy explicit activation.
- Replaced ThreadLocalRunner with LaneRunner which for managing TaskRunners works more consistently and easily against asynchronous execution.
- Return parameterized Optional from cond/2 rather than void.
- Added Orchestrator.current() for accessing current Orchestrator from within a task method.
- Exposed isLight on TaskRun so runners can make decisions based on this property