We use several private fields to describe the process stage, but we'd like introduce explicit state machine contract
Expose this
_halted
_piped
_output // which means that is fulfilled
via smth like
type ProcessStage = 'halted' | 'pending' | 'fulfilled' | 'rejected'
stage(): ProcessStage {
if (this._halted) { return ... }
// ...
}