Currently the spec represents buttons as an array of double values, to handle analog buttons (like the trigger buttons on most modern gamepads). However, I'm starting to think this might not be sufficient. The Playstation 3 controller, for example, has pressure-sensitive buttons which provide both a digital (pressed/not pressed) and an analog (how hard is it being pressed) value. It seems like it would be unfortunate to lose part of that data.
Should we spec button values to include both a boolean and a double value?
The recently-unveiled Gamepad framework in iOS 7/OS X 10.9 exposes buttons as a pressed+value pair:
I changed the buttons attribute to be of type GamepadButton, which has both pressed and value attributes:
This is the only breaking change I wanted to make to the spec.