It was an eye opener for me.
Language does not matter (I used Go and Ruby) as long as bindings are reasonable.
So your original comment / request was regarding USB specifically then?
I ask because I'd have guessed (possibly incorrectly!) that implement HID via GATT (BLE) you'd be able to support anything the BLE hardware revision could implement?
Perhaps the disconnect for me is that it's unclear when there is some special hardware that exists within the ESP32 itself (I think I2C, I2S, etc would be examples of this) vs something you are just implementing by manipulating the IO pins. Perhaps HID is one of those things?
interface class 3 (a Human Interface Device) sub class 1 (Boot protocol or Boot interface)
In contrast the sub class 0 of HID is just the ordinary case, which is arbitrarily complicated (six thousand keys and four axis input? Why not) and so understandably a BIOS or similar environment might not implement that but a full blown OS usually does.
Doubtless tools exist for other platforms which can show the same information as lsusb