code: def __init__(
      self,
      max_pieces_in_inventory: int,
      raw_piece_size: (int, int),
      static_demand: (int, int),
  ):
      super().__init__()
  
      ...
  
      # init pubsub for event to reward routing
      self.pubsub = Pubsub(self.context.event_service)
  
      # KPIs calculation
      self.kpi_calculator = Cutting2dKpiCalculator()
  
file_path: maze/tutorials/tutorial_maze_env/part04_events/env/core_env_snippet.py
imports: from maze.core.events.pubsub import Pubsub
  from .events import CuttingEvents, InventoryEvents
  from .kpi_calculator import Cutting2dKpiCalculator
label_desc: Use image node_id 1 to create a new Cutting2DCoreEnvironment object from inherited base classes: CoreEnv with example: obj = Cutting2DCoreEnvironment(max_pieces_in_inventory, raw_piece_size, static_demand)