```python
def oxford_join(names: list) -> str:
    """
    Join a list of names into one phrase using Oxford comma rules.

    Parameters:
    names (list): A list of strings representing names.

    Returns:
    str: A single string with the names joined according to Oxford comma rules.
    """
    if not names:
        return ""

    if len(names) == 1:
        return names[0]

    # Joining two or more names with a comma and 'and'
    result = ""
    for i, name in enumerate(names[:-1]):
        result += f"{name}, "
    result += f"and {names[-1]}"

    return result
```