> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ss14.art/llms.txt
> Use this file to discover all available pages before exploring further.

# Robust Generic Attribution

Стандарт **RGA** (Robust Generic Attribution) предназначен для гибкого, открытого и читаемого способа {/*Вставьте больше маркетингового шума*/} определения различных метаданных, таких как лицензирование и атрибуция, для произвольного набора файлов различных типов, например звуковых эффектов или прототипов. Файл RGA содержит метаданные для всех файлов в той же директории, что и файл RGA (не включая поддиректории). Записи в файле RGA содержат определённые метаданные, такие как автор файла(ов) или описание любых внесённых изменений (в соответствии с требованиями многих лицензий Creative Commons).

RGA — это YAML-файл с именем `attributions.yml`, содержащий произвольное количество записей, определённых ниже.

Обычно при добавлении новых файлов добавляется новая запись, так как она, скорее всего, не будет содержать те же метаданные, что и существующие. Однако можно добавить файлы в существующую запись, если метаданные идентичны.

## YAML

Файл RGA должен называться `attributions.yml`. Все значения в записях заключаются в двойные кавычки (`""`).

YAML содержит произвольное количество записей, охватывающих все файлы в той же директории, что и файл RGA. Запись определяется следующим образом:

| Ключ        | Значение                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `files`     | Массив имён файлов (с расширениями), к которым применяется эта запись. Порядок имён файлов произвольный. Поддерживается wildcard-глоб `*` (например, `*.ogg` обозначает все OGG-файлы в директории).                                                                                                                                                                                                                                                                                                                                         |
| `copyright` | Держатель авторских прав и другая соответствующая информация. Любое раскрытие изменений для соблюдения определённых лицензий также должно быть указано в этом поле.                                                                                                                                                                                                                                                                                                                                                                          |
| `license`   | Действительный [SPDX License Identifier](https://spdx.org/licenses/), применяемый ко всем файлам в записи. Если лицензия не имеет действительного SPDX-идентификатора, можно использовать `Custom`, но в поле `copyright` должна быть указана ссылка на лицензию.                                                                                                                                                                                                                                                                            |
| `source`    | Действительный URL, указывающий на место, откуда можно загрузить файл. Если вы являетесь создателем работы и у вас нет альтернативного места загрузки (например, bandcamp), укажите ссылку на pull request, который добавил файл в игру. Если это производная работа, это должно быть указано в поле copyright. Если файл был лишь слегка изменён, просто укажите ссылку на оригинальный файл. Если файл был сильно изменён, укажите ссылку на изменённую версию, но также предоставьте ссылки на любые оригинальные файлы в поле copyright. |

### Пример YAML

```yaml theme={null}
- 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 должно быть возможно без специальных инструментов. Это означает отсутствие бинарных метаданных.
* Оно должно легко поддаваться сравнению (diff) на GitHub.
* Оно не должно слишком сильно раздувать историю Git при внесении изменений (предотвращать большие перезаписи файлов).
