Initially, I thought we could only support variable argument lengths with a custom strategy implementation, but the expressions could be something like 

`payload.key, #cmd == GET ? null : payload.value`

In which case, for a GET we get one arg, for a SET, we get 2 args.

Etc...

We would have to be sure to evaluate the command first, and then provide it as a variable in the evaluation context.