Description
Currently the application's main operations are first implemented as CLI operations, and then the UI can make use of those with little added effort.
Some issues arise though, specifically with error handling and user interaction.
Simply causing an exception that crashes the entire operation isn't great way to handle errors for the UI side.
Similarly, the UI side might want to ask users what to do (through message or interaction dialogs) in cases of failures in the middle of an operations, with outcomes that potentially don't require the restarting of the entire operation.
If the operations are to be developed for both the CLI and UI, then an elegant solution is required to avoid code duplication without precluding the possibility of user interaction.
Deciding on a general strategy for this early can avoid the proliferation of many different solutions throughout the project, as helping maintaining feature parity between CLI and UI.