pub fn render_optimize_proposal(p: &OptimizeProposal) -> StringExpand description
Render a OptimizeProposal (Mode-1 what-if) for the optimize run command. Returns a String
containing the proposal header, any approximate banner, the aggregate tax delta, per-disposal
rows (with proposed selection + compliance status + persistability), and the R0-M2 caveat footer.
Approximate banner (R0-C1/C3/R2-C1): when p.approximate == true, a ⚠ APPROXIMATE banner
and the specific approx_reason are printed. When false, no banner is printed (proven global
minimum — do NOT add a banner for this case).
R2-M1 no-change rows: a disposal whose proposed_selection == current_selection has nothing
to attest or persist (the optimizer is NOT asking to change it). The persistability line is
suppressed and a “no change — already optimal” note is shown instead, preventing a misleading
“needs –attest” prompt on a row the user does not need to act on.