code: def split_recursive(
          self,
          depth: int,
          min_width: int,
          min_height: int,
          max_horizontal_ratio: float,
          max_vertical_ratio: float,
          seed: Optional[tcod.random.Random] = None,
      ) -> None:
          
          cdata = self._as_cdata()
          lib.TCOD_bsp_split_recursive(
              cdata,
              seed or ffi.NULL,
              depth,
              min_width,
              min_height,
              max_horizontal_ratio,
              max_vertical_ratio,
          )
          self._unpack_bsp_tree(cdata)
docs: Divide this partition recursively.
  
          Args:
              depth (int): The maximum depth to divide this object recursively.
              min_width (int): The minimum width of any individual partition.
              min_height (int): The minimum height of any individual partition.
              max_horizontal_ratio (float):
                  Prevent creating a horizontal ratio more extreme than this.
              max_vertical_ratio (float):
                  Prevent creating a vertical ratio more extreme than this.
              seed (Optional[tcod.random.Random]):
                  The random number generator to use.