Add new button UI control system which unifies old CompoundButton and InteractiveButtonComponents
A list of the required functionality this task requires to implement.

The overview shows the structure and how each feature can be extended to create all kinds of control types. Profiles define the button elements and connect theme to themes. Events and receivers are extended to handle different input types.

Lastly, the link below is a PowerPoint file with wireframes of the Unity UI flow for building a custom control, setting up feedback and hooking up events. See the notes for details about each screen. I have tested this with designers that have limited Unity exposure to build something that makes sense from the user perspective as well as a technical one.
https://1drv.ms/p/s!AqOxnyip025RjKZMACd5wK3dMC4pgQ
I finished porting the original Interaction Receiver from HTK this morning. I'm setting up a demo scene before I open the PR. It might cover what you need as far as receivers go, potentially you could extend it for UnityEvents, but I know that's up for discussion based on the comments in the open PR.
One potential issue @radicalad , is your reference to the UnityEvents.
Whereas we have implemented a manager specific Event System in MRTK, we have avoided the use of UnityEvents as they create a lot of garbage for the GC and have a lot of overhead.
I'd recommend looking through the Input System code to see how we've implemented events in the MRTK currently.
@SimonDarksideJ just to clarify, I'm NOT using UnityEvents 馃槃 . I was just suggesting it may be a good starting point for @killerantz and was referring to the UnityEvents mention here: #2800
We can still use Unity Events, but I think we just want to try and minimize their use as much as possible.
The main goal is to make sure people can still wire up actions and events in the inspector without writing a single line of code.
I see a large list of items in this acceptance criteria. I think this task needs to be updated to reflect the current status of this feature branch.
CC: @cre8ivepark, @killerantz
fixed with #3380
Most helpful comment
We can still use Unity Events, but I think we just want to try and minimize their use as much as possible.
The main goal is to make sure people can still wire up actions and events in the inspector without writing a single line of code.