# Mapping from skill types to the required parameter names
ACTION_PARAM_MAP = {
    'pick': ['source', 'target'],
    'place': ['source', 'target'],
    'press': ['target'],
    'slide_open': ['target'],
    'slide_close': ['target'],
    'flap_open': ['target'],
    'flap_close': ['target'],
    'push_to': ['source', 'target'],
    'lift_from': ['source', 'target'],
    'insert_into': ['source', 'target'],
    'open_cap': ['target'],
    'close_cap': ['target'],
    'wipe': ['source', 'target'],
    'stick_on': ['source', 'target'],
    'pour_into': ['source', 'target'],
    'cut': ['source', 'target'],
    'stir': ['source', 'target'],
    'press_open': ['target'],
    'press_close': ['target'],
    'write': ['source', 'target'],
    'inspect': ['source', 'target'],
    'bind': ['source', 'target'],
    'weld': ['source', 'target'],
    'scan': ['source', 'target'],
    'tighten': ['source', 'target'],
    'align': ['target'],
    'assemble': ['source', 'target'],
    'drill': ['source', 'target'],
    'mark': ['source', 'target'],
}


# Action types that involve binary state switches (e.g., open/close)
SWITCH_ACTIONS = [
    "press_open",
    "press_close",
    "slide_open",
    "slide_close",
    "flap_open",
    "flap_close",
    "open_cap",
    "close_cap",
]

# Action types that involve using tools or interacting with objects
USE_ACTIONS = [
    "wipe",
    "stick_on",
    "pour_into",
    "cut",
    "stir",
    "write",
    "inspect",
    "bind",
    "weld",
    "scan",
    "tighten",
    "align",
    "assemble",
    "drill",
    "mark",
]
