@override String getId(T widget) { if (widget is Widget) return (widget.key as ValueKey<String>).value; if ( widget is AbstractWidgetState) return widget.extractId(widget); throw Exception("ouch"); }