(
  axes: {
    "player_x_keyboard":         Emulated(neg: Key(A), pos: Key(D)),
    "player_x_controller_stick": Controller(controller_id: 0, axis: LeftX, invert: false, dead_zone: 0.3),
    "player_x_controller_dpad":  Emulated(neg: Controller(0, DPadLeft), pos: Controller(0, DPadRight)),

    // DASHES (for controller joystick)
    "player_dash_x": Controller(controller_id: 0, axis: LeftX, invert: false, dead_zone: 0.5),
    "player_dash_y": Controller(controller_id: 0, axis: LeftY, invert: false, dead_zone: 0.5),

    // TODO
    // NOCLIP (DEVELOPMENT)
    "noclip_x": Emulated(pos: Key(D), neg: Key(A)),
    "noclip_y": Emulated(pos: Key(W), neg: Key(S)),
  },
  actions: {
    "accept":                 [ [Key(Return)], [Key(Space)], [Controller(0, A)] ],
    "decline":                [ [Key(Escape)], [Key(Q)], [Key(Back)], [Controller(0, B)] ],
    "pause":                  [ [Key(P)], [Controller(0, Start)] ],

    // TODO
    // NOCLIP (DEVELOPMENT)
    "noclip_toggle":          [ [Key(C)] ],

    // PLAYER
    "player_jump":            [ [Key(Space)], [Key(K)], [Key(Up)], [Controller(0, A)] ],
    "player_attack":          [ ],
    "player_attack_left":     [ [Key(Left)], [Key(H)], [Controller(0, X)] ],
    "player_attack_right":    [ [Key(Right)], [Key(L)], [Controller(0, B)] ],
    "player_buy_item":        [ [Key(E)], [Controller(0, Y)] ],

    // DASHES
    "player_dash_trigger":    [ [Key(J)], [Key(Down)], [Key(LShift)], [Controller(0, LeftShoulder)], [Controller(0, RightShoulder)] ],
    "player_dash_up_left":    [ [Key(W), Key(A)], [Controller(0, DPadUp), Controller(0, DPadLeft)] ],
    "player_dash_up_right":   [ [Key(W), Key(D)], [Controller(0, DPadUp), Controller(0, DPadRight)] ],
    "player_dash_down_left":  [ [Key(S), Key(A)], [Controller(0, DPadDown), Controller(0, DPadLeft)] ],
    "player_dash_down_right": [ [Key(S), Key(D)], [Controller(0, DPadDown), Controller(0, DPadRight)] ],
    "player_dash_up":         [ [Key(W)], [Controller(0, DPadUp)] ],
    "player_dash_down":       [ [Key(S)], [Controller(0, DPadDown)] ],
    "player_dash_left":       [ [Key(A)], [Controller(0, DPadLeft)] ],
    "player_dash_right":      [ [Key(D)], [Controller(0, DPadRight)] ],
  },
)
