protected abstract TypeSerializer<?>[] getNestedSerializers(S outerSerializer);
@Test
    void testCompatibleWithReconfiguredSerializerPrecedence() throws IOException {
        TypeSerializer<?>[] testNestedSerializers = {
            new NestedSerializer(TargetCompatibility.COMPATIBLE_AS_IS),
            new NestedSerializer(TargetCompatibility.COMPATIBLE_WITH_RECONFIGURED_SERIALIZER),
            new NestedSerializer(TargetCompatibility.COMPATIBLE_AS_IS),
        };

        TypeSerializerSchemaCompatibility<String> compatibility =
                snapshotCompositeSerializerAndGetSchemaCompatibilityAfterRestore(
                        testNestedSerializers,
                        testNestedSerializers,
                        OuterSchemaCompatibility.COMPATIBLE_AS_IS);

        assertThat(compatibility.isCompatibleWithReconfiguredSerializer()).isTrue();

        TestCompositeTypeSerializer reconfiguredSerializer =
                (TestCompositeTypeSerializer) compatibility.getReconfiguredSerializer();
        TypeSerializer<?>[] reconfiguredNestedSerializers =
                reconfiguredSerializer.getNestedSerializers();
        // nested serializer at index 1 should strictly be a ReconfiguredNestedSerializer
        // nested serializer at index 0 and 2 is RestoredNestedSerializer after checking
        // compatibility
        assertThat(reconfiguredNestedSerializers[0]).isInstanceOf(RestoredNestedSerializer.class);
        assertThat(reconfiguredNestedSerializers[1])
                .isInstanceOf(ReconfiguredNestedSerializer.class);
        assertThat(reconfiguredNestedSerializers[2]).isInstanceOf(RestoredNestedSerializer.class);
    }