An input protocol developed by microsoft in the mid 90's designed to attempt to standardise communication between input devices and games. Direct input has been mostly replaced by XInput for most gaming devices, but Direct input remains fully supported by Microsoft due to the fact that complex devices such as flight sticks and wheels require it due to the more complex and higher number of inputs.
Question about curves, off course I don't yet understand all the variations you were talking about. But will different types of curves be able to be applied separately on the positive and negative throws? Configuring a golf swing for example you need more precision at each end of the axis. So each direction from center needs to be a mirror of the other. Boy this could really add a lot more feel to the swing in the Golf games I almost exclusively play. That's been the biggest downside to using a curve with the swing before, it made setting power at the top of the swing more difficult.
Also I hope the positive/negative values match what is being displayed in Xinput test. In 1.6 there is still a bug with the right sticks sensitivity as it works in only one direction. Not sure which as they are identified opposite of the values given in xinput test. This is probably why the bug exists do to the values being reversed. I don't know how hard this would be to fix and push out a new build for 1.6. But it has created problems with cursor control, like trying to toggle a aim-down-sights mode, or race steering for example. I believe it was moving the stick left and up no sensitivity was being applied.
Asus STRIX X299-E GAMING MB, i7-7820X 3.6/4.5GHz 8-Core, 32GB Corsair Dominator Platinum (CMD16GX4M2B2400C10), NVIDIA TITAN X (Pascal), Samsung 970 Pro 1TB M.2-NVMe w/Western Digital 2TB (WD2000F9YZ), Samsung 65Q9FN QLED, HTC Vive, 850w PS, W10