Files
Guides/metadata.json
T
Robert Dailey c1b52c317d feat(starr): Add machine-readable conflict declarations for mutually exclusive CFs (#2681)
* feat(conflicts): add machine-readable CF conflict declarations

Add conflicts.json files for Radarr and Sonarr defining
mutually exclusive custom format pairs:

- SDR vs SDR (no WEBDL)
- x265 (HD) vs x265 (no HDR/DV)

Enables tooling to warn users about conflicting combinations.

Includes new JSON schema and metadata schema updates.

* refactor(conflicts): use id-as-key pattern

Restructure conflicts.json files to use trash IDs as object keys instead
of nested properties. This establishes the structural pattern for future
file migrations across the repository.

- Change custom_formats array items from arrays of objects to objects
  with trash ID keys
- Add name (required) and desc (optional) as value fields for each
  conflict entry
- Update schema to use patternProperties with hex regex for key
  validation
- Set minProperties: 2 on conflict groups to ensure at least 2
  conflicting CFs

* docs(contributing): document conflicts.json files

Adds documentation for the new conflicts.json files so contributors know
how to declare mutually exclusive Custom Formats when working with sync
app data.

- Add index entry and file references for conflicts.json
- Document the conflicts.json schema and format
- Explain how sync tools use conflict declarations
2026-04-08 14:11:31 +10:00

24 lines
922 B
JSON

{
"$schema": "metadata.schema.json",
"json_paths": {
"radarr": {
"custom_formats": ["docs/json/radarr/cf"],
"qualities": ["docs/json/radarr/quality-size"],
"naming": ["docs/json/radarr/naming"],
"quality_profiles": ["docs/json/radarr/quality-profiles"],
"custom_format_groups": ["docs/json/radarr/cf-groups"],
"quality_profile_groups": ["docs/json/radarr/quality-profile-groups"],
"conflicts": ["docs/json/radarr/conflicts.json"]
},
"sonarr": {
"custom_formats": ["docs/json/sonarr/cf"],
"qualities": ["docs/json/sonarr/quality-size"],
"naming": ["docs/json/sonarr/naming"],
"quality_profiles": ["docs/json/sonarr/quality-profiles"],
"custom_format_groups": ["docs/json/sonarr/cf-groups"],
"quality_profile_groups": ["docs/json/sonarr/quality-profile-groups"],
"conflicts": ["docs/json/sonarr/conflicts.json"]
}
}
}