code: def __field_to_subfields(self, field):
      if not isinstance(field, messages.MessageField):
        return [[field]]
      result = []
      for subfield in sorted(field.message_type.all_fields(),
                             key=lambda f: f.number):
        subfield_results = self.__field_to_subfields(subfield)
        for subfields_list in subfield_results:
          subfields_list.insert(0, field)
          result.append(subfields_list)
      return result