static SS agiBlue_findProbableConcreteSlicesForMetaSlices() {
  new SS metaToConcrete; // id to id
  
  SS idToName = agiBlue_sliceNamesMap();
  MultiMap<S> nameToID = reversedMapAsMultiMap(idToName);
  for (S metaID, metaName : idToName) {
    S name = dropSuffixICOrNull_trim("[Meta]", metaName);
    if (name == null) continue;
    S concrete = agiBlue_concreteSliceOfMetaSlice(metaID);
    if (nempty(concrete))
      continue with print("Found defined concrete slice for meta slice " + metaID + "/" + metaName + ": " + concrete);
      
    LS ids = nameToID.get(name);
    if (empty(ids))
      print("Concrete slice for meta slice " + metaID + "/" + metaName + " not found");
    else if (l(ids) > 1)
      print("Multiple possible concrete slices for meta slice " + metaID + "/" + metaName + ": " + ids);
    else {
      print("Found concrete slice for meta slice " + metaID + "/" + metaName + ": " + first(ids));
      metaToConcrete.put(metaID, first(ids));
    }
  }
  ret metaToConcrete;
}