By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Rebuild centjes-chart: pure report IR, diagrams backend, tests Restructure the centjes-chart package around a backend-agnostic, pure report so the data pipeline is total and testable and rendering is isolated: - Centjes.Chart.Report: ChartReport/ChartSeries IR plus a typed ChartError (unknown currency / no data / conversion failure) with a ToReport instance that delegates to ConvertError. produceChartReport is total; the old fromJust/minimum/maximum partials are gone. sampleStepFunction does the step-function carry-forward and is property-tested. - Centjes.Chart.Render: the only place precise money becomes Double; renders a stacked-area SVG via Chart + Chart-diagrams (drops the cairo C dependency). - Command/All + OptParse: currency, account filter (reusing Centjes.Filter), output path and title are now settings instead of hardcoded. - Add centjes-chart-test: sampleStepFunction properties, a valid golden, and error goldens for every ChartError constructor. - Re-value held balances at each day's rate; share the per-day price graph. - Fix copy-pasted switzerland option config; ensureDir on the output path.