Distribution Fit DTO
Wire-safe, asymmetry-aware result for one (estimator, distribution-family) outcome. family + parameters + shift is everything a distribution-capable client needs to reconstruct the fitted distribution and build any fit-quality plot from its own raw data.
The continuous side populates the headline MODA fields (weightedValue, averageRanking, firstRankCount — the engine's OverallValueData); the full per-metric MODA breakdown lives once in the report's ModaResultDTO, joined by displayName == alternative. The discrete side populates chiSquaredPValue (a convenience mirror of goodnessOfFit?.chiSquaredPValue, used as the discrete ranking key).
goodnessOfFit and bootstrap are populated in a later phase by the result extractor; they are null until then.