# HandLandmarks.msg — MediaPipe Hands result for one detected hand (Issue #342)
#
# Landmark coordinates are MediaPipe-normalised:
#   x, y ∈ [0.0, 1.0] — fraction of image width/height
#   z — depth relative to wrist (negative = towards camera)
#
# landmark_xyz layout: [x0, y0, z0, x1, y1, z1, ..., x20, y20, z20]
# Index order follows MediaPipe Hands topology:
#   0=WRIST  1-4=THUMB(CMC,MCP,IP,TIP)  5-8=INDEX  9-12=MIDDLE
#   13-16=RING  17-20=PINKY

std_msgs/Header header

# Handedness
bool    is_right_hand
float32 handedness_score   # MediaPipe confidence for Left/Right label

# 21 landmarks × 3 (x, y, z) = 63 values
float32[63] landmark_xyz

# Classified robot-command gesture
# Values: "stop" | "point" | "disarm" | "confirm" | "follow_me" | "greeting" | "none"
string  gesture
string  point_direction     # "up"|"right"|"left"|"upper_right"|"upper_left"|"lower_right"|"lower_left"|"down"
float32 gesture_confidence

# Wrist position in normalised image coords (convenience shortcut)
float32 wrist_x
float32 wrist_y
