@Override
  public <T> void putCopyableUserData(@NotNull Key<T> key, T value) {
    boolean changed = !Objects.equals(value, getCopyableUserData(key));
    super.putCopyableUserData(key, value);
    if (changed) {
      notifyObservers();
    }
  }
@Override
  public <T> void putCopyableUserData(@NotNull Key<T> key, T value)