private static BooleanReason PerformTask(ITask task, bool movingForward) { if (task.ForwardOnly && !movingForward) return new BooleanReason(false, "task is flagged as forward-only"); return task.EvaluateRootCondition(); }