```python
def hop_chain(hops: list) -> bool:
    """Check if a list of hops forms one unbroken chain."""
    if not hops:
        return True
    
    # Validate input structure
    for i, hop in enumerate(hops):
        if not isinstance(hop, (list, tuple)) or len(hop) != 2:
            raise ValueError(f"Invalid hop at index {i}: expected a pair")
    
    # Check that each hop ends where the next one starts
    for i in range(len(hops) - 1):
        current_end = hops[i][1]
        next_start = hops[i + 1][0]
        if current_end != next_start:
            return False
            
    return True
```