, this is great!
Couple things though - your RemoveAxis/RemoveAction functions don’t account for the fact a single key might be bound to several axes/actions and we might want to remove the bindings only on axes/actions specified in struct passed to function. And you really should integrate those AddAxis/AddAction nodes - the whole thing is incomplete without them.