{
    "$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
}
