```ts
export function layConveyor(floor: string[], row: number, col: number, length: number): string[] {
  if (length <= 0) throw new Error("Run must cover at least one cell.");
  if (row < 0 || row >= floor.length) throw new Error("Row out of bounds.");
  const rowLength = floor[row].length;
  if (col + length > rowLength) throw new Error("Run passes the last column.");
  if (floor[row].slice(col, col + length).includes("#")) throw new Error("Run covers a cell that is not open.");

  const newFloor = [...floor];
  newFloor[row] = floor[row].slice(0, col) + "=".repeat(length) + floor[row].slice(col + length);
  return newFloor;
}
```