Must include path; the rest is whatever the plugin needs.
path
@override Map<String, Object?> toJson() => { ...super.toJson(), 'catalogs': [for (var c in catalogs) c.toJson()], };