from typing import Optional
from typing import List


def get_full_field_name(field_name: str, parent_fields: Optional[List[str]] = None) -> str:
    """
    Returns full path to a field.
    e.g. root.middle.child, root.oneof.1.attr
    """
    return ".".join(parent_fields + [field_name]) if parent_fields else field_name