set topic(topicName) {
    __privateSet(this, _topic, topicName);
    if (__privateGet(this, _topicCb)) this.uibuilder.cancelTopic(topicName, __privateGet(this, _topicCb));
    if (!topicName) return;
    __privateSet(this, _topicCb, this.uibuilder.onTopic(topicName, this._topicChange.bind(this)));
  }
Set the uibuilder msg topic to watch. We could use `uibuilder:msg:topic:${msg.topic}` event instead