* Broke ticket workflow out into `ITicketWorkflow` and `ITicketManipulator`.
* `ITicketWorkflow` is purely for defining state transitions based on actions.
* `ITicketManipulator` is used for filtering ticket fields before the user sees them, and ticket validation.