I think the situation is not quite as bad as I first thought. Modules sometimes produce JSON output, and we can catch this and parse the 'failed' and 'changed' fields. The problems I'm aware of are:
* modules like 'command' do not output in JSON format, so we can't detect whether they changed. We could detect their status, but currently do not.
* if we have an error like passing invalid module arguments, we do not get JSON format, and do not detect this error.
I think the situation is not quite as bad as I first thought. Modules sometimes produce JSON output, and we can catch this and parse the 'failed' and 'changed' fields. The problems I'm aware of are:
* modules like 'command' do not output in JSON format, so we can't detect whether they changed. We could detect their status, but currently do not.
* if we have an error like passing invalid module arguments, we do not get JSON format, and do not detect this error.