What I think could be done, is to
- Create boolean task variables for each of your options.
- In the routing, set the variables based on the user input.
- Under Transitions, verify that the logic you want is selected, either
under the complete transition, or each of the routing transitions
- If the logic isn't met, throw an exception with detail for the user.
Below is some sample code that I have that throws an exception if the PBO
isn't checked in when completing a task.