Currently error messages are typically either done in assert() or called after stop followed by a sprintf message. The cli package (https://cli.r-lib.org/) can make this more intuitive and easier to understand. This additionally includes progress bars (e.g. for use in the multistep approach).