Fit Result Extractor
Converts the live, non-serializable products of a continuous fit (PDFModeler + PDFModelingResults) into the serializable FitResultData graph. This is the orchestration layer's core translation step: it is the one place that reads the engine's live objects and emits wire-safe DTOs, identical whether the engine is co-located or remote.
MODA results are sourced from the model's own record producers (metricData(), alternativeScoreData(), alternativeValueData(), alternativeRankFrequencyData()) rather than by walking the model; each producer record's database id and repeated model name are dropped on the mapping. No plot data is produced — a client rebuilds plots from its own data plus the returned fitted distribution.
Functions
Builds the full result DTO graph for a continuous fit.
Builds the result DTO graph for a discrete fit. Mirrors the engine's intentional PDF/PMF asymmetry: there is no MODA scoring — fits are ranked by chi-squared p-value (higher is a better fit) — and no histogram or bootstrap. Each successful fit carries a discrete GoodnessOfFitDTO (chi-squared plus the dispersion statistics).