docs: function validateSetData (module, newData) {
      // require valid data
      if (typeof newData !== 'object' || newData === null) {
          throw new Error(`invalid data for ${module.meta.name}`)
      }
      // get data id
      var dataId = stableId(newData)
      // if data has not changed do not set
      if (dataId === module.meta.dataId) {
          return
      }
      // freeze data
      if (module.meta.options.freezeData) {
          deepFreeze(newData)
      }
      // set data id
      module.meta.dataId = dataId
      // log data set
      if (defined(module.meta.options.logClient)) {
          module.meta.options.logClient.log('setData', {
              data: newData,
              dataCreateTime: microTimestamp(),
              dataId: dataId,
              instanceId: instanceId.id,
              moduleName: module.meta.name,
          })
      }
      // return validated data
      return newData
  }