the training engine's injected dependency bundle
maps experiment → pipeline id
optional TrainingEngine override (defaults to a fresh instance)
Train one experiment and return the produced model, its training-run row,
and the normalized holdout TrainExperimentResult.Score for the
plan's SuccessMetric. The implementation links the run to the iteration
(ExperimentSessionIterationID).
the experiment to train + the owning iteration/session context
IExperimentTrainer backed by the TrainingEngine. For each iteration it resolves the pipeline (via an injected IPipelineResolver), trains it through the engine (producing an immutable Draft
MJ: ML Models+ itsMJ: ML Training Runsleaf linked to the iteration viaexperimentSessionIterationId), and extracts the normalized holdout Score for the plan'sSuccessMetricto drive the leaderboard.