code: def types():
          
          if Message._types is None:
              Message._types = {}
              classes_to_process = [Message]
              while classes_to_process:
                  atom = classes_to_process.pop()
                  classes_to_process += atom.__subclasses__()
                  Message._types[atom.__name__] = atom
          return Message._types
docs: Return a mapping ``{type_name: message_type}`` for all defined Message's.
  
          :return: A dictionary of ``Message`` types.
          :rtype: Dict[str,type]