public static Distance GetDistanceFor(this Road road, MovementDirection direction) => road.GetStartingPointFor(direction).DistanceToOppositeLocation;
public static RoadPoint GetArrivalPointFor(this Road road, MovementDirection direction) => road.GetStartingPointFor(direction.Flip());