```python
from typing import List

def oxford_join(names: List[str]) -> str:
    """Join a list of names into one phrase, following Oxford comma rules."""
    if not names:
        return ''
    if len(names) == 1:
        return names[0]
    if len(names) == 2:
        return names[0] + ' and ' + names[1]
    return ', '.join(names[:-1]) + ' and ' + names[-1]
```