def METHOD_NAME(model: BaseModel) -> Sequence[str]:
    """Recursively traverse a pydantic model and print values.
    This method will traverse a model and present each field with a "dotted" string
    path, current value and data type. It is supposed to be used with pyatv.settings.
    It is assumed optional field does not contain other models (only basic types).
    """
    def _recurse_into(
        current_model: BaseModel, prefix: str, output: List[str]
    ) -> Sequence[str]:
        for name, field in current_model.model_fields.items():
            if field.annotation.__dict__.get("__origin__") is Union:
                field_types = ", ".join(
                    arg.__name__ for arg in field.annotation.__args__
                )
                output.append(
                    f"{prefix}{name} = {getattr(current_model, name)} ({field_types})"
                )
            elif BaseModel in field.annotation.__mro__:
                _recurse_into(
                    getattr(current_model, name), (prefix or "") + f"{name}.", output
                )
            elif field.default is not None:
                output.append(
                    f"{prefix}{name} = "
                    f"{getattr(current_model, name)} "
                    f"({field.annotation.__name__})"
                )
        return output
    return _recurse_into(model, "", [])