   func clearProperty(_ key: String)
   func callAction(key: String)
   func compareTo(_ data: FObject?) -> Int
+  func onDetach(_ sub: Subscription)
   init(_ args: [String:Any?])
 }
 

  }

  deinit {
    detachListeners(listeners: listeners)
  }
}

  public func getSlot(key: String) -> Slot? { return nil }
  public func hasOwnProperty(_ key: String) -> Bool { return false }
  public func clearProperty(_ key: String) {}

  public func onDetach(_ sub: Subscription) {
    _ = self.sub(topics: ["detach"]) { (_, _) in
      sub.detach()
    }
  }

  public func sub(
    topics: [String] = [],
