enum {
  ACTION_NONE,
  ACTION_GRIP_POSE,
  ACTION_POINTER_POSE,
  ACTION_PINCH_POSE,
  ACTION_POKE_POSE,
  ACTION_PALM_POSE,
  ACTION_TRACKER_POSE,
  ACTION_STYLUS_POSE,
  ACTION_GAZE_POSE,
  ACTION_TRIGGER_DOWN,
  ACTION_TRIGGER_TOUCH,
  ACTION_TRIGGER_AXIS,
  ACTION_TRACKPAD_DOWN,
  ACTION_TRACKPAD_TOUCH,
  ACTION_TRACKPAD_AXIS,
  ACTION_THUMBSTICK_DOWN,
  ACTION_THUMBSTICK_TOUCH,
  ACTION_THUMBSTICK_AXIS,
  ACTION_THUMBREST_TOUCH,
  ACTION_THUMBREST_AXIS,
  ACTION_THUMBTAP_DOWN,
  ACTION_MENU_DOWN,
  ACTION_MENU_TOUCH,
  ACTION_GRIP_DOWN,
  ACTION_GRIP_TOUCH,
  ACTION_GRIP_AXIS,
  ACTION_A_DOWN,
  ACTION_A_TOUCH,
  ACTION_B_DOWN,
  ACTION_B_TOUCH,
  ACTION_X_DOWN,
  ACTION_X_TOUCH,
  ACTION_Y_DOWN,
  ACTION_Y_TOUCH,
  ACTION_DPAD_UP_DOWN,
  ACTION_DPAD_UP_TOUCH,
  ACTION_DPAD_DOWN_DOWN,
  ACTION_DPAD_DOWN_TOUCH,
  ACTION_DPAD_LEFT_DOWN,
  ACTION_DPAD_LEFT_TOUCH,
  ACTION_DPAD_RIGHT_DOWN,
  ACTION_DPAD_RIGHT_TOUCH,
  ACTION_BUMPER_DOWN,
  ACTION_BUMPER_TOUCH,
  ACTION_NIB_DOWN,
  ACTION_NIB_FORCE,
  ACTION_HAND_VIBRATE,
  ACTION_STYLUS_VIBRATE,
  MAX_ACTIONS
};

enum {
  PROFILE_SIMPLE,
  PROFILE_GENERIC,
  PROFILE_VIVE,
  PROFILE_TOUCH,
  PROFILE_TOUCH_PRO,
  PROFILE_GO,
  PROFILE_INDEX,
  PROFILE_WMR,
  PROFILE_HP,
  PROFILE_COSMOS,
  PROFILE_FOCUS3,
  PROFILE_ML2,
  PROFILE_PICO_NEO3,
  PROFILE_PICO4,
  PROFILE_TRACKER,
  PROFILE_MX_INK,
  PROFILE_GAZE,
  PROFILE_HAND,
  PROFILE_FRAME,
  MAX_PROFILES
};

typedef struct {
  int action;
  const char* path;
} Binding;

static const char* lovrInteractionProfilePaths[] = {
  [PROFILE_SIMPLE] = "/interaction_profiles/khr/simple_controller",
  [PROFILE_GENERIC] = "/interaction_profiles/khr/generic_controller",
  [PROFILE_VIVE] = "/interaction_profiles/htc/vive_controller",
  [PROFILE_TOUCH] = "/interaction_profiles/oculus/touch_controller",
  [PROFILE_TOUCH_PRO] = "/interaction_profiles/facebook/touch_controller_pro",
  [PROFILE_GO] = "/interaction_profiles/oculus/go_controller",
  [PROFILE_INDEX] = "/interaction_profiles/valve/index_controller",
  [PROFILE_WMR] = "/interaction_profiles/microsoft/motion_controller",
  [PROFILE_HP] = "/interaction_profiles/hp/mixed_reality_controller",
  [PROFILE_COSMOS] = "/interaction_profiles/htc/vive_cosmos_controller",
  [PROFILE_FOCUS3] = "/interaction_profiles/htc/vive_focus3_controller",
  [PROFILE_ML2] = "/interaction_profiles/ml/ml2_controller",
  [PROFILE_PICO_NEO3] = "/interaction_profiles/bytedance/pico_neo3_controller",
  [PROFILE_PICO4] = "/interaction_profiles/bytedance/pico4_controller",
  [PROFILE_TRACKER] = "/interaction_profiles/htc/vive_tracker_htcx",
  [PROFILE_MX_INK] = "/interaction_profiles/logitech/mx_ink_stylus_logitech",
  [PROFILE_GAZE] = "/interaction_profiles/ext/eye_gaze_interaction",
  [PROFILE_HAND] = "/interaction_profiles/ext/hand_interaction_ext",
  [PROFILE_FRAME] = "/interaction_profiles/valve/frame_controller"
};

static Binding* lovrActionBindings[] = {
  [PROFILE_SIMPLE] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/select/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/select/click" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/menu/click" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_GENERIC] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/value" },
    { ACTION_A_DOWN, "/user/hand/left/input/primary/click" },
    { ACTION_A_DOWN, "/user/hand/right/input/primary/click" },
    { ACTION_B_DOWN, "/user/hand/left/input/secondary/click" },
    { ACTION_B_DOWN, "/user/hand/right/input/secondary/click" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_VIVE] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/click" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/left/input/trackpad/click" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/right/input/trackpad/click" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/left/input/trackpad/touch" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/right/input/trackpad/touch" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/left/input/trackpad" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/right/input/trackpad" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/menu/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/click" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_TOUCH] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/value" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/left/input/trigger/touch" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/right/input/trigger/touch" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/left/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/right/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_THUMBREST_TOUCH, "/user/hand/left/input/thumbrest/touch" },
    { ACTION_THUMBREST_TOUCH, "/user/hand/right/input/thumbrest/touch" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/system/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/value" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_A_TOUCH, "/user/hand/right/input/a/touch" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_B_TOUCH, "/user/hand/right/input/b/touch" },
    { ACTION_X_DOWN, "/user/hand/left/input/x/click" },
    { ACTION_X_TOUCH, "/user/hand/left/input/x/touch" },
    { ACTION_Y_DOWN, "/user/hand/left/input/y/click" },
    { ACTION_Y_TOUCH, "/user/hand/left/input/y/touch" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_TOUCH_PRO] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/value" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/left/input/trigger/touch" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/right/input/trigger/touch" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/left/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/right/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_THUMBREST_TOUCH, "/user/hand/left/input/thumbrest/touch" },
    { ACTION_THUMBREST_TOUCH, "/user/hand/right/input/thumbrest/touch" },
    { ACTION_THUMBREST_AXIS, "/user/hand/left/input/thumbrest/force" },
    { ACTION_THUMBREST_AXIS, "/user/hand/right/input/thumbrest/force" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/system/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/value" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_A_TOUCH, "/user/hand/right/input/a/touch" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_B_TOUCH, "/user/hand/right/input/b/touch" },
    { ACTION_X_DOWN, "/user/hand/left/input/x/click" },
    { ACTION_X_TOUCH, "/user/hand/left/input/x/touch" },
    { ACTION_Y_DOWN, "/user/hand/left/input/y/click" },
    { ACTION_Y_TOUCH, "/user/hand/left/input/y/touch" },
    { ACTION_NIB_DOWN, "/user/hand/left/input/stylus_fb/force" },
    { ACTION_NIB_DOWN, "/user/hand/right/input/stylus_fb/force" },
    { ACTION_NIB_FORCE, "/user/hand/left/input/stylus_fb/force" },
    { ACTION_NIB_FORCE, "/user/hand/right/input/stylus_fb/force" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_GO] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/click" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/left/input/trackpad/click" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/right/input/trackpad/click" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/left/input/trackpad/touch" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/right/input/trackpad/touch" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/left/input/trackpad" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/right/input/trackpad" },
    { 0, NULL }
  },
  [PROFILE_INDEX] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/click" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/left/input/trigger/touch" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/right/input/trigger/touch" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/left/input/trackpad/force" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/right/input/trackpad/force" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/left/input/trackpad/touch" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/right/input/trackpad/touch" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/left/input/trackpad" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/right/input/trackpad" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/left/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/right/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/force" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/force" },
    { ACTION_GRIP_TOUCH, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_TOUCH, "/user/hand/right/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/force" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/force" },
    { ACTION_A_DOWN, "/user/hand/left/input/a/click" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_A_TOUCH, "/user/hand/left/input/a/touch" },
    { ACTION_A_TOUCH, "/user/hand/right/input/a/touch" },
    { ACTION_B_DOWN, "/user/hand/left/input/b/click" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_B_TOUCH, "/user/hand/left/input/b/touch" },
    { ACTION_B_TOUCH, "/user/hand/right/input/b/touch" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_WMR] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/left/input/trackpad/click" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/right/input/trackpad/click" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/left/input/trackpad/touch" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/right/input/trackpad/touch" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/left/input/trackpad" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/right/input/trackpad" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/menu/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/click" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/click" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_HP] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/menu/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/value" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_X_DOWN, "/user/hand/left/input/x/click" },
    { ACTION_Y_DOWN, "/user/hand/left/input/y/click" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_COSMOS] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/click" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/left/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/right/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/system/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/click" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/click" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_X_DOWN, "/user/hand/left/input/x/click" },
    { ACTION_Y_DOWN, "/user/hand/left/input/y/click" },
    { ACTION_BUMPER_DOWN, "/user/hand/left/input/shoulder/click" },
    { ACTION_BUMPER_DOWN, "/user/hand/right/input/shoulder/click" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_FOCUS3] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/click" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/left/input/trigger/touch" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/right/input/trigger/touch" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/left/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/right/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_THUMBREST_TOUCH, "/user/hand/left/input/thumbrest/touch" },
    { ACTION_THUMBREST_TOUCH, "/user/hand/right/input/thumbrest/touch" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/system/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/click" },
    { ACTION_GRIP_TOUCH, "/user/hand/left/input/squeeze/touch" },
    { ACTION_GRIP_TOUCH, "/user/hand/right/input/squeeze/touch" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/value" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_X_DOWN, "/user/hand/left/input/x/click" },
    { ACTION_Y_DOWN, "/user/hand/left/input/y/click" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_ML2] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/click" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/left/input/trackpad/click" },
    { ACTION_TRACKPAD_DOWN, "/user/hand/right/input/trackpad/click" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/left/input/trackpad/touch" },
    { ACTION_TRACKPAD_TOUCH, "/user/hand/right/input/trackpad/touch" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/left/input/trackpad" },
    { ACTION_TRACKPAD_AXIS, "/user/hand/right/input/trackpad" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/menu/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/shoulder/click" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/shoulder/click" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_PICO_NEO3] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/click" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/left/input/trigger/touch" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/right/input/trigger/touch" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/left/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/right/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/menu/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/click" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/value" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_A_TOUCH, "/user/hand/right/input/a/touch" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_B_TOUCH, "/user/hand/right/input/b/touch" },
    { ACTION_X_DOWN, "/user/hand/left/input/x/click" },
    { ACTION_X_TOUCH, "/user/hand/left/input/x/touch" },
    { ACTION_Y_DOWN, "/user/hand/left/input/y/click" },
    { ACTION_Y_TOUCH, "/user/hand/left/input/y/touch" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_PICO4] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/value" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/left/input/trigger/touch" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/right/input/trigger/touch" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/left/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/right/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/menu/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/system/click" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/click" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/value" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_A_TOUCH, "/user/hand/right/input/a/touch" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_B_TOUCH, "/user/hand/right/input/b/touch" },
    { ACTION_X_DOWN, "/user/hand/left/input/x/click" },
    { ACTION_X_TOUCH, "/user/hand/left/input/x/touch" },
    { ACTION_Y_DOWN, "/user/hand/left/input/y/click" },
    { ACTION_Y_TOUCH, "/user/hand/left/input/y/touch" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_TRACKER] = (Binding[]) {
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/left_elbow/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/right_elbow/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/left_shoulder/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/right_shoulder/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/chest/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/waist/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/left_knee/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/right_knee/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/left_foot/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/right_foot/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/camera/input/grip/pose" },
    { ACTION_TRACKER_POSE, "/user/vive_tracker_htcx/role/keyboard/input/grip/pose" },
    { 0, NULL }
  },
  [PROFILE_MX_INK] = (Binding[]) {
    { ACTION_STYLUS_POSE, "/user/hand/left/input/tip_logitech/pose" },
    { ACTION_STYLUS_POSE, "/user/hand/right/input/tip_logitech/pose" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/cluster_middle_logitech/force" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/cluster_middle_logitech/force" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/cluster_middle_logitech/force" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/cluster_middle_logitech/force" },
    { ACTION_A_DOWN, "/user/hand/left/input/cluster_front_logitech/click" },
    { ACTION_A_DOWN, "/user/hand/right/input/cluster_front_logitech/click" },
    { ACTION_B_DOWN, "/user/hand/left/input/cluster_back_logitech/click" },
    { ACTION_B_DOWN, "/user/hand/right/input/cluster_back_logitech/click" },
    { ACTION_NIB_DOWN, "/user/hand/left/input/tip_logitech/force" },
    { ACTION_NIB_DOWN, "/user/hand/right/input/tip_logitech/force" },
    { ACTION_NIB_FORCE, "/user/hand/left/input/tip_logitech/force" },
    { ACTION_NIB_FORCE, "/user/hand/right/input/tip_logitech/force" },
    { ACTION_STYLUS_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_STYLUS_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  },
  [PROFILE_GAZE] = (Binding[]) {
    { ACTION_GAZE_POSE, "/user/eyes_ext/input/gaze_ext/pose" },
    { 0, NULL }
  },
  [PROFILE_HAND] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/pinch_ext/value" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/pinch_ext/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/pinch_ext/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/pinch_ext/value" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/grasp_ext/value" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/grasp_ext/value" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/grasp_ext/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/grasp_ext/value" },
    { ACTION_DPAD_UP_DOWN, "/user/hand/left/input/swipe_forward_meta/click" },
    { ACTION_DPAD_UP_DOWN, "/user/hand/right/input/swipe_forward_meta/click" },
    { ACTION_DPAD_DOWN_DOWN, "/user/hand/left/input/swipe_backward_meta/click" },
    { ACTION_DPAD_DOWN_DOWN, "/user/hand/right/input/swipe_backward_meta/click" },
    { ACTION_DPAD_LEFT_DOWN, "/user/hand/left/input/swipe_left_meta/click" },
    { ACTION_DPAD_LEFT_DOWN, "/user/hand/right/input/swipe_left_meta/click" },
    { ACTION_DPAD_RIGHT_DOWN, "/user/hand/left/input/swipe_right_meta/click" },
    { ACTION_DPAD_RIGHT_DOWN, "/user/hand/right/input/swipe_right_meta/click" },
    { ACTION_THUMBTAP_DOWN, "/user/hand/left/input/tap_thumb_meta/click" },
    { ACTION_THUMBTAP_DOWN, "/user/hand/right/input/tap_thumb_meta/click" },
    { 0, NULL }
  },
  [PROFILE_FRAME] = (Binding[]) {
    { ACTION_GRIP_POSE, "/user/hand/left/input/grip/pose" },
    { ACTION_GRIP_POSE, "/user/hand/right/input/grip/pose" },
    { ACTION_POINTER_POSE, "/user/hand/left/input/aim/pose" },
    { ACTION_POINTER_POSE, "/user/hand/right/input/aim/pose" },
    { ACTION_PINCH_POSE, "/user/hand/left/input/pinch_ext/pose" },
    { ACTION_PINCH_POSE, "/user/hand/right/input/pinch_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/left/input/poke_ext/pose" },
    { ACTION_POKE_POSE, "/user/hand/right/input/poke_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/left/input/palm_ext/pose" },
    { ACTION_PALM_POSE, "/user/hand/right/input/palm_ext/pose" },
    { ACTION_TRIGGER_DOWN, "/user/hand/left/input/trigger/click" },
    { ACTION_TRIGGER_DOWN, "/user/hand/right/input/trigger/click" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/left/input/trigger/touch" },
    { ACTION_TRIGGER_TOUCH, "/user/hand/right/input/trigger/touch" },
    { ACTION_TRIGGER_AXIS, "/user/hand/left/input/trigger/value" },
    { ACTION_TRIGGER_AXIS, "/user/hand/right/input/trigger/value" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/left/input/thumbstick/click" },
    { ACTION_THUMBSTICK_DOWN, "/user/hand/right/input/thumbstick/click" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/left/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_TOUCH, "/user/hand/right/input/thumbstick/touch" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/left/input/thumbstick" },
    { ACTION_THUMBSTICK_AXIS, "/user/hand/right/input/thumbstick" },
    { ACTION_MENU_DOWN, "/user/hand/left/input/view/click" },
    { ACTION_MENU_DOWN, "/user/hand/right/input/menu/click" },
    { ACTION_MENU_TOUCH, "/user/hand/left/input/view/touch" },
    { ACTION_MENU_TOUCH, "/user/hand/right/input/menu/touch" },
    { ACTION_GRIP_DOWN, "/user/hand/left/input/squeeze/click" },
    { ACTION_GRIP_DOWN, "/user/hand/right/input/squeeze/click" },
    { ACTION_GRIP_TOUCH, "/user/hand/left/input/squeeze/touch" },
    { ACTION_GRIP_TOUCH, "/user/hand/right/input/squeeze/touch" },
    { ACTION_GRIP_AXIS, "/user/hand/left/input/squeeze/value" },
    { ACTION_GRIP_AXIS, "/user/hand/right/input/squeeze/value" },
    { ACTION_A_DOWN, "/user/hand/right/input/a/click" },
    { ACTION_A_TOUCH, "/user/hand/right/input/a/touch" },
    { ACTION_B_DOWN, "/user/hand/right/input/b/click" },
    { ACTION_B_TOUCH, "/user/hand/right/input/b/touch" },
    { ACTION_X_DOWN, "/user/hand/right/input/x/click" },
    { ACTION_X_TOUCH, "/user/hand/right/input/x/touch" },
    { ACTION_Y_DOWN, "/user/hand/right/input/y/click" },
    { ACTION_Y_TOUCH, "/user/hand/right/input/y/touch" },
    { ACTION_DPAD_UP_DOWN, "/user/hand/left/input/dpad_up/click" },
    { ACTION_DPAD_UP_TOUCH, "/user/hand/left/input/dpad_up/touch" },
    { ACTION_DPAD_DOWN_DOWN, "/user/hand/left/input/dpad_down/click" },
    { ACTION_DPAD_DOWN_TOUCH, "/user/hand/left/input/dpad_down/touch" },
    { ACTION_DPAD_LEFT_DOWN, "/user/hand/left/input/dpad_left/click" },
    { ACTION_DPAD_LEFT_TOUCH, "/user/hand/left/input/dpad_left/touch" },
    { ACTION_DPAD_RIGHT_DOWN, "/user/hand/left/input/dpad_right/click" },
    { ACTION_DPAD_RIGHT_TOUCH, "/user/hand/left/input/dpad_right/touch" },
    { ACTION_BUMPER_DOWN, "/user/hand/left/input/bumper/click" },
    { ACTION_BUMPER_DOWN, "/user/hand/right/input/bumper/click" },
    { ACTION_BUMPER_TOUCH, "/user/hand/left/input/bumper/touch" },
    { ACTION_BUMPER_TOUCH, "/user/hand/right/input/bumper/touch" },
    { ACTION_HAND_VIBRATE, "/user/hand/left/output/haptic" },
    { ACTION_HAND_VIBRATE, "/user/hand/right/output/haptic" },
    { 0, NULL }
  }
};
