class_docstr: Holds the inventory of 2D pieces and performs cutting.
  :param max_pieces_in_inventory: Size of the inventory. If full, the oldest pieces get discarded.
  :param raw_piece_size: Size of a fresh raw (= full-size) piece.
  :param inventory_events: Inventory event dispatch proxy.
code: def __init__(
      self,
      max_pieces_in_inventory: int,
      raw_piece_size: (int, int),
      inventory_events: InventoryEvents,
  ):
      self.max_pieces_in_inventory = max_pieces_in_inventory
      self.raw_piece_size = raw_piece_size
      self.inventory_events = inventory_events
  
      self.pieces = []
  
file_path: maze/tutorials/tutorial_maze_env/part06_struct_env/env/inventory.py
imports: from .events import InventoryEvents
  from .maze_action import Cutting2DMazeAction
label_desc: Use image node_id 1 to create a new Inventory object  with example: obj = Inventory(max_pieces_in_inventory, raw_piece_size, inventory_events)