Не могу создать кодек для генератора чанков

Версия Minecraft
1.18.2
Снова здравствуйте

Проблема с созданием кодека (CODEC) в классе. По примеру исходного кода, я делаю это как-то так:

Java:
public static final Codec<FractalChunkGenerator> CODEC = RecordCodecBuilder.create(
        (instance) -> FractalChunkGenerator.commonCodec(instance).and(
            (App)FractalGeneratorSettings.CODEC.fieldOf("settings").forGetter(FractalChunkGenerator::getSettings))
            .apply((Applicative)instance, instance.stable(FractalChunkGenerator::new)));

(класс называется FractalChunkGenerator, в нём есть поле settings и функция getSettings типа FractalGeneratorSettings, в этом типе тоже есть кодек, с ним проблемы те же)

Когда запускаю с этим, выдаёт следующее:

Форматирование (BB-код):
FractalChunkGenerator.java:73: error: incompatible types: cannot infer type-variable(s) A
         .apply((Applicative)instance, instance.stable(FractalChunkGenerator::new)));
                                                      ^
    (argument mismatch; Object is not a functional interface)
  where A,O are type-variables:
    A extends Object declared in method <A>stable(A)
    O extends Object declared in class Instance

И мне не совсем понятно, почему оно не компилируется. В исходниках есть почти такой же пример с FlatLevelSource, который, как и FractalChunkGenerator, наследуется от ChunkGenerator, у которого функциональных интерфейсов в родительских классах вообще нет.
Да, есть интерфейс NoiseBiomeSource, но у него, вроде, нет аннотации @FunctionalInterface, а даже если он и функциональный, то не совсем понятно, почему FractalChunkGenerator перестаёт им быть.

Ещё пробовал так, как указано здесь. Получилось так:

Java:
public static final Codec<FractalChunkGenerator> CODEC = RecordCodecBuilder.create(
        (instance) -> FractalChunkGenerator.commonCodec(instance).and(
            (App)FractalGeneratorSettings.CODEC.fieldOf("settings").forGetter(FractalChunkGenerator::getSettings))
            .apply(instance, FractalChunkGenerator::new));
(Изменилась только последняя строка)

Теперь ошибка такая:

Форматирование (BB-код):
FractalChunkGenerator.java:73: error: no suitable method found for apply(Instance ,FractalChu[...]::new)
         .apply(instance, FractalChunkGenerator::new));
         ^
    method P2.apply(Applicative,BiFunction) is not applicable
      (argument mismatch; invalid constructor reference
          incompatible types: Object cannot be converted to Registry<StructureSet>)
    method P2.apply(Applicative,App) is not applicable
      (argument mismatch; App is not a functional interface
          no abstract method found in interface App)

То есть, в исходниках всё же было правильнее
Можете помочь, пожалуйста?
 
Сверху