code: function (prop, val) {
                  // Add exclusions for protected properties - can't use hasOwnProperty or use an allow list as that would exclude new properties
                  var excluded = [
                      'version', 'debug', 'msg', 'ctrlMsg', 'sentMsg', 'msgsSent', 'msgsSentCtrl', 'msgsReceived',
                      'msgsCtrl', 'ioConnected', 'ioChannels', 'retryMs', 'retryFactor', 'timerid', 'ioNamespace',
                      'ioPath', 'ioTransport', 'events', 'autoSendReady',
                      // Ensure no clashes with internal and external method names
                      'set', 'get', 'send', 'sendCtrl', 'onChange', 'socket', 'checkConnect', 'emit', 'uiReturn',
                      'newScript', 'newStyle', 'uiDebug', 'me', 'self', 'setIOnamespace'
                  ]
                  if (excluded.indexOf(prop) !== -1) {
                      self.uiDebug('warn', 'uibuilderfe:uibuilder:set: "' + prop + '" is in list of excluded properties, not set')
                      return
                  }
  
                  // Set & Trigger this prop's event callbacks (listeners)
                  self.set(prop, val)
              }
docs: Function to set uibuilder properties to a new value. Also triggers any event listeners.
  This version is for external use and disallows certain properties to be set
  Example: uibuilder.set('foo', {name:'uibuilder', data:42}); uibuilder.set('oldMsg', uibuilder.get('msg'));
  @param {string} prop
  @param {*} val