code: def get_multi_match_mapping(self) -> Dict[Type, List[Type]]:
          
          if self._multi_match_mapping is None:
              self._multi_match_mapping = {}
              basic_types = self.get_basic_types()
              for basic_type in basic_types:
                  if isinstance(basic_type, types.MultiMatchNamedBasicType):
                      matched_types: List[str] = []
                      # We need to check if each type in the `types_to_match` field for the given
                      # MultiMatchNamedBasic type is itself in the set of basic types allowed in this
                      # world, and add it to the mapping only if it is. Some basic types that the
                      # multi match type can match with may be diallowed in the world due to the
                      # instance-specific context.
                      for type_ in basic_type.types_to_match:
                          if type_ in basic_types:
                              matched_types.append(type_)
                      self._multi_match_mapping[basic_type] = matched_types
          return self._multi_match_mapping
docs: Returns a mapping from each `MultiMatchNamedBasicType` to all the `NamedBasicTypes` that it
          matches.