Map<String, dynamic> toJson() => { 'name': name, 'type': type, 'family': family, 'priority': priority, 'contract': contract, 'methods': [for (final m in methods) m.toJson()], };