docs: def project(self, annotation, timeline):
          """Project annotation onto timeline segments
  
          reference     |__A__|     |__B__|
                          |____C____|
  
          timeline    |---|---|---|   |---|
  
          projection  |_A_|_A_|_C_|   |_B_|
                          |_C_|
  
          Parameters
          ----------
          annotation : Annotation
          timeline : Timeline
  
          Returns
          -------
          projection : Annotation
          """
          projection = annotation.empty()
          timeline_ = annotation.get_timeline(copy=False)
          for segment_, segment in timeline_.co_iter(timeline):
              for track_ in annotation.get_tracks(segment_):
                  track = projection.new_track(segment, candidate=track_)
                  projection[segment, track] = annotation[segment_, track_]
          return projection