docs: private static void navigateContextToNextPortableTokenFromPortableArrayCell(
              PortableNavigatorContext ctx, PortablePathCursor path, int index) throws IOException {
          BufferObjectDataInput in = ctx.getIn();
  
          // find the array field position that's stored in the fieldDefinition int the context and navigate to it
          int pos = getStreamPositionOfTheField(ctx);
          in.position(pos);
  
          // read array length and ignore
          in.readInt();
  
          // read factory and class ID and validate if it's the same as expected in the fieldDefinition
          int factoryId = in.readInt();
          int classId = in.readInt();
          validateFactoryAndClass(ctx.getCurrentFieldDefinition(), factoryId, classId, path.path());
  
          // calculate the offset of the cell given by the index
          final int cellOffset = in.position() + index * Bits.INT_SIZE_IN_BYTES;
          in.position(cellOffset);
  
          // read the position of the portable addressed in this array cell (array contains portable position only)
          int portablePosition = in.readInt();
  
          // navigate to portable position and read it's version
          in.position(portablePosition);
          int versionId = in.readInt();
  
          // initialise context with the given portable field for further navigation
          ctx.advanceContextToNextPortableToken(factoryId, classId, versionId);
      }