class_docstr: Manages the recording of event invocations and provides simple event routing functionality.
  There is one EventService instance in every agent-environment loop, provided by the AgentEnvironmentContext.
  
  Within the environment the richer routing functionality provided by PubSub should be utilized, rather than
  directly interacting with this class.
class_docstr_tok: ["Manages","the","recording","of","event","invocations","and","provides","simple","event","routing","functionality",".","There","is","one","EventService","instance","in","every","agent-environment","loop",",","provided","by","the","AgentEnvironmentContext",".","Within","the","environment","the","richer","routing","functionality","provided","by","PubSub","should","be","utilized",",","rather","than","directly","interacting","with","this","class","."]
code: def __init__(self):
      self.topics: Dict[T, EventService.TopicInfo] = dict()
      self.scopes: Set[EventScope] = set()
  
file_path: maze/maze/core/events/event_service.py
imports: from abc import ABC, abstractmethod
  from collections import deque
  from typing import Dict, TypeVar, Type, Set, Generator
  from maze.core.events.event_record import EventRecord
  from maze.core.events.event_topic_factory import event_topic_factory
label_desc: Use image node_id 1 to create a new EventService object  with example: obj = EventService()