def calculate_winner(rules: dict, left_attack: str, right_attack: str) -> str:
    """
    Function to calculate the winner of combat
    Left player has priority and goes first

    :param rules: Dictionary of current rules
    :param left_attack: Attack type of priority player
    :param right_attack: Attack type of right player
    :return: Result of combat, either "left_wins", "right_wins", or "draw"
    """
    priority_rules = rules[left_attack]

    if right_attack in priority_rules["beats"]:
        return "left_wins"
    elif right_attack in priority_rules["loses"]:
        return "right_wins"
    else:
        return "draw"