while it's very clear that you can only send 4 commands... what I don't think is clear, but is implied, is that these commands do not have to be single-step operations. For example, you can have the robot autonomously drive full-bore until you hit a button, which then slows your robot down to 3 f/s, then pops a piston up to knock a ball off, pulls the piston back down, and resumes speed.
In the past, we've put a on-board switch bank on our robot connected to digital i/o that would allow us to switch between different auton modes depending on what our alliance partners needed. You can also write separate hybrid mode routines that remap what the IR commands do, but those have to be chosen before the match, and you need to make sure that the correct command card is brought up to the field before the match starts.
I'm not saying we're doing that, but we're tossing around the idea
