MIDI Remote API Direct Access Unexpected ObjectIDs

I see different objects having the same ObjectID (which not always match the Runtime ID). Is that expected?

This is the output of the following example:

page.mOnActivate

controlRoom: 94
mixConsole: 27
trackSelection: 27

controlRoom: objectId=27, name=VST Mixer
mixConsole: objectId=27, name=VST Mixer
trackSelection: objectId=27, name=VST Mixer
var midiremote_api = require('midiremote_api_v1')

var deviceDriver = midiremote_api.makeDeviceDriver(
  'Example',
  'Test',
  'Example Test'
)

var midiInput = deviceDriver.mPorts.makeMidiInput('Example Test Input')
var midiOutput = deviceDriver.mPorts.makeMidiOutput('Example Test Output')

deviceDriver.makeDetectionUnit()
  .detectPortPair(midiInput, midiOutput)
  .expectInputNameContains('Example Test')
  .expectOutputNameContains('Example Test')

var page = deviceDriver.mMapping.makePage('Main')

deviceDriver.mOnActivate = function (activeDevice) {
  console.log('deviceDriver.mOnActivate')
}

deviceDriver.mOnDeactivate = function (activeDevice) {
  console.log('deviceDriver.mOnDeactivate')
}

page.mOnActivate = function (activeDevice, activeMapping) {
  console.log('page.mOnActivate')

  console.log('controlRoom: ' + page.mHostAccess.mControlRoom.getRuntimeID(activeMapping))
  console.log('trackSelection: ' + page.mHostAccess.mTrackSelection.getRuntimeID(activeMapping))
  console.log('mixConsole: ' + page.mHostAccess.mMixConsole.getRuntimeID(activeMapping))

  var controlRoomDirectAccess = page.mHostAccess.makeDirectAccess(page.mHostAccess.mControlRoom)
  controlRoomDirectAccess.activate(activeMapping)
  objectId = controlRoomDirectAccess.getBaseObjectID(activeMapping)
  name = controlRoomDirectAccess.getObjectTitle(activeMapping, objectId)
  console.log('controlRoom: objectId=' + objectId + ', name=' + name)

  var trackSelectionDirectAccess = page.mHostAccess.makeDirectAccess(page.mHostAccess.mTrackSelection)
  trackSelectionDirectAccess.activate(activeMapping)
  var objectId = trackSelectionDirectAccess.getBaseObjectID(activeMapping)
  var name = trackSelectionDirectAccess.getObjectTitle(activeMapping, objectId)
  console.log('trackSelection: objectId=' + objectId + ', name=' + name)

  var mixConsoleDirectAccess = page.mHostAccess.makeDirectAccess(page.mHostAccess.mMixConsole)
  mixConsoleDirectAccess.activate(activeMapping)
  objectId = mixConsoleDirectAccess.getBaseObjectID(activeMapping)
  name = mixConsoleDirectAccess.getObjectTitle(activeMapping, objectId)
  console.log('mixConsole: objectId=' + objectId + ', name=' + name)
}

page.mOnDeactivate = function (activeDevice, activeMapping) {
  console.log('page.mOnDeactivate')
}

I have the latest update for Cubase Pro 15.

Hi,
Get the definitions of the direct access objects out of the mOnActivate function.