def METHOD_NAME(fields: list) -> Iterator[DatasetField]:
    """
    Traverses all levels of fields that exist in a dataset
    returning them for individual evaluation.
    """
    for field in fields:
        yield field
        if isinstance(field, dict):
            if field["fields"]:
                for nested_field in METHOD_NAME(field["fields"]):
                    yield nested_field
        else:
            if field.fields:
                for nested_field in METHOD_NAME(field.fields):
                    yield nested_field