Encapsulate dependency versions in DependencyVersions value object. Use ModuleIteration instead of TrainIteration+Project.