Resolver function to dynamically determine the widget based on node data If returns null, falls back to widget
final Widget? Function(Node<T> node)? widgetResolver;