function markActiveMetadataBufferViews(propertyTableJson, bufferViewHeaders) {
  const properties = propertyTableJson.properties;
  let header;
  for (const key in properties) {
    if (properties.hasOwnProperty(key)) {
      const metadataHeader = properties[key];

      // An older spec used bufferView
      const valuesBufferView =
        metadataHeader.values ?? metadataHeader.bufferView;
      header = bufferViewHeaders[valuesBufferView];
      header.isActive = true;
      header.bufferHeader.isActive = true;

      // An older spec used stringOffsetBufferView
      const stringOffsetBufferView =
        metadataHeader.stringOffsets ?? metadataHeader.stringOffsetBufferView;
      if (defined(stringOffsetBufferView)) {
        header = bufferViewHeaders[stringOffsetBufferView];
        header.isActive = true;
        header.bufferHeader.isActive = true;
      }

      // an older spec used arrayOffsetBufferView
      const arrayOffsetBufferView =
        metadataHeader.arrayOffsets ?? metadataHeader.arrayOffsetBufferView;
      if (defined(arrayOffsetBufferView)) {
        header = bufferViewHeaders[arrayOffsetBufferView];
        header.isActive = true;
        header.bufferHeader.isActive = true;
      }
    }
  }
}
For handling metadata, look over the tile and content metadata buffers
<p>
This always loads all of the metadata immediately. Future iterations may
allow filtering this to avoid downloading unneeded buffers.
</p>

@param {object} propertyTableJson The property table JSON for either a tile or some content
@param {BufferViewHeader[]} bufferViewHeaders The preprocessed buffer view headers
@private