anchor.diff:    /// This defaults to true.
     final bool opaque;
   
  -  /// The widget below this widget in the tree.
  -  ///
  -  /// {@macro flutter.widgets.ProxyWidget.child}
  -  final Widget? child;
  -
  -  @override
  -  State<MouseRegion> createState() => _MouseRegionState();
  +  @override
  +  RenderMouseRegion createRenderObject(BuildContext context) {
  +    return RenderMouseRegion(
  +      onEnter: onEnter,
  +      onHover: onHover,
  +      onExit: onExit,
  +      cursor: cursor,
  +      opaque: opaque,
  +    );
  +  }
  +
  +  @override
  +  void updateRenderObject(BuildContext context, RenderMouseRegion renderObject) {
  +    renderObject
  +      ..onEnter = onEnter
  +      ..onHover = onHover
  +      ..onExit = onExit
  +      ..cursor = cursor
  +      ..opaque = opaque;
  +  }
   
     @override
     void debugFillProperties(DiagnosticPropertiesBuilder properties) {
  
positive.code:     properties.add(IterableProperty<String>('listeners', listeners, ifEmpty: '<none>'));
      properties.add(DiagnosticsProperty<MouseCursor>('cursor', cursor, defaultValue: null));
      properties.add(DiagnosticsProperty<bool>('opaque', opaque, defaultValue: true));
    }
  }
  
  class _MouseRegionState extends State<MouseRegion> {
    void handleExit(PointerExitEvent event) {
      if (widget.onExit != null && mounted)
        widget.onExit!(event);
    }
  
    PointerExitEventListener? getHandleExit() {
      return widget.onExit == null ? null : handleExit;
    }
  
    @override
    Widget build(BuildContext context) {
      return _RawMouseRegion(this);
    }
  }
  
  class _RawMouseRegion extends SingleChildRenderObjectWidget {
    _RawMouseRegion(this.owner) : super(child: owner.widget.child);
  
    final _MouseRegionState owner;
  
    @override
    RenderMouseRegion createRenderObject(BuildContext context) {
      final MouseRegion widget = owner.widget;
      return RenderMouseRegion(
        onEnter: widget.onEnter,
        onHover: widget.onHover,
        onExit: owner.getHandleExit(),
        cursor: widget.cursor,
        opaque: widget.opaque,
      );
    }
  
    @override
    void updateRenderObject(BuildContext context, RenderMouseRegion renderObject) {
      final MouseRegion widget = owner.widget;
      renderObject
        ..onEnter = widget.onEnter
        ..onHover = widget.onHover
        ..onExit = owner.getHandleExit()
        ..cursor = widget.cursor
        ..opaque = widget.opaque;
    }
  }
  
  
negative.code:     this.onHover,
      this.cursor = MouseCursor.defer,
      this.opaque = true,
      Widget? child,
    }) : assert(cursor != null),
         assert(opaque != null),
         super(key: key, child: child);
  
    /// Triggered when a mouse pointer has entered this widget.
    ///
  