11    using callback_fn = std::function<void(
CompoundTag&)>;
 
   15        EventPriority           priority = EventPriority::Normal,
 
   16        std::weak_ptr<mod::Mod> mod      = mod::NativeMod::current()
 
   19      callback(std::move(fn)) {}
 
   23    void call(
Event& event)
 override {
 
   25        event.serialize(data);
 
   27        event.deserialize(data);
 
   30    static std::shared_ptr<DynamicListener> create(
 
   32        EventPriority           priority = EventPriority::Normal,
 
   33        std::weak_ptr<mod::Mod> mod      = mod::NativeMod::current()
 
   35        return std::make_shared<DynamicListener>(std::move(fn), priority, std::move(mod));