I'm using InputController with a smart home skill to control my TV. I have found two differing versions of the Amazon documentation for this interface:
indicates that the desired input names should be in a configurations structure and can have both a name entry and an array of friendlyNames.
does not mention configurations and only lists name, no friendlyNames.
What I find when using it is that I can ask for any name I like and Alexa returns it even if it's not in my declared list and also if it's not a valid value as included in the standard name list. For example, I can ask for input 'Giraffe' and she will return that response in the payload.
Alexa.PlaybackController has a list of supportedOperations like Play, Pause, Stop etc. and if I ask for a valid operation that's not supported by my device (e.g. StartOver), Alexa replies "<Device> does not support that" which is correct behavior. With InputController, if I specify HDMI 1,2,3 as valid inputs during discovery then I expect a response if I ask for HDMI 4 telling me the TV does not support that. I certainly don't expect an "OK" if I ask for input Giraffe. What is the purpose of the inputs array within capabilities?