A function needs to communicate the total amount of progress it will go through in its progress "session". This will require a well-established protocol to set information such as:
- Set title
- Set max steps
- Set ETA
- Set (step, label, params)
- Done
These pieces of information can be used when rendering the progress in the UI.