```python
def oxford_join(names: list) -> str:
    """
    Join a list of names into one phrase.
    Two names are joined by the word 'and'; three or more take a comma
    between every pair but the last, which takes the word 'and'.
    One name stands alone and no names at all give empty text.
    """
    if not names:
        return ""
    elif len(names) == 1:
        return names[0]
    else:
        # Joining with 'and' for two names and ',' for three or more
        return ', '.join(names[:-1]) + ' and ' + names[-1]
```