You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
551 lines
15 KiB
551 lines
15 KiB
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"format": {
|
|
"$ref": "#/$defs/__schema0"
|
|
},
|
|
"formatVersion": {
|
|
"$ref": "#/$defs/__schema1"
|
|
},
|
|
"id": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"version": {
|
|
"$ref": "#/$defs/__schema3"
|
|
},
|
|
"engineApiVersion": {
|
|
"$ref": "#/$defs/__schema4"
|
|
},
|
|
"metadata": {
|
|
"$ref": "#/$defs/__schema5"
|
|
},
|
|
"dependencies": {
|
|
"$ref": "#/$defs/__schema8"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "game"
|
|
},
|
|
"classification": {
|
|
"type": "object",
|
|
"properties": {
|
|
"category": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/__schema2"
|
|
}
|
|
},
|
|
"competition": {
|
|
"type": "string",
|
|
"enum": ["individual", "teams", "cooperative", "solo", "open"]
|
|
}
|
|
},
|
|
"required": ["category", "tags", "competition"],
|
|
"additionalProperties": false
|
|
},
|
|
"players": {
|
|
"type": "object",
|
|
"properties": {
|
|
"min": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 64
|
|
},
|
|
"max": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 64
|
|
}
|
|
},
|
|
"required": ["min", "max"],
|
|
"additionalProperties": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hiddenInformation": {
|
|
"type": "boolean"
|
|
},
|
|
"simultaneousActions": {
|
|
"type": "boolean"
|
|
},
|
|
"deadlines": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": ["hiddenInformation", "simultaneousActions", "deadlines"],
|
|
"additionalProperties": false
|
|
},
|
|
"components": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": ["deck", "dice", "wheel", "board", "pieces", "custom"]
|
|
},
|
|
"definition": {
|
|
"$ref": "#/$defs/__schema9"
|
|
},
|
|
"copies": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100
|
|
}
|
|
},
|
|
"required": ["kind", "definition", "copies"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"rules": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entry": {
|
|
"$ref": "#/$defs/__schema7"
|
|
},
|
|
"version": {
|
|
"$ref": "#/$defs/__schema3"
|
|
},
|
|
"stateSchemaVersion": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
},
|
|
"viewSchemaVersion": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
},
|
|
"eventSchemaVersion": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
},
|
|
"schemas": {
|
|
"type": "object",
|
|
"properties": {
|
|
"config": {
|
|
"$ref": "#/$defs/__schema7"
|
|
},
|
|
"data": {
|
|
"$ref": "#/$defs/__schema7"
|
|
},
|
|
"view": {
|
|
"$ref": "#/$defs/__schema7"
|
|
},
|
|
"context": {
|
|
"$ref": "#/$defs/__schema7"
|
|
},
|
|
"event": {
|
|
"$ref": "#/$defs/__schema7"
|
|
},
|
|
"visibleEvent": {
|
|
"$ref": "#/$defs/__schema7"
|
|
}
|
|
},
|
|
"required": [
|
|
"config",
|
|
"data",
|
|
"view",
|
|
"context",
|
|
"event",
|
|
"visibleEvent"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"entry",
|
|
"version",
|
|
"stateSchemaVersion",
|
|
"viewSchemaVersion",
|
|
"eventSchemaVersion",
|
|
"schemas"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"presentation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entry": {
|
|
"$ref": "#/$defs/__schema7"
|
|
},
|
|
"apiVersion": {
|
|
"type": "number",
|
|
"const": 1
|
|
},
|
|
"bundleVersion": {
|
|
"$ref": "#/$defs/__schema3"
|
|
},
|
|
"resources": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": ["image", "atlas", "audio", "font", "graphic"]
|
|
},
|
|
"path": {
|
|
"$ref": "#/$defs/__schema7"
|
|
},
|
|
"load": {
|
|
"type": "string",
|
|
"enum": ["catalog", "board", "phase", "lazy"]
|
|
},
|
|
"phase": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"required": {
|
|
"type": "boolean"
|
|
},
|
|
"altKey": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"width": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
},
|
|
"height": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
},
|
|
"regions": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"x": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 9007199254740991
|
|
},
|
|
"y": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 9007199254740991
|
|
},
|
|
"width": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
},
|
|
"height": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0,
|
|
"maximum": 9007199254740991
|
|
}
|
|
},
|
|
"required": ["x", "y", "width", "height"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"fallback": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "text"
|
|
},
|
|
"key": {
|
|
"$ref": "#/$defs/__schema2"
|
|
}
|
|
},
|
|
"required": ["kind", "key"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "resource"
|
|
},
|
|
"resourceId": {
|
|
"$ref": "#/$defs/__schema2"
|
|
}
|
|
},
|
|
"required": ["kind", "resourceId"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "omit"
|
|
}
|
|
},
|
|
"required": ["kind"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["kind", "path", "load", "required", "fallback"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"bindings": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/$defs/__schema9"
|
|
}
|
|
},
|
|
"catalog": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cover": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"thumbnail": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"icon": {
|
|
"$ref": "#/$defs/__schema2"
|
|
}
|
|
},
|
|
"required": ["cover", "thumbnail", "icon"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"entry",
|
|
"apiVersion",
|
|
"bundleVersion",
|
|
"resources",
|
|
"bindings",
|
|
"catalog"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"format",
|
|
"formatVersion",
|
|
"id",
|
|
"version",
|
|
"engineApiVersion",
|
|
"metadata",
|
|
"dependencies",
|
|
"kind",
|
|
"classification",
|
|
"players",
|
|
"capabilities",
|
|
"components",
|
|
"rules",
|
|
"presentation"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"format": {
|
|
"$ref": "#/$defs/__schema0"
|
|
},
|
|
"formatVersion": {
|
|
"$ref": "#/$defs/__schema1"
|
|
},
|
|
"id": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"version": {
|
|
"$ref": "#/$defs/__schema3"
|
|
},
|
|
"engineApiVersion": {
|
|
"$ref": "#/$defs/__schema4"
|
|
},
|
|
"metadata": {
|
|
"$ref": "#/$defs/__schema5"
|
|
},
|
|
"dependencies": {
|
|
"$ref": "#/$defs/__schema8"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": ["components", "assets"]
|
|
},
|
|
"exports": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/$defs/__schema7"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"format",
|
|
"formatVersion",
|
|
"id",
|
|
"version",
|
|
"engineApiVersion",
|
|
"metadata",
|
|
"dependencies",
|
|
"kind",
|
|
"exports"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
],
|
|
"$defs": {
|
|
"__schema0": {
|
|
"type": "string",
|
|
"const": "juegoland.package"
|
|
},
|
|
"__schema1": {
|
|
"type": "number",
|
|
"const": 1
|
|
},
|
|
"__schema2": {
|
|
"type": "string",
|
|
"pattern": "^[a-z][a-zA-Z0-9.-]{0,79}$"
|
|
},
|
|
"__schema3": {
|
|
"type": "string",
|
|
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
|
|
},
|
|
"__schema4": {
|
|
"type": "number",
|
|
"const": 1
|
|
},
|
|
"__schema5": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 120
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 2000
|
|
},
|
|
"authors": {
|
|
"minItems": 1,
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/__schema6"
|
|
}
|
|
},
|
|
"license": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"defaultLocale": {
|
|
"type": "string",
|
|
"pattern": "^[a-z]{2}(?:-[A-Z]{2})?$"
|
|
},
|
|
"locales": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/$defs/__schema7"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"description",
|
|
"authors",
|
|
"license",
|
|
"defaultLocale",
|
|
"locales"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"__schema6": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"__schema7": {
|
|
"type": "string",
|
|
"pattern": "^[a-zA-Z0-9_-](?:[a-zA-Z0-9_.-]*[a-zA-Z0-9_-])?(?:\\/[a-zA-Z0-9_-](?:[a-zA-Z0-9_.-]*[a-zA-Z0-9_-])?)*$"
|
|
},
|
|
"__schema8": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"version": {
|
|
"$ref": "#/$defs/__schema3"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": ["components", "assets"]
|
|
}
|
|
},
|
|
"required": ["id", "version", "kind"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"__schema9": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"const": "local"
|
|
},
|
|
"path": {
|
|
"$ref": "#/$defs/__schema7"
|
|
}
|
|
},
|
|
"required": ["source", "path"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"const": "dependency"
|
|
},
|
|
"packageId": {
|
|
"$ref": "#/$defs/__schema2"
|
|
},
|
|
"export": {
|
|
"$ref": "#/$defs/__schema2"
|
|
}
|
|
},
|
|
"required": ["source", "packageId", "export"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"$id": "urn:juegoland:package:1"
|
|
}
|