- 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:
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"schemaVersion": {
|
||||
"type": "number",
|
||||
"const": 1
|
||||
},
|
||||
"bggId": {
|
||||
"type": "integer",
|
||||
"exclusiveMinimum": 0
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 60
|
||||
},
|
||||
"slug": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9_-]*$",
|
||||
"maxLength": 60
|
||||
},
|
||||
"officialRulesUrl": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"pattern": "^https\\:\\/\\/"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"bggId",
|
||||
"name"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Jeu Skori (game.json)"
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"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,
|
||||
"minLength": 1
|
||||
},
|
||||
"setup": {
|
||||
"type": "string",
|
||||
"maxLength": 3000
|
||||
},
|
||||
"turn": {
|
||||
"type": "string",
|
||||
"maxLength": 5000,
|
||||
"minLength": 1
|
||||
},
|
||||
"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",
|
||||
"goal",
|
||||
"turn"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Fiche de règles Skori (rules.fr.json)"
|
||||
}
|
||||
@@ -0,0 +1,498 @@
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"schemaVersion": {
|
||||
"type": "number",
|
||||
"const": 2
|
||||
},
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 60,
|
||||
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
||||
},
|
||||
"bggId": {
|
||||
"type": "integer",
|
||||
"exclusiveMinimum": 0
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 60
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"maxLength": 400
|
||||
},
|
||||
"players": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"min": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 30
|
||||
},
|
||||
"max": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 30
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"min",
|
||||
"max"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"winner": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"highest",
|
||||
"lowest"
|
||||
]
|
||||
},
|
||||
"aggregation": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"const": "sum"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"const": "sum_with_reset"
|
||||
},
|
||||
"threshold": {
|
||||
"type": "number"
|
||||
},
|
||||
"resetTo": {
|
||||
"type": "number"
|
||||
},
|
||||
"oncePerPlayer": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type",
|
||||
"threshold",
|
||||
"resetTo",
|
||||
"oncePerPlayer"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
],
|
||||
"default": {
|
||||
"type": "sum"
|
||||
}
|
||||
},
|
||||
"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,
|
||||
"default": {}
|
||||
},
|
||||
"teams": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"rounds": {
|
||||
"type": "integer",
|
||||
"exclusiveMinimum": 0
|
||||
},
|
||||
"list": {
|
||||
"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
|
||||
},
|
||||
"color": {
|
||||
"type": "string",
|
||||
"pattern": "^#[0-9a-fA-F]{6}$"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"label",
|
||||
"color"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"minItems": 2
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"rounds",
|
||||
"list"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"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_-]*$"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"label"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"default": []
|
||||
},
|
||||
"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": []
|
||||
},
|
||||
"icon": {
|
||||
"type": "string",
|
||||
"maxLength": 40
|
||||
},
|
||||
"colors": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"primary": {
|
||||
"type": "string",
|
||||
"pattern": "^#[0-9a-fA-F]{6}$"
|
||||
},
|
||||
"secondary": {
|
||||
"type": "string",
|
||||
"pattern": "^#[0-9a-fA-F]{6}$"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"primary"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"assets": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"logo": {
|
||||
"type": "string"
|
||||
},
|
||||
"banner": {
|
||||
"type": "string"
|
||||
},
|
||||
"rules": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"id",
|
||||
"name",
|
||||
"players",
|
||||
"winner",
|
||||
"colors"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Modèle de score Skori (scoring.json)"
|
||||
}
|
||||
Reference in New Issue
Block a user