Convergence Plot
Convergence plot for a simulation-optimization run.
Extends BasePlot so it slots directly into the framework's ksl.utilities.io.report.dsl.ReportBuilder.plot DSL — the HTML renderer embeds an interactive lets-plot fragment (zoom + hover) via BasePlot.toEmbeddedHTML; the Markdown renderer exports a PNG and references it; etc.
Plot shape:
X axis:
iterationY axis: best estimated objective at that iteration
One geom_line + geom_point series across the run's history
Sentinel "no feasible solution yet" values (±Double.MAX_VALUE, ±Infinity, NaN) are filtered out before plotting so the Y axis isn't crushed by 1.8e308 seed values.
Substrate-level API — usable by any UI shell.