Files

91 lines
4.3 KiB
Markdown
Raw Permalink Normal View History

# ADR 0001 — Licences du code, du contenu et des médias
- **Statut :** accepté
- **Date :** 2026-07-27
- **Session :** 0 — cadre et données
- **Décideur :** le porteur (ORGANISATION KA INTERNATIONALE)
## Contexte
Le pack d'origine parlait de « ressources libres de droit ». L'expression n'a pas
d'existence juridique et masque quatre régimes très différents :
- **Wikimedia Commons** n'héberge que du libre, mais majoritairement du **CC BY-SA**,
qui impose l'attribution nominative **et** le partage à l'identique. Le partage à
l'identique contamine les œuvres dérivées.
- **iNaturalist** publie beaucoup de **CC BY-NC**, incompatible avec toute distribution
commerciale.
- **TRAMIL** (tramil.net) n'accorde aucune licence dans ses mentions légales. Par défaut :
tous droits réservés.
- **CIRAD / INRAE** appliquent des régimes mixtes, majoritairement propriétaires, avec des
usages pédagogiques négociables au cas par cas.
Le projet vise des enfants de 7 à 12 ans dans un cadre scolaire. Une erreur de licence sur
un support diffusé en classe n'est pas rattrapable par un correctif.
## Décision
### Code — AGPL-3.0-or-later
`LICENSE` contient le texte canonique récupéré depuis gnu.org. L'AGPL plutôt que la GPL
parce qu'une version future pourrait exposer une face serveur (export de progression pour
un enseignant, tableau de classe) : l'AGPL couvre l'usage en réseau, la GPL non.
### Contenu rédigé par OKI — CC BY-SA 4.0
Textes, fiches, indices botaniques, module « Pa touché », données structurées. Cohérent
avec Commons, donc réutilisable par le projet lui-même et par les enseignants.
### Médias tiers — licence d'origine conservée, œuvre collective
Chaque média garde sa licence. Le jeu est une **œuvre collective**, pas une œuvre dérivée.
C'est cette qualification qui permet à des médias CC BY-SA et CC BY-NC de coexister dans
un même produit.
### Clause non commerciale — acceptée, et irréversible
Le porteur a tranché en session 0 : le CC BY-NC est accepté pour élargir le fonds
photographique, en échange d'un **engagement non commercial définitif** sur le jeu.
Le code reste réutilisable commercialement sous AGPL une fois séparé des médias.
## Conséquences
### Ce que cette décision interdit, techniquement
1. **Aucun compositing.** Un média sous partage à l'identique ou sous clause non
commerciale ne peut être ni fusionné, ni détouré puis recombiné, ni fondu dans un atlas
de textures partagé avec d'autres médias. C'est ce qui préserve la qualification
d'œuvre collective.
2. **Aucune vente**, aucune version payante, aucune licence à un éditeur tant qu'un seul
média NC est embarqué.
3. **Aucun fichier TRAMIL.** TRAMIL se cite comme source de vérification factuelle, dans
`sources_factuelles`, jamais comme source d'images.
### Ce qui applique la décision
- `npm run validate:data` refuse tout média `composite: true` portant une clause SA ou NC,
et tout média à attribution dont l'auteur est absent.
- `npm run test:porte` prouve que ces refus se produisent réellement.
- `npm run build:credits` régénère `CREDITS.md` depuis les données, avec une section
distincte pour les médias NC. Un fichier de crédits tenu à la main se désynchronise, et
une attribution fausse est une violation.
- Le schéma impose `licence`, `auteur`, `url_fichier` et `url_description` sur chaque média.
### Condition de réexamen
Si le projet devait un jour être distribué commercialement, il faudrait retirer tous les
médias NC et régénérer les crédits. `CREDITS.md` liste ces médias dans une section dédiée
précisément pour rendre cette opération possible. À ce jour, aucun média NC n'est embarqué :
les 39 médias candidats proviennent tous de Commons, sous CC0, domaine public, CC BY ou
CC BY-SA. **L'engagement non commercial n'est donc pas encore consommé** — il ne le sera
qu'au premier média iNaturalist retenu.
## Alternatives écartées
- **Refuser le NC.** Aurait gardé une porte de sortie commerciale, au prix d'un fonds
photographique plus pauvre sur les espèces mal couvertes (zikak, pòm-sitè).
- **Isoler le NC dans un pack séparé retirable par flag.** Meilleur des deux mondes sur le
papier, mais complexifie le pipeline d'assets et le service worker pour une option dont
le porteur a jugé qu'il ne l'exercerait pas.