I think the question around multiple controllers comes down to how we deal with the index/id of each. From the top of my head, I could see something like this.
- There are a number of controller slots (4?)
- A controller plugged in is assigned the first available slot
- The controller keeps its slot until it is removed by the user, which makes its slot available again
- The slot is communicated in the input action, e.g. action = {…, controller_id = 1}
Does this cover your use-cases? If not, what’s missing? Is there a need for added/removed controllers being reported somehow?