""" schema: Observation Message sent by platforms when points of interest are found. """ hits_schema = { "type": "object", "properties": { "latitude": { "type": "number", "format": "float", "description": "Identified x-coordinate of point of interest", "example": 178.2, }, "longitude": { "type": "number", "format": "float", "description": "Identified y-coordinate of point of interest", "example": -10.122, }, "quality_of_point": { "type": "number", "format": "float", "description": "Quality/strength of points from features of" + " interest identified by platform.", # TODO: DEFINE FORMAT. "example": 0.98, }, }, "required": ["latitude", "longitude"], } observation_schema = { "type": "object", "properties": { "message_type": { "type": "string", "description": "Type of message", "example": "observation", }, "platform_ID": { "type": "integer", "description": "ID of platform to sending observations", "example": 2, }, "points_of_interest": { "type": "array", "items": hits_schema, "description": "Points from features of interest identified by" + " platform if any found.", # TODO: DEFINE FORMAT. }, "region_surveyed": { # "type": "null", "nullable": True, "description": "Region surveyed by given platform." + " GEOJSON", # TODO: DEFINE FORMAT. "example": "", }, "additional_data": { "description": "Placeholder field for any additional data", "example": {"sensor_payload": False}, }, }, "required": ["message_type", "platform_ID"], }