{ "$schema": "http://json-schema.org/draft-04/schema#", "definitions": { "vector3": { "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" }, "z": { "type": "number" } }, "required": ["x", "y", "z"] }, "rgb": { "type": "object", "properties": { "r": { "type": "number" }, "g": { "type": "number" }, "b": { "type": "number" } }, "required": ["r", "g", "b"] }, "vector4": { "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" }, "z": { "type": "number" }, "w": { "type": "number" } }, "required": ["x", "y", "z", "w"] } }, "type": "object", "properties": { "camera": { "type": "object", "properties": { "position": { "$ref": "#/definitions/vector3" }, "target": { "$ref": "#/definitions/vector3" }, "world_up": { "$ref": "#/definitions/vector3" } }, "required": ["position", "target", "world_up"] }, "hex_grid" : { "type": "object", "properties": { "position": { "$ref": "#/definitions/vector3" }, "fill_color" : { "type": "number" }, "selected_fill_color" : { "type": "number" }, "hex_line_color" : { "type": "number" }, "hexlib_orientation" : { "type": "string" }, "hex_size" : { "type": "number" }, "grid_type" : { "enum": ["hexagon", "hash_map"] }, "oneOf": [ {"properties": {"hex_radius": { "type": "number" }}, "required": ["hex_radius"]}, {"properties": {"map_file": {"type": "string"}}, "required": ["map_file"]} ] }, "required": [ "position", "fill_color", "selected_fill_color", "hex_line_color", "hexlib_orientation", "hex_size", "grid_type" ] }, "entities": { "type": "array", "items": { "name": { "type": "string" }, "model_file": { "type": "string" }, "position": { "$ref": "#/definitions/vector3" }, "rotation": { "$ref": "#/definitions/vector4" }, "scale": { "$ref": "#/definitions/vector3" }, "grid_pos": { "$ref": "#/definitions/vector3" } }, "additionalItems": false, "required" : ["name", "model_file", "position", "rotation", "scale", "grid_pos"] }, "lights": { "type": "array", "items": { "intensity": { "type": "number" }, "color": { "type": "#/definitions/rgb" }, "position": { "$ref": "#/definitions/vector3" } }, "required" : ["intensity", "color", "position"] } } }