{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "additionalProperties": false,
    "id": "https://eddn.edcd.io/schemas/shipyard/2#",
    "properties": {
        "$schemaRef": {
            "type": "string"
        },
        "header": {
            "additionalProperties": true,
            "properties": {
                "gatewayTimestamp": {
                    "_format": "date-time",
                    "description": "Timestamp upon receipt at the gateway. If present, this property will be overwritten by the gateway; submitters are not intended to populate this property.",
                    "type": "string"
                },
                "softwareName": {
                    "type": "string"
                },
                "softwareVersion": {
                    "type": "string"
                },
                "uploaderID": {
                    "type": "string"
                }
            },
            "required": [
                "uploaderID",
                "softwareName",
                "softwareVersion"
            ],
            "type": "object"
        },
        "message": {
            "additionalProperties": false,
            "properties": {
                "horizons": {
                    "description": "Whether the sending Cmdr has a Horizons pass.",
                    "type": "boolean"
                },
                "marketId": {
                    "type": "number"
                },
                "ships": {
                    "items": {
                        "description": "Ship symbolic name. i.e. one of: SideWinder, Adder, Anaconda, Asp, Asp_Scout CobraMkIII, CobraMkIV, Cutter, DiamondBack, DiamondBackXL, Eagle, Empire_Courier, Empire_Eagle, Empire_Trader, Federation_Corvette, Federation_Dropship, Federation_Dropship_MkII, Federation_Gunship, FerDeLance, Hauler, Independant_Trader, Orca, Python, Type6, Type7, Type9, Viper, Viper_MkIV, Vulture",
                        "minLength": 1,
                        "type": "string"
                    },
                    "minItems": 1,
                    "type": "array",
                    "_uniqueItems": true
                },
                "stationName": {
                    "minLength": 1,
                    "type": "string"
                },
                "systemName": {
                    "minLength": 1,
                    "type": "string"
                },
                "timestamp": {
                    "_format": "date-time",
                    "type": "string"
                }
            },
            "required": [
                "systemName",
                "stationName",
                "marketId",
                "timestamp",
                "ships"
            ],
            "type": "object"
        }
    },
    "required": [
        "$schemaRef",
        "header",
        "message"
    ],
    "type": "object"
}