Map<String, dynamic> toJson() => { 'type': type.name, 'value': value, 'message': message, if (dependencies.isNotEmpty) 'dependencies': dependencies.map((d) => d.toJson()).toList(), };