def filter_annotations(annotations):
    """Make sure annotations are in order and non-overlapping
    
    Args:
        annotations (list(dict))
    
    Returns:
       (list(dict)): a subset of the provided annotations
    """
    annotations = sorted(annotations, key=lambda x: (x["start_offset"], -x["end_offset"]))
    filtered_ann = []
    left_idx = 0
    for ann in annotations:
        if ann["start_offset"] >= left_idx:
            filtered_ann.append(ann)
            left_idx = ann["end_offset"]
    return filtered_ann