{ "$schema": "https://json-schema.org/draft/2020-12/schema", "oneOf": [ { "type": "object", "properties": { "kind": { "type": "string", "const": "deck" }, "schemaVersion": { "type": "number", "const": 1 }, "cards": { "minItems": 1, "type": "array", "items": { "$ref": "#/$defs/__schema0" } } }, "required": ["kind", "schemaVersion", "cards"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "dice" }, "schemaVersion": { "type": "number", "const": 1 }, "dice": { "minItems": 1, "type": "array", "items": { "$ref": "#/$defs/__schema4" } } }, "required": ["kind", "schemaVersion", "dice"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "wheel" }, "schemaVersion": { "type": "number", "const": 1 }, "sectors": { "minItems": 1, "type": "array", "items": { "$ref": "#/$defs/__schema6" } } }, "required": ["kind", "schemaVersion", "sectors"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "board" }, "schemaVersion": { "type": "number", "const": 1 }, "layout": { "oneOf": [ { "type": "object", "properties": { "kind": { "type": "string", "const": "grid" }, "rows": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "columns": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": ["kind", "rows", "columns"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "graph" }, "cells": { "minItems": 1, "type": "array", "items": { "$ref": "#/$defs/__schema7" } } }, "required": ["kind", "cells"], "additionalProperties": false } ] } }, "required": ["kind", "schemaVersion", "layout"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "pieces" }, "schemaVersion": { "type": "number", "const": 1 }, "definitions": { "minItems": 1, "type": "array", "items": { "$ref": "#/$defs/__schema8" } } }, "required": ["kind", "schemaVersion", "definitions"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "custom" }, "schemaVersion": { "type": "number", "const": 1 }, "typeId": { "$ref": "#/$defs/__schema1" }, "data": { "$ref": "#/$defs/__schema2" } }, "required": ["kind", "schemaVersion", "typeId", "data"], "additionalProperties": false } ], "$defs": { "__schema0": { "type": "object", "properties": { "id": { "$ref": "#/$defs/__schema1" }, "suit": { "$ref": "#/$defs/__schema1" }, "rank": { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, "attributes": { "$ref": "#/$defs/__schema2" } }, "required": ["id", "suit", "rank", "attributes"], "additionalProperties": false }, "__schema1": { "type": "string", "pattern": "^[a-z][a-zA-Z0-9.-]{0,79}$" }, "__schema2": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "$ref": "#/$defs/__schema3" } }, "__schema3": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "array", "items": { "$ref": "#/$defs/__schema3" } }, { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "$ref": "#/$defs/__schema3" } } ] }, "__schema4": { "type": "object", "properties": { "id": { "$ref": "#/$defs/__schema1" }, "faces": { "minItems": 2, "type": "array", "items": { "$ref": "#/$defs/__schema5" } } }, "required": ["id", "faces"], "additionalProperties": false }, "__schema5": { "type": "object", "properties": { "id": { "$ref": "#/$defs/__schema1" }, "value": { "$ref": "#/$defs/__schema3" }, "weight": { "type": "integer", "exclusiveMinimum": 0, "maximum": 1000000 } }, "required": ["id", "value", "weight"], "additionalProperties": false }, "__schema6": { "type": "object", "properties": { "id": { "$ref": "#/$defs/__schema1" }, "weight": { "type": "integer", "exclusiveMinimum": 0, "maximum": 1000000 } }, "required": ["id", "weight"], "additionalProperties": false }, "__schema7": { "type": "object", "properties": { "id": { "$ref": "#/$defs/__schema1" }, "neighbors": { "type": "array", "items": { "$ref": "#/$defs/__schema1" } } }, "required": ["id", "neighbors"], "additionalProperties": false }, "__schema8": { "type": "object", "properties": { "id": { "$ref": "#/$defs/__schema1" }, "count": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "attributes": { "$ref": "#/$defs/__schema2" } }, "required": ["id", "count", "attributes"], "additionalProperties": false } }, "$id": "urn:juegoland:component:1" }