84fbaa1be8
Validation du contenu / validate (push) Successful in 35s
Modele de score a formules : case "A embarque sur le radeau" par joueur, trois modes (partie simple, tournoi solidaires, tournoi solitaire), points calcules selon le nombre de rescapes. Fiche de regles redigee avec nos propres mots. Schema des modeles regenere : il connait le noeud "total" (somme sur tous les joueurs). Ne pas publier avant le deploiement du hub et de l'app qui le connaissent : un hub plus ancien refuserait ce modele. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1227 lines
33 KiB
JSON
1227 lines
33 KiB
JSON
{
|
|
"type": "object",
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string"
|
|
},
|
|
"schemaVersion": {
|
|
"type": "number",
|
|
"enum": [
|
|
2,
|
|
3
|
|
]
|
|
},
|
|
"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": []
|
|
},
|
|
"starter": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rule": {
|
|
"type": "string",
|
|
"enum": [
|
|
"fixed",
|
|
"next",
|
|
"highest",
|
|
"lowest",
|
|
"chosen"
|
|
]
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80,
|
|
"default": "a la main"
|
|
},
|
|
"prompt": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"icon": {
|
|
"type": "string",
|
|
"maxLength": 40
|
|
}
|
|
},
|
|
"required": [
|
|
"rule"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"formula": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nodes": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "input"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"number",
|
|
"boolean",
|
|
"choice"
|
|
],
|
|
"default": "number"
|
|
},
|
|
"min": {
|
|
"type": "integer"
|
|
},
|
|
"max": {
|
|
"type": "integer"
|
|
},
|
|
"choices": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"value": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"value"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"minItems": 1
|
|
},
|
|
"icon": {
|
|
"type": "string",
|
|
"maxLength": 40
|
|
},
|
|
"requiresOption": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"label"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "const"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"value": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"value"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "option"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"optionId": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"optionId"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "op"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"op": {
|
|
"type": "string",
|
|
"enum": [
|
|
"add",
|
|
"sub",
|
|
"mul",
|
|
"div",
|
|
"min",
|
|
"max"
|
|
]
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"minItems": 1,
|
|
"maxItems": 20
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"op",
|
|
"args"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "table"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"steps": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"min": {
|
|
"type": "integer"
|
|
},
|
|
"points": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"min",
|
|
"points"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"minItems": 1,
|
|
"maxItems": 50
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg",
|
|
"steps"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "compare"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"cmp": {
|
|
"type": "string",
|
|
"enum": [
|
|
"gt",
|
|
"ge",
|
|
"lt",
|
|
"le",
|
|
"eq",
|
|
"ne"
|
|
]
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"minItems": 2,
|
|
"maxItems": 2,
|
|
"items": [
|
|
{
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"cmp",
|
|
"args"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "if"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"minItems": 3,
|
|
"maxItems": 3,
|
|
"items": [
|
|
{
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"args"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "rank"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"order": {
|
|
"type": "string",
|
|
"enum": [
|
|
"highest",
|
|
"lowest"
|
|
],
|
|
"default": "highest"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "best"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"order": {
|
|
"type": "string",
|
|
"enum": [
|
|
"highest",
|
|
"lowest"
|
|
],
|
|
"default": "highest"
|
|
},
|
|
"ties": {
|
|
"type": "string",
|
|
"enum": [
|
|
"all",
|
|
"none"
|
|
],
|
|
"default": "all"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "total"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "gauge"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"start": {
|
|
"type": "integer",
|
|
"default": 0
|
|
},
|
|
"min": {
|
|
"type": "integer"
|
|
},
|
|
"max": {
|
|
"type": "integer"
|
|
},
|
|
"show": {
|
|
"type": "boolean"
|
|
},
|
|
"icon": {
|
|
"type": "string",
|
|
"maxLength": 40
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "eliminate"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "lastStanding"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "victory"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "output"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 80
|
|
},
|
|
"arg": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
},
|
|
"category": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"id",
|
|
"arg",
|
|
"category"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"minItems": 1,
|
|
"maxItems": 150
|
|
},
|
|
"layout": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"x": {
|
|
"type": "number"
|
|
},
|
|
"y": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"x",
|
|
"y"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"propertyNames": {
|
|
"minLength": 1,
|
|
"maxLength": 60,
|
|
"pattern": "^[a-z0-9][a-z0-9_-]*$"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"nodes"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"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)"
|
|
}
|