!string|!number for type of keys conflicts with our coding rules, which only allow !string.
But isn't that also in general that keys can be only strings?
Javascript converts any parameter to the bracket notation on the fly to string, I guess.
Hm, only using !string here makes Closure compiler complain on almost all usages (besides [key]), not sure doing explicit String conversion makes the code more readable...
Just thinking loud, no call for action, but perhaps for comment :)