# ExecuteTaskPlan.action - Execute a sequence of task steps via MoveIt.
#
# The task_dispatch TaskExecutorNode serves this action.
# Planners (visual_grasp, VoxPoser, etc.) are action clients.

# --- Goal ---
ibrobot_msgs/TaskStep[] steps
string task_id                    # Unique task identifier (UUID recommended)
string task_description           # Human-readable description
---
# --- Result ---
bool success
string message
int32 steps_completed             # Number of steps successfully executed
float64 total_duration_s
---
# --- Feedback ---
int32 current_step                # 0-indexed
int32 total_steps
string current_label
string status                     # "executing" | "waiting" | "completed" | "failed"
float32 progress                  # 0.0 - 1.0