Outputing JSON records seems reasonable. Maybe the switch name should reflect that, something like --json-progress or --progress=json. I'm not sure I really like the mix of type:string though, so keep fighting! :) Putting out something like straight up JSON seems fairly future proof, but then we'd probably also have to define the structure of the JSON so that we're careful not to break it in the future (e.g. only add keys, with a deprecation phase for old keys). Very similar (if informal) policy to the .Information() dictionary.
Outputing JSON records seems reasonable. Maybe the switch name should reflect that, something like --json-progress or --progress=json. I'm not sure I really like the mix of type:string though, so keep fighting! :) Putting out something like straight up JSON seems fairly future proof, but then we'd probably also have to define the structure of the JSON so that we're careful not to break it in the future (e.g. only add keys, with a deprecation phase for old keys). Very similar (if informal) policy to the .Information() dictionary.