```python
"""The free stretches of a working window, given its busy intervals."""


def free_windows(window_start: int, window_end: int, busy: list) -> list:
    if window_start >= window_end:
        raise ValueError("Window start must precede window end.")
    
    for start, end in busy:
        if start > end or not isinstance(start, int) or not isinstance(end, int):
            raise ValueError("Busy interval start and end must be integers and the start must precede the end.")
    
    gaps = []
    cursor = window_start
    busy_intervals = sorted(busy)
    
    for start, end in busy_intervals:
        if start > cursor:
            gaps.append([cursor, start])
        cursor = max(cursor, end)
    
    if cursor < window_end:
        gaps.append([cursor, window_end])
    
    return gaps
```