```python
"""Walks a courier relay directory station by station."""
from typing import Dict, List


def trace_relay(links: Dict[str, str], start: str) -> List[str]:
    if not isinstance(start, str) or start not in links:
        raise ValueError("invalid starting station")
    if "" in links.values():
        raise ValueError("relay contains a terminal station")
    
    path = []
    current = start
    visited = set()
    
    while current not in visited:
        if current not in links:
            raise ValueError("invalid link in relay")
        
        path.append(current)
        visited.add(current)
        
        target = links[current]
        if target == "":
            break
        
        current = target
    
    return path
```