(there are 4, named Input1 through Input4, however when I create the device and associate with the serial port, the UI shows a device with a gear, no buttons etc.
The UI appearance for a device is controlled through the D_.json file (the “static JSON file”). This is the file that is mentioned in the device file (D_.xml) in the element.
We’ve reverse-engineered some of the file format and posted it to the wiki. You will probably have to do some experimenting on your own, too.
Even one single error in the device file or the static JSON file will result in the empty gear you see. The first test you should always do is to make sure that your XML and JSON files are well-formed. There are plenty of validators online that you can paste your file’s contents into.