@override Map<String, dynamic> toJson() => <String, Object?>{ 'type': type, 'root': root?.toJson(), };