{ "$schema" : "http://json-schema.org/draft-04/schema#", "id" : "https://eddn.edcd.io/schemas/commodity/3#", "type" : "object", "additionalProperties" : false, "required": [ "$schemaRef", "header", "message" ], "properties": { "$schemaRef": { "type" : "string" }, "header": { "type" : "object", "additionalProperties" : true, "required" : [ "uploaderID", "softwareName", "softwareVersion" ], "properties" : { "uploaderID": { "type" : "string" }, "gameversion": { "type" : "string", "description" : "Fileheader->gameversion, else LoadGame->gameversion, else 'CAPI-market', else ''." }, "gamebuild": { "type" : "string", "description" : "Fileheader->build, else LoadGame->build, else 'CAPI-market', else ''." }, "softwareName": { "type" : "string" }, "softwareVersion": { "type" : "string" }, "gatewayTimestamp": { "type" : "string", "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." } } }, "message": { "type" : "object", "additionalProperties" : false, "required" : [ "systemName", "stationName", "marketId", "timestamp", "commodities" ], "properties" : { "systemName": { "type" : "string", "renamed" : "StarSystem", "minLength" : 1 }, "stationName": { "type" : "string", "renamed" : "StationName", "minLength" : 1 }, "stationType": { "type" : "string", "renamed" : "StationType" }, "carrierDockingAccess": { "type" : "string", "renamed" : "CarrierDockingAccess" }, "marketId": { "type" : "integer", "renamed" : "MarketID" }, "horizons": { "type" : "boolean", "description" : "Whether the sending Cmdr has a Horizons pass." }, "odyssey": { "type" : "boolean", "description" : "Whether the sending Cmdr has an Odyssey expansion." }, "timestamp": { "type" : "string", "format" : "date-time" }, "commodities": { "type" : "array", "description" : "Commodities returned by the Companion API, with illegal commodities omitted", "items" : { "type" : "object", "additionalProperties" : false, "required" : [ "name", "meanPrice", "buyPrice", "stock", "stockBracket", "sellPrice", "demand", "demandBracket" ], "properties" : { "name": { "type" : "string", "renamed" : "Name", "minLength" : 1, "description" : "Symbolic name as returned by the Companion API" }, "meanPrice": { "type" : "integer", "renamed" : "MeanPrice" }, "buyPrice": { "type" : "integer", "renamed" : "BuyPrice", "description" : "Price to buy from the market" }, "stock": { "type" : "integer", "renamed" : "Stock" }, "stockBracket": { "$ref" : "#/definitions/levelType", "renamed" : "StockBracket" }, "sellPrice": { "type" : "integer", "renamed" : "SellPrice", "description" : "Price to sell to the market" }, "demand": { "type" : "integer", "renamed" : "Demand" }, "demandBracket": { "$ref" : "#/definitions/levelType", "renamed" : "DemandBracket" }, "statusFlags": { "type" : "array", "minItems" : 1, "uniqueItems" : true, "items" : { "type" : "string", "minLength" : 1 } }, "Producer": { "$ref" : "#/definitions/disallowed", "description" : "Not present in CAPI data, so removed from Journal-sourced data" }, "Rare" : { "$ref" : "#/definitions/disallowed", "description" : "Not present in CAPI data, so removed from Journal-sourced data" }, "id": { "$ref" : "#/definitions/disallowed", "description" : "Not wanted for historical reasons?" } } } }, "economies": { "type" : "array", "items" : { "type" : "object", "additionalProperties" : false, "required" : [ "name", "proportion" ], "properties" : { "name": { "type" : "string", "minLength" : 1, "description" : "Economy type as returned by the Companion API" }, "proportion": { "type" : "number" } } } }, "prohibited": { "type" : "array", "uniqueItems" : true, "items" : { "type" : "string", "minLength" : 1 } } } } }, "definitions": { "disallowed" : { "not" : { "type": [ "array", "boolean", "integer", "number", "null", "object", "string" ] } }, "levelType": { "enum" : [0, 1, 2, 3, ""], "description" : "Note: A value of \"\" indicates that the commodity is not normally sold/purchased at this station, but is currently temporarily for sale/purchase" } } }