@override Node? getNodeByKey(String key) { if (key.isEmpty) { throw ArgumentError('Cannot get node with empty key'); } return _nodes[key]; }