parseManualCsv

Parse a CSV in the shape that the Experiment app's design-points preview Export produces (and that the Custom design-points tab's Import consumes). Substrate-level helper so any host (Swing, web, CLI) can drive the same parser.

Shape:

  • First line is the header. Must contain a column for every declared factor name. Header columns # and reps are optional and recognised by exact name; any other extra columns are silently ignored.

  • Each subsequent non-blank line is one design point. Cells are split on commas (no quoting support — KSL factor names and numbers don't contain commas).

  • Each factor value is parsed as Double and range-checked against the factor's min / max levels. Values within range but not equal to a declared level are accepted without a warning (the import path is for power-user workflows).

  • The optional reps cell, when present and non-blank, becomes a per-point replications override; blank means "inherit the document default".