Layer 2/3 optimizer results as the pressure-curve CSV the UI downloads.
Used to be built in the browser (Layer2Optimization / Layer3Optimization
``downloadCSV``), so nothing but an open tab could produce it. Now the backend
writes it (GET /api/optimizer/layer{2,3}/results.csv) and the UI's button fetches
that, so the file is the same whoever asks -- the design-tools MCP included.
The format is unchanged: ``Time (s),LOX Pressure (Pa),Fuel Pressure (Pa)``, one
row per time, numbers written the way JavaScript's ``String(n)`` writes them
(``5`` not ``5.0``, stardesign.jsformat), since that is what the file has always held.