code: def members_entries(self, all_are_optional: Optional[bool] = False) -> List[Tuple[str, str]]:
          
          if self._type_reference:
              rval: List[Tuple[str, str]] = []
              for n, t in self._context.reference(self._type_reference).members_entries(all_are_optional):
                  rval.append((n, self._ebnf.signature_cardinality(t, all_are_optional).format(name=n)))
              return rval
          else:
              sig = self._ebnf.signature_cardinality(self._typ.reference_type(), all_are_optional)
              return [(name, sig.format(name=name)) for name in self._names]
docs: Generate a list quoted raw name, signature type entries for this pairdef, recursively traversing
          reference types
  
          :param all_are_optional: If true, all types are forced optional
          :return: raw name/ signature type for all elements in this pair