@override Future<T?> redo() async { if (_undoList.isNotEmpty) { var last = _undoList.removeLast(); return last; } return null; }