```typescript
/** Lay a straight eastward conveyor run across a factory floor plan. */
export function layConveyor(floor: string[], row: number, col: number, length: number): string[] {
  if (row < 0 || row >= floor.length) {
    throw new Error("the run starts off the plan");
  }
  const cells = floor[row].split("");
  
  // Check if the run would pass the last column or cover a cell that is not open
  for (let i = col; i < col + length; i++) {
    if (i >= cells.length || cells[i] !== ".") {
      throw new Error("the run leaves the plan or covers an occupied cell");
    }
  }

  // Write the conveyor run's cells and return the plan with only that row changed
  const newRow = [...cells.slice(0, col), ...Array(length).fill("="), ...cells.slice(col + length)];
  return floor.map((r, rIndex) => rIndex === row ? newRow.join("") : r);
}
```