```python
"""Lay a straight eastward conveyor run across a factory floor plan."""


def lay_conveyor(floor: list, row: int, col: int, length: int) -> list:
    if row < 0 or row >= len(floor):
        raise ValueError("the run starts off the plan")
    
    # Check if the run would leave the plan
    if col + length > len(floor[0]):
        raise ValueError("the run would pass the last column")
    
    # Ensure all cells in the run are open
    for i in range(length):
        if floor[row][col + i] != '.':
            raise ValueError("a cell the run covers is not open")
    
    # Write the run's cells and return the plan with only that row changed
    new_row = list(floor[row])
    for i in range(length):
        new_row[col + i] = '='
    floor[row] = ''.join(new_row)
    
    return floor
```