Emulating a controller

Disclaimer: I'm new to C++ and even newer to Arduino.

I'm researching and experimenting with the mouse and keyboard libraries (https://www.arduino.cc/en/Reference/MouseKeyboard) which emulate a mouse and keyboard on a connected computer. I would like to know if it's possible to emulate an xbox one controller on a connected computer. I believe it would be a combination of the two but I do not know if this is possible to implement. Any suggestions? Thanks!

You can do that easiest on a USB/AVR-duino like a Leonardo, Micro or Teensy 2.

The Arduino can be an HID (Human Interface Device) which is the standard, you see many gameport sticks?