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.

325 lines
7.2 KiB

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

Powered by TurnKey Linux.