# VoiceCommand.msg — Parsed voice command with NLU intent, entities, and confidence.
# Published by voice_command_node on /social/voice_command (Issue #137).
#
# Intent namespace:
#   nav.*     — navigation commands
#   social.*  — social / enrollment commands
#   system.*  — robot system control
#   config.*  — behavior configuration
#   confirm.* — confirmation flow responses (yes / no)
#   fallback  — unrecognized; route to LLM conversation engine

std_msgs/Header header

string  intent                  # e.g. "nav.go_to", "social.remember_me", "fallback"
string  raw_text                # Normalized transcribed text (lowercased, punctuation stripped)
string  speaker_id              # Who issued the command (from SpeechTranscript.speaker_id)
float32 confidence              # NLU match confidence 0..1

# Entities: key=value pairs, e.g. ["location=kitchen", "mode=shadow", "name=Alice"]
# Parse with: dict(e.split("=", 1) for e in entities)
string[] entities

# Confirmation flow (for dangerous commands: system.shutdown, system.restart, social.forget_me)
bool    requires_confirmation   # true = awaiting confirm.yes before execution
string  confirmation_token      # UUID matching this command to its confirmation response
