This looks okay but I would love to have some tests to make sure it's supposed to work (esp. with dinput), and to avoid regressing it later on.
If you could write a couple of tests to `dlls/dinput/tests/force_feedback.c`, adding a device with 6 directions and checking how the effect reports look like that would be greatly appreciated.
The tests use virtual HID devices with custom report descriptors, and we check on the HID driver level what reports are generated by dinput (and other APIs). You should be able to run the tests in a Windows VM with test-signing enabled (`Bcdedit.exe -set TESTSIGNING ON` then reboot).