pub fn run_multi_observation_truing_core(
observations: &[TruingObservation],
drop_unit: DropUnit,
bc_input: f64,
drag_model: DragModelArg,
mass_gr: f64,
diameter_in: f64,
zero_yd: f64,
sight_in: f64,
temp_f: f64,
press_inhg: f64,
humidity: f64,
alt_ft: f64,
bc_segments: &Option<Vec<BCSegmentData>>,
) -> Result<MultiTruingReport, Box<dyn Error>>Expand description
Orchestrate the multi-observation joint MV+BC calibration and build the
final MultiTruingReport (MBA-1343: the compute half only — rendering
stays with the caller).
observations is the already-parsed observation set, primary
(--range/--measured-drop) first, then each --observed impact in order
(use parse_truing_observation to build them from RANGE:DROP tokens);
every drop is already in drop_unit and every range in internal yards. The
set is validated with validate_truing_observations before any fitting.