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

{
"$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"
}

Powered by TurnKey Linux.