code: func pullManifestList(ctx context.Context, ref reference.Named, repo distribution.Repository, mfstList manifestlist.DeserializedManifestList) ([]types.ImageManifest, error) {
  	infos := []types.ImageManifest{}
  
  	if _, err := validateManifestDigest(ref, mfstList); err != nil {
  		return nil, err
  	}
  
  	for _, manifestDescriptor := range mfstList.Manifests {
  		manSvc, err := repo.Manifests(ctx)
  		if err != nil {
  			return nil, err
  		}
  		manifest, err := manSvc.Get(ctx, manifestDescriptor.Digest)
  		if err != nil {
  			return nil, err
  		}
  		v, ok := manifest.(*schema2.DeserializedManifest)
  		if !ok {
  			return nil, fmt.Errorf("unsupported manifest format: %v", v)
  		}
  
  		manifestRef, err := reference.WithDigest(ref, manifestDescriptor.Digest)
  		if err != nil {
  			return nil, err
  		}
  		imageManifest, err := pullManifestSchemaV2(ctx, manifestRef, repo, *v)
  		if err != nil {
  			return nil, err
  		}
  
  		// Replace platform from config
  		imageManifest.Descriptor.Platform = types.OCIPlatform(&manifestDescriptor.Platform)
  
  		infos = append(infos, imageManifest)
  	}
  	return infos, nil
  }
docs: // pullManifestList handles "manifest lists" which point to various
  // platform-specific manifests.