Build a diagnostic report format that explains *why* a mutation was rejected, providing feedback to the optimization loop. Relates to #71