Currently the pipeline steps only fire during the process of updating the environment. If you have an invalid property part way through the file, you can end up with a partial update.
Ideally, all properties would be validated before updating the environment. There will also need to be an optional third argument to pipeline steps which will be passed the accumulated validated config - this will allow cross-property validation (ex value A must be larger than value B)