I like the idea of this… But, what exactly is this meant to solve or do better than UserInputService and ContextActionService.
I can see the push towards better multi-platform support but… it is a really flawed approached because inputs aren’t always in a simple state of translation between input types. Yes, something like an action of jumping will be nearly identical between all platforms e.g. press input → character jumps. But there are cases where it gets more complicated like sprinting and aiming. I would never want to force any touch-screen user to hold down a button to sprint or to aim. Keyboard and gamepad would definitely require holding down a input though. There are probably a number of cases like this. How are those cases that going to be handled without creating multiple InputActions?
Not to mention, there are no inputs for mouse actions YET. I think those should have come out alongside this and how will that affect UIS and CAS? Will those change with the new KeyCode Enums? Another thing, multiple input actions are not supported as well. Would be cool to get some native support for them.
Obviously, I don’t expect perfection but I would hope it would release doing something a bit better than the previous services if it is meant to supersede them. But again it is in Studio beta so it’ll hopefully get better!