{ "type": "object", "properties": { "$schema": { "type": "string" }, "schemaVersion": { "type": "number", "const": 1 }, "bggId": { "type": "integer", "exclusiveMinimum": 0 }, "name": { "type": "string", "minLength": 1, "maxLength": 60 }, "officialRulesUrl": { "type": "string", "format": "uri", "pattern": "^https\\:\\/\\/" }, "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 }, "adds": { "type": "object", "properties": { "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": [] }, "choices": { "type": "array", "items": { "type": "object", "properties": { "optionId": { "type": "string", "minLength": 1, "maxLength": 60, "pattern": "^[a-z0-9][a-z0-9_-]*$" }, "values": { "type": "array", "items": { "type": "object", "properties": { "value": { "type": "string" }, "label": { "type": "string", "minLength": 1, "maxLength": 80 } }, "required": [ "value", "label" ], "additionalProperties": false }, "minItems": 1 } }, "required": [ "optionId", "values" ], "additionalProperties": false }, "default": [] }, "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_-]*$" }, "after": { "type": "string", "minLength": 1, "maxLength": 60, "pattern": "^[a-z0-9][a-z0-9_-]*$" } }, "required": [ "id", "label" ], "additionalProperties": false }, "default": [] }, "players": { "type": "object", "properties": { "min": { "type": "integer", "minimum": 1, "maximum": 30 }, "max": { "type": "integer", "minimum": 1, "maximum": 30 } }, "required": [ "min", "max" ], "additionalProperties": false }, "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 } }, "additionalProperties": false, "default": {} } }, "required": [ "schemaVersion", "bggId", "name" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#", "title": "Extension Skori (expansion.json)" }