def make_field_list(node_map):
    """
    Create a flat list of all channels in the take. Format as an Avro schema.
    For example, Hips.la breaks out into Hips_lax, Hips_lay, Hips_laz. Use
    the underscore as the separator because the dot is reserved for
    namespaces in Avro. Also, prefix raw channels with 'RAW' to avoid
    conflicts with case insensitive field names in database schemas (like
    BigQuery).
    """
    field_list = []
    for name in node_map:
        for channel in node_map[name]:
            item = node_map[name][channel]
            dim = item[1] - item[0]

            # Prefix the raw channels to prevent conflicts with the sensor
            # channels.
            if channel in ['A', 'M', 'G']:
                channel = ''.join(['RAW', channel])

            channel_name = '_'.join([name, channel])

            axis_list = []
            if dim == 4:
                axis_list = ['w', 'x', 'y', 'z']
            elif dim == 3:
                axis_list = ['x', 'y', 'z']
            else:
                axis_list = ['']

            for axis in axis_list:
                field_list.append(''.join([channel_name, axis]))

    return field_list