default @NotNull <T> T sharedData(@NotNull Key<T> key, @NotNull Supplier<? extends T> supplier) {
    return supplier.get();
  }
default @NotNull <T> T sharedData(@NotNull Key<T> key, @NotNull Supplier<? extends T> supplier)