{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "https://github.com/Enfernuz/quik-lua-rpc/json/schema/QluaStructures.scheme.json",
    "title": "Структуры данных QLua",
    "description": "Структуры данных QLua",
    "type": "object",
    "definitions": {
        "DateTimeEntry": {
            "description": "Дата и время",
            "type": "object",
            "properties": {
                "mcs": {
                    "description": "Параметр mcs",
                    "type": "number"
                },
                "ms": {
                    "description": "Параметр ms",
                    "type": "number"
                },
                "sec": {
                    "description": "Параметр sec",
                    "type": "number"
                },
                "min": {
                    "description": "Параметр min",
                    "type": "number"
                },
                "hour": {
                    "description": "Параметр hour",
                    "type": "number"
                },
                "day": {
                    "description": "Параметр day",
                    "type": "number"
                },
                "week_day": {
                    "description": "Параметр week_day",
                    "type": "number"
                },
                "month": {
                    "description": "Параметр month",
                    "type": "number"
                },
                "year": {
                    "description": "Параметр year",
                    "type": "number"
                }
            }
        },
        "NumberAsString": {
            "description": "Строковое представление числа",
            "type": "string",
            "pattern": "^([0-9]*[.])?[0-9]+$|^[\\d.]+(?:e-?\\d+)?$"
        },
        "DatasourceUUID": {
            "description": "Идентификатор источника данных",
            "type": "string",
            "pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
        },
        "Index": {
            "description": "Индекс элемента",
            "type": "integer",
            "minimum": 0
        },
        "DatasourceTime": {
            "description": "Время источника данных",
            "type": "object",
            "properties": {
                "year": {
                    "description": "Параметр year",
                    "type": "number"
                },
                "month": {
                    "description": "Параметр month",
                    "type": "number"
                },
                "day": {
                    "description": "Параметр day",
                    "type": "number"
                },
                "week_day": {
                    "description": "Параметр week_day",
                    "type": "number"
                },
                "hour": {
                    "description": "Параметр hour",
                    "type": "number"
                },
                "min": {
                    "description": "Параметр min",
                    "type": "number"
                },
                "sec": {
                    "description": "Параметр sec",
                    "type": "number"
                },
                "ms": {
                    "description": "Параметр ms",
                    "type": "number"
                },
                "count": {
                    "description": "Параметр count",
                    "type": "number"
                }
            }
        }
    },
    "properties": {
        "DateTimeEntry": {
            "$ref": "#/definitions/DateTimeEntry"
        },
        "NumberAsString": {
            "$ref": "#/definitions/NumberAsString"
        },
        "DatasourceUUID": {
            "$ref": "#/definitions/DatasourceUUID"
        },
        "Index": {
            "$ref": "#/definitions/Index"
        },
        "DatasourceTime": {
            "$ref": "#/definitions/DatasourceTime"
        }
    },
    "required": [
        "DateTimeEntry",
        "NumberAsString",
        "DatasourceUUID",
        "Index",
        "DatasourceTime"
    ]
}