Add: Finer grained InputRequest

Continued implementing Shoot.
Ref: Shooting works