{ "$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" }, "rotation" : { "$ref": "#/definitions/vector4" } } }, "hex_grid" : { "type": "object", "properties": { "layout_type" : { "type": "string" }, "hex_size" : { "type": "number" }, "hex_radius" : { "type": "number" } } }, "entities": { "type": "array", "items": { "name": { "type": "string" }, "model_file": { "type": "string" }, "position": { "$ref": "#/definitions/vector3" }, "rotation": { "$ref": "#/definitions/vector4" }, "scale": { "$ref": "#/definitions/vector3" } } }, "lights": { "type": "array", "items": { "intensity": { "type": "number" }, "color": { "type": "#/definitions/rgb" }, "position": { "$ref": "#/definitions/vector3" } } } } }