Is there a way to use the .UserTask with a custom data structure instead of a plain string?
Maybe with a custom StepBody and custom data model or something.
So with reference to:

I need to be able to pass in the username and rejection reason so I can capture that information.
So here, where I call...
await _workflowService.PublishUserAction(actionKey, username, optionValue);
...in my web api controller I can pass more than just the option value and consume that from a step.
Also how do I access the username passed in here in which ever of the StepBodys get called so i can assign this to the workflow data item?