code: def _permute_core_specs(self):
          
          obj_trees = []
          projects = self._get_requested_spec(self._obj_lib, _PROJECTS_STR)
          for project in projects:
              models = self._get_requested_spec(project, _MODELS_STR)
              for model in models:
                  runs = self._get_requested_spec(model, _RUNS_STR)
                  for run in runs:
                      obj_trees.append({
                          self._NAMES_SUITE_TO_CALC[_PROJECTS_STR]: project,
                          self._NAMES_SUITE_TO_CALC[_MODELS_STR]: model,
                          self._NAMES_SUITE_TO_CALC[_RUNS_STR]: run,
                      })
          return obj_trees
docs: Generate all requested combinations of the core objects.