interface Gamepad {
    readonly attribute DOMString                  id;
    readonly attribute long                       index;
    readonly attribute boolean                    connected;
    readonly attribute DOMHighResTimeStamp        timestamp;
    readonly attribute GamepadMappingType         mapping;
    readonly attribute FrozenArray<double>        axes;
    readonly attribute FrozenArray<GamepadButton> buttons;
};

interface GamepadButton {
    readonly attribute boolean pressed;
    readonly attribute boolean touched;
    readonly attribute double  value;
};

enum GamepadMappingType {
    "",
    "standard",
};

partial interface Navigator {
    sequence<Gamepad?> getGamepads();
};

[Constructor(GamepadEventInit eventInitDict)]
interface GamepadEvent : Event {
    readonly attribute Gamepad gamepad;
};

dictionary GamepadEventInit : EventInit {
    required Gamepad gamepad;
};
