Parse a resource fragment into a schema field.

    Args:
        info: (Mapping[str->dict]): should contain a "fields" key to be parsed

    Returns:
        (Union[Sequence[:class:`google.cloud.bigquery.schema.SchemaField`],None])
            a list of parsed fields, or ``None`` if no "fields" key found.

def _parse_schema_resource(info):
    """Parse a resource fragment into a schema field.

    Args:
        info: (Mapping[str->dict]): should contain a "fields" key to be parsed

    Returns:
        (Union[Sequence[:class:`google.cloud.bigquery.schema.SchemaField`],None])
            a list of parsed fields, or ``None`` if no "fields" key found.
    """
    if "fields" not in info:
        return ()

    schema = []
    for r_field in info["fields"]:
        name = r_field["name"]
        field_type = r_field["type"]
        mode = r_field.get("mode", "NULLABLE")
        description = r_field.get("description")
        sub_fields = _parse_schema_resource(r_field)
        schema.append(SchemaField(name, field_type, mode, description, sub_fields))
    return schema