code: def collect_conflicts_between(
      context: ValidationContext,
      conflicts: List[Conflict],
      cached_fields_and_fragment_names: Dict,
      compared_fragment_pairs: "PairSet",
      parent_fields_are_mutually_exclusive: bool,
      field_map1: NodeAndDefCollection,
      field_map2: NodeAndDefCollection,
  ) -> None:
      
      # A field map is a keyed collection, where each key represents a response name and
      # the value at that key is a list of all fields which provide that response name.
      # For any response name which appears in both provided field maps, each field from
      # the first field map must be compared to every field in the second field map to
      # find potential conflicts.
      for response_name, fields1 in field_map1.items():
          fields2 = field_map2.get(response_name)
          if fields2:
              for field1 in fields1:
                  for field2 in fields2:
                      conflict = find_conflict(
                          context,
                          cached_fields_and_fragment_names,
                          compared_fragment_pairs,
                          parent_fields_are_mutually_exclusive,
                          response_name,
                          field1,
                          field2,
                      )
                      if conflict:
                          conflicts.append(conflict)
docs: Collect all Conflicts between two collections of fields.
  
      This is similar to, but different from the `collectConflictsWithin` function above.
      This check assumes that `collectConflictsWithin` has already been called on each
      provided collection of fields. This is true because this validator traverses each
      individual selection set.