docs: @Override
      public AbstractConfigValue withFallback(ConfigMergeable mergeable) {
          if (ignoresFallbacks()) {
              return this;
          } else {
              ConfigValue other = ((MergeableValue) mergeable).toFallbackValue();
  
              if (other instanceof Unmergeable) {
                  return mergedWithTheUnmergeable((Unmergeable) other);
              } else if (other instanceof AbstractConfigObject) {
                  return mergedWithObject((AbstractConfigObject) other);
              } else {
                  return mergedWithNonObject((AbstractConfigValue) other);
              }
          }
      }