ce(eventPredicate);
      }
    },

    findDescendentSlice(targetTitle) {
      if (!this.subSlices) return undefined;

      for (let i = 0; i < this.subSlices.length; i++) {
        if (this.subSlices[i].title === targetTitle) {
          return this.subSlices[i];
        }
        const slice = this.subSlices[i].findDescendentSlice(targetTitle);
        if (slice) return slice;
      }
      return undefined;
    },

    * enumerateAllDescendents() {
      for (const slice of this.subSlices) {
        y