{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "TCP Send Options",
    "type": "object",
    "properties": {
        "host": {
            "type": "string",
            "ui:title": "Host"
        },
        "port": {
            "type": "integer",
            "ui:title": "Port"
        },
        "bufferEncoding": {
            "type": "string",
            "ui:title": "Buffer Encoding",
            "enum": [
                "ascii",
                "utf8",
                "utf-8",
                "utf16le",
                "ucs2",
                "ucs-2",
                "base64",
                "base64url",
                "latin1",
                "binary",
                "hex"
            ],
            "default": "utf8"
        },
        "makeReadyDoesReset": {
            "type": "boolean",
            "ui:title": "",
            "description": "Whether a makeReady should be treated as a reset of the device. It should be assumed clean, with the queue discarded, and state reapplied from empty",
            "default": false
        },
        "makeReadyCommands": {
            "type": "array",
            "ui:title": "Make Ready Commands",
            "items": {
                "type": "object",
                "title": "TcpSendCommandContent",
                "todo": "should this be pulled in from elsewhere? its a timeline object type too",
                "properties": {
                    "message": {
                        "type": "string",
                        "ui:title": "Message",
                        "default": ""
                    },
                    "temporalPriority": {
                        "type": "integer",
                        "ui:title": "Temporal Priority",
                        "default": 0
                    },
                    "queueId": {
                        "type": "string",
                        "description": "Commands in the same queue will be sent in order (will wait for the previous to finish before sending next",
                        "ui:title": "Send Queue Id"
                    }
                },
                "required": [
                    "message"
                ],
                "additionalProperties": false
            }
        }
    },
    "required": [
        "host",
        "port"
    ],
    "additionalProperties": false
}
