Robust Generic Attribution
Стандарт RGA (Robust Generic Attribution) задуман как гибкий, открытый и читаемый способ определять различные метаданные, такие как лицензирование и атрибуция, для произвольного набора файлов многих типов, например звуковых эффектов или прототипов. Файл RGA содержит метаданные для всех файлов в том же каталоге, что и сам файл RGA (не включая подкаталоги). Записи в файле RGA содержат конкретные метаданные, такие как автор файла(ов) или описание любых внесённых в них изменений (в соответствии со многими лицензиями Creative Commons).
RGA — это файл YAML с именем attributions.yml, содержащий произвольное число записей, определённых ниже.
Как правило, при добавлении новых файлов добавляется новая запись, так как она, вероятно, не будет содержать тех же метаданных, что и существующие записи. Однако можно добавить файлы к существующей записи, если метаданные в остальном идентичны.
YAML
Файл RGA должен называться attributions.yml. Все значения внутри записей заключаются в двойные кавычки ("").
YAML содержит произвольное число записей, охватывающих все файлы в том же каталоге, что и файл RGA. Запись определяется следующим образом:
| Ключ | Значение |
|---|---|
files | Массив имён файлов (с расширениями), к которым применяется эта запись. Порядок имён файлов произвольный. Поддерживается подстановочный знак * (например, *.ogg обозначает все файлы OGG в каталоге). |
copyright | Правообладатель и другая соответствующая информация. Любое раскрытие изменений для соблюдения определённых лицензий также должно указываться в этом поле. |
license | Действительный идентификатор лицензии SPDX, применяемый ко всем файлам в записи. Если у лицензии нет действительного идентификатора SPDX, можно использовать Custom, но ссылку на лицензию следует указать в поле copyright. |
source | Действительный URL, указывающий на место, откуда можно скачать файл. Если вы автор работы и у вас нет альтернативного места для скачивания (например, bandcamp), укажите ссылку на pull request, добавивший файл в игру. Если это производная работа, это следует упомянуть в поле copyright. Если файл был лишь слегка изменён, просто дайте ссылку на оригинальный файл. Если файл был сильно изменён, дайте ссылку на изменённую версию, но укажите ссылки на любые оригинальные файлы в поле copyright. |
Пример YAML
- files: ["thunderdome.ogg"]
license: "CC-BY-NC-SA-3.0"
copyright: "-Sector11 by MashedByMachines. Converted from MP3 to OGG."
source: "https://www.newgrounds.com/audio/listen/312622"
- files: ["endless_space.ogg"]
license: "CC-BY-3.0"
copyright: "Endless Space by SolusLunes. Converted from MP3 to OGG."
source: "https://www.newgrounds.com/audio/listen/67583"
Цели дизайна
- Редактирование RGA должно быть возможным без специальных инструментов. Это означает отсутствие бинарных метаданных.
- Оно должно легко диффиться на GitHub.
- Оно не должно слишком раздувать историю Git при внесении изменений (предотвращать крупные перезаписи файлов).