class_docstr: Represents one row into the output file for the
  :class:`~maze.core.log_events.log_events_writer_tsv.LogEventsWriterTSV`.
  
  The purpose of this class is to keep event record attributes together with its episode and step IDs.
  
  :param episode_id: ID of the episode the event was generated in
  :param env_time: What time the event was generated in (either internal env time, or ID of the step)
  :param attributes: Event attributes dict
class_docstr_tok: ["Represents","one","row","into","the","output","file","for","the",":","class",":","`","~maze.core.log_events.log_events_writer_tsv.LogEventsWriterTSV","`",".","The","purpose","of","this","class","is","to","keep","event","record","attributes","together","with","its","episode","and","step","IDs",".",":","param","episode_id",":","ID","of","the","episode","the","event","was","generated","in",":","param","env_time",":","What","time","the","event","was","generated","in","(","either","internal","env","time",",","or","ID","of","the","step",")",":","param","attributes",":","Event","attributes","dict"]
code: def __init__(
      self, episode_id: str, env_time: Optional[int], attributes: dict
  ):
      self.episode_id = episode_id
      self.env_time = env_time
      self.attributes = attributes
  
file_path: maze/maze/core/log_events/log_events_writer_tsv.py
imports: from pathlib import Path
  from typing import Union, Dict, List, Optional
  from maze.core.annotations import override
  from maze.core.log_events.episode_event_log import EpisodeEventLog
  from maze.core.log_events.log_events_writer import LogEventsWriter
label_desc: Use image node_id 1 to create a new EventRow object  with example: obj = EventRow(episode_id, env_time, attributes)