Ajoute les extensions et Harmonies : Crescendo
Validation du contenu / validate (push) Successful in 43s

- Format expansions/<bggId>-<nom>/ (expansion.json, rules.fr.json),
  schémas expansion et expansion-rules, guide de contribution
- Harmonies : choix de la face des plateaux personnels (A/B), module
  Esprits de la nature renommé
- Crescendo (472690) : modules Sanctuaires et Murmures, faces C et D,
  fiche de règles résumée

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-19 11:31:47 +02:00
parent d823c1d0b9
commit 228a1e4afb
7 changed files with 593 additions and 1 deletions
+60
View File
@@ -0,0 +1,60 @@
{
"type": "object",
"properties": {
"$schema": {
"type": "string"
},
"schemaVersion": {
"type": "number",
"const": 1
},
"locale": {
"type": "string",
"enum": [
"fr"
],
"default": "fr"
},
"summary": {
"type": "string",
"maxLength": 300,
"minLength": 1
},
"goal": {
"type": "string",
"maxLength": 1000
},
"setup": {
"type": "string",
"maxLength": 3000
},
"turn": {
"type": "string",
"maxLength": 5000
},
"end": {
"type": "string",
"maxLength": 2000
},
"scoring": {
"type": "string",
"maxLength": 3000
},
"tips": {
"type": "string",
"maxLength": 2000
},
"officialRulesUrl": {
"type": "string",
"format": "uri",
"pattern": "^https\\:\\/\\/"
}
},
"required": [
"schemaVersion",
"summary"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Fiche de règles d'une extension (rules.fr.json)"
}
+412
View File
@@ -0,0 +1,412 @@
{
"type": "object",
"properties": {
"$schema": {
"type": "string"
},
"schemaVersion": {
"type": "number",
"const": 1
},
"bggId": {
"type": "integer",
"exclusiveMinimum": 0
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"officialRulesUrl": {
"type": "string",
"format": "uri",
"pattern": "^https\\:\\/\\/"
},
"adds": {
"type": "object",
"properties": {
"options": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "boolean"
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"default": {
"type": "boolean"
},
"visibleWhen": {
"type": "object",
"properties": {
"optionId": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"equals": {
"type": [
"boolean",
"number",
"string"
]
}
},
"required": [
"optionId",
"equals"
],
"additionalProperties": false
}
},
"required": [
"type",
"id",
"label",
"default"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "number"
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"default": {
"type": "number"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"visibleWhen": {
"type": "object",
"properties": {
"optionId": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"equals": {
"type": [
"boolean",
"number",
"string"
]
}
},
"required": [
"optionId",
"equals"
],
"additionalProperties": false
}
},
"required": [
"type",
"id",
"label",
"default"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "select"
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"default": {
"type": "string"
},
"choices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
},
"minItems": 1
},
"visibleWhen": {
"type": "object",
"properties": {
"optionId": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"equals": {
"type": [
"boolean",
"number",
"string"
]
}
},
"required": [
"optionId",
"equals"
],
"additionalProperties": false
}
},
"required": [
"type",
"id",
"label",
"default",
"choices"
],
"additionalProperties": false
}
]
},
"default": []
},
"choices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"optionId": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"values": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
},
"minItems": 1
}
},
"required": [
"optionId",
"values"
],
"additionalProperties": false
},
"default": []
},
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"icon": {
"type": "string",
"maxLength": 40
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"requiresOption": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"after": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
}
},
"required": [
"id",
"label"
],
"additionalProperties": false
},
"default": []
},
"players": {
"type": "object",
"properties": {
"min": {
"type": "integer",
"minimum": 1,
"maximum": 30
},
"max": {
"type": "integer",
"minimum": 1,
"maximum": 30
}
},
"required": [
"min",
"max"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"target": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "fixed"
},
"value": {
"type": "number"
}
},
"required": [
"type",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "option"
},
"optionId": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
},
"customValue": {
"type": "string"
},
"customOptionId": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[a-z0-9][a-z0-9_-]*$"
}
},
"required": [
"type",
"optionId"
],
"additionalProperties": false
}
]
},
"targetCondition": {
"type": "string",
"enum": [
"reaches",
"exceeds"
],
"default": "reaches"
},
"rounds": {
"type": "integer",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"default": {}
}
},
"required": [
"schemaVersion",
"bggId",
"name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Extension Skori (expansion.json)"
}