code: private static void verifyInteriorStopsAreUnchanged(
          List<String> originalStopIds,
          List<PatternStop> newStops,
          int firstDifferentIndex,
          int lastDifferentIndex,
          boolean movedRight
      ) {
          //Stops mapped to list of stop IDs simply for easier viewing/comparison with original IDs while debugging with
          // breakpoints.
          List<String> newStopIds = newStops.stream().map(s -> s.stop_id).collect(Collectors.toList());
          // Determine the bounds of the region that should be identical between the two lists.
          int beginRegion = movedRight ? firstDifferentIndex : firstDifferentIndex + 1;
          int endRegion = movedRight ? lastDifferentIndex - 1 : lastDifferentIndex;
          for (int i = beginRegion; i <= endRegion; i++) {
              // Shift index when selecting stop from original list to account for displaced stop.
              int shiftedIndex = movedRight ? i + 1 : i - 1;
              String newStopId = newStopIds.get(i);
              String originalStopId = originalStopIds.get(shiftedIndex);
              if (!newStopId.equals(originalStopId)) {
                  // If stop ID for new stop at the given index does not match the original stop ID, the order of at least
                  // one stop within the changed region has been changed, which is illegal according to the rule enforcing
                  // only a single addition, deletion, or transposition per update.
                  throw new IllegalStateException(RECONCILE_STOPS_ERROR_MSG);
              }
          }
      }
docs: Check the stops in the changed region to ensure they remain in the same order. If not, throw an exception to
  cancel the transaction.