Curve Domain: Start is always < end?

I have three questions, related to the same problem.

I have two curves that intersect, potentially more than once.

I know the direction of the curves. I want to trim Curve A from the start of the curve to the first intersection point, and I want to trim Curve B from that same intersection point until the end of the curve.

I am pretty confident I can determine which intersection event is closest to the start of Curve A, just by checking for which event has the lowest value for parameterA. That is, since I believe the domain at the start of a curve is always less than the domain at the end of a curve, then the lowest parameterA would be the intersection event closets to the start of Curve A.

I am unsure about overlaps, however. The documentation says

If the intersection type is overlap, then this will return the start of the overlap region.

But “start” here is ambiguous. Does it mean the point closest to the start of Curve A, or Curve B? Or is parameterA the part of the overlap closest to the start of Curve A, and parameterB closest to the start of curve B, so that in the case of an overlap they would be opposite ends?

Finally, is there a reliable order to the IntersectionEvents return by Intersection.CurveCurve? For example is index [0] always closest to the start of CurveA, or something like that?