code: protected final <T> T[] updateTransitionStorage(T[] oldStorage,
                                                      IntFunction<T[]> arrayConstructor,
                                                      @Nullable T defaultValue,
                                                      Payload payload) {
          return payload.type.updateStorage(oldStorage, payload, arrayConstructor, (arr, idx) -> arr[idx] = defaultValue);
      }
docs: Return a copy of the provided array with updated memory layout.
  
  @param oldStorage
  the current array
  @param defaultValue
  default value for newly allocated array positions
  @param payload
  the payload object
  
  @return a copy of the provided array with updated memory layout.
  
  @see #updateTransitionStorage(int[], int, Payload)
  @see #updateTransitionStorage(Object[], Object, Payload)