Initialise le catalogue de jeux Skori
Validation du contenu / validate (push) Successful in 34s

- Structure games/<bggId>-<nom>/ : game.json, scoring.json, rules.fr.json
- 7 jeux intégrés à l'app (modèles de score), fiches de règles Azul et
  6 qui prend
- Schémas JSON générés depuis l'app (autocomplétion dans l'éditeur)
- CI : validation avec le validateur de l'app, schémas à jour
- Licence CC BY-SA 4.0, guide de contribution
This commit is contained in:
2026-10-18 21:19:01 +02:00
commit d823c1d0b9
25 changed files with 1128 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
# Contribuer
Chaque ajout ou correction passe par une demande de fusion (pull request),
relue avant publication. Le CI vérifie automatiquement les fichiers.
## Ajouter un jeu
1. Trouvez le jeu sur [BoardGameGeek](https://boardgamegeek.com) et notez son
`bggId` (le nombre dans l'adresse de sa page).
2. Créez le dossier `games/<bggId>-<nom-en-kebab-case>/`, par exemple
`games/9209-les-aventuriers-du-rail/`.
3. Ajoutez `game.json` :
```json
{
"$schema": "../../schemas/game.schema.json",
"schemaVersion": 1,
"bggId": 9209,
"name": "Les Aventuriers du Rail",
"officialRulesUrl": "https://www.daysofwonder.com/…"
}
```
4. Ajoutez `scoring.json`, le modèle de score. Son `id` vaut `bgg-<bggId>`.
Le plus simple : dans l'app, **Jeux → Ajouter un jeu**, créez le modèle,
puis **Exporter le modèle** depuis la fiche du jeu. Inspirez-vous aussi des
jeux existants (catégories, options, cible de fin de partie, équipes…).
5. Facultatif : `rules.fr.json`, la fiche de règles :
```json
{
"$schema": "../../schemas/rules.schema.json",
"schemaVersion": 1,
"locale": "fr",
"summary": "Le jeu en une ou deux phrases.",
"goal": "But du jeu.",
"setup": "Mise en place.",
"turn": "Déroulement d'un tour.",
"end": "Fin de partie.",
"scoring": "Décompte des points.",
"tips": "Conseils."
}
```
`summary`, `goal` et `turn` sont obligatoires. Texte brut, retours à la
ligne autorisés. **Rédigez avec vos propres mots** : pas de copier-coller
du livret de l'éditeur.
## Vérifier avant d'envoyer
Avec un éditeur qui comprend les schémas JSON (VS Code…), la clé `$schema`
donne l'autocomplétion et signale les erreurs au fil de la frappe.
La validation complète (celle du CI) se lance depuis le dépôt de l'app :
```bash
pnpm --filter @skori/server content:validate ../skori-games
```
## Jeux intégrés à l'app
Les dossiers dont `game.json` contient un `slug` (`azul`, `cabo`…)
correspondent aux jeux livrés avec l'app ; leur `scoring.json` garde l'`id`
du jeu intégré. Une correction de leur modèle de score doit aussi être
reportée dans le dépôt de l'app.
## Licence
En contribuant, vous acceptez que votre contribution soit publiée sous
licence [CC BY-SA 4.0](LICENSE).