public CustomFieldMappings mergeWith(final CustomFieldMapping changedMapping) {
        final Set<CustomFieldMapping> modifiedMappings = new HashSet<>(this);
        modifiedMappings.removeIf(m -> changedMapping.fieldName().equals(m.fieldName()));
        modifiedMappings.add(changedMapping);
        return new CustomFieldMappings(modifiedMappings);
    }
@Test
    void testMappingsMerging() {
        CustomFieldMappings originalMappings = new CustomFieldMappings(List.of(
                new CustomFieldMapping("not-overriden", "string"),
                new CustomFieldMapping("overriden", "string")
        ));

        CustomFieldMappings overrides = new CustomFieldMappings(List.of(
                new CustomFieldMapping("overriden", "long"),
                new CustomFieldMapping("new", "ip")
        ));

        CustomFieldMappings expected = new CustomFieldMappings(List.of(
                new CustomFieldMapping("not-overriden", "string"),
                new CustomFieldMapping("overriden", "long"),
                new CustomFieldMapping("new", "ip")
        ));

        assertEquals(expected, originalMappings.mergeWith(overrides));
    }