Scenarios

Defines object schemas for scenarios.

Scenario

pydantic model spacenet.schemas.Scenario[source]

A scenario describing a space mission campaign.

Show JSON schema
{
   "title": "Scenario",
   "description": "A scenario describing a space mission campaign.",
   "type": "object",
   "properties": {
      "name": {
         "title": "Name",
         "description": "Scenario name",
         "type": "string"
      },
      "createdBy": {
         "title": "CreatedBy",
         "description": "Scenario author",
         "type": "string"
      },
      "description": {
         "title": "Description",
         "description": "Short description",
         "type": "string"
      },
      "startDate": {
         "title": "Start Date",
         "description": "Time of scenario start",
         "type": "string",
         "format": "date-time"
      },
      "scenarioType": {
         "title": "Type of Scenario",
         "description": "Scenario type",
         "allOf": [
            {
               "$ref": "#/definitions/ScenarioType"
            }
         ]
      },
      "network": {
         "title": "Network",
         "description": "Valid locations (nodes and edges)",
         "default": {
            "nodes": [],
            "edges": []
         },
         "allOf": [
            {
               "$ref": "#/definitions/Network"
            }
         ]
      },
      "missionList": {
         "title": "Mission List",
         "description": "List of missions",
         "default": [],
         "type": "array",
         "items": {
            "$ref": "#/definitions/Mission"
         }
      },
      "elementTemplates": {
         "title": "Element List",
         "description": "List of element templates",
         "default": [],
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "$ref": "#/definitions/Element"
               },
               {
                  "$ref": "#/definitions/ResourceContainer"
               },
               {
                  "$ref": "#/definitions/ElementCarrier"
               },
               {
                  "$ref": "#/definitions/SurfaceVehicle"
               },
               {
                  "$ref": "#/definitions/PropulsiveVehicle"
               },
               {
                  "$ref": "#/definitions/HumanAgent"
               },
               {
                  "$ref": "#/definitions/RoboticAgent"
               }
            ]
         }
      },
      "instantiatedElements": {
         "title": "Instantiated Elements",
         "description": "List of instantiated elements",
         "default": [],
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "$ref": "#/definitions/InstElement"
               },
               {
                  "$ref": "#/definitions/InstResourceContainer"
               },
               {
                  "$ref": "#/definitions/InstElementCarrier"
               },
               {
                  "$ref": "#/definitions/InstPropulsiveVehicle"
               },
               {
                  "$ref": "#/definitions/InstSurfaceVehicle"
               },
               {
                  "$ref": "#/definitions/InstHumanAgent"
               },
               {
                  "$ref": "#/definitions/InstRoboticAgent"
               }
            ]
         }
      },
      "demandModels": {
         "title": "Demand Models",
         "description": "List of demand model templates",
         "default": [],
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "$ref": "#/definitions/TimedImpulseDemandModel"
               },
               {
                  "$ref": "#/definitions/RatedDemandModel"
               },
               {
                  "$ref": "#/definitions/CrewConsumablesDemandModel"
               },
               {
                  "$ref": "#/definitions/SparingByMassDemandModel"
               }
            ]
         }
      },
      "resourceList": {
         "title": "Resource List",
         "description": "List of resources",
         "default": [],
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "$ref": "#/definitions/ContinuousResource"
               },
               {
                  "$ref": "#/definitions/DiscreteResource"
               }
            ]
         }
      },
      "manifest": {
         "title": "Manifest",
         "default": {},
         "allOf": [
            {
               "$ref": "#/definitions/Manifest"
            }
         ]
      },
      "configuration": {
         "title": "Configuration",
         "default": {
            "time_precision": 0.05,
            "demand_precision": 0.01,
            "mass_precision": 0.01,
            "volume_precision": 1e-06,
            "volume_constrained": false,
            "item_discretization": "None",
            "item_aggregation": 0.0,
            "environment_constrained": false,
            "scavenge_spares": false,
            "detailed_eva": true,
            "detailed_exploration": true,
            "generic_packing_factor_gas": 1.0,
            "generic_packing_factor_liquid": 0.5,
            "generic_packing_factor_pressurized": 0.2,
            "generic_packing_factor_unpressurized": 0.6,
            "small_gas_tank_mass": 10.8,
            "small_gas_tank_volume": 0.275,
            "small_gas_tank_max_mass": 10.0,
            "small_gas_t_tank_max_volume": 0.275,
            "large_gas_tank_mass": 108.0,
            "large_gas_tank_volume": 2.75,
            "large_gas_tank_max_mass": 100.0,
            "large_gas_tank_max_volume": 2.75,
            "small_liquid_t_tank_mass": 11.4567,
            "small_liquid_tank_volume": 0.0249,
            "small_liquid_tank_max_mass": 24.9333,
            "small_liquid_tank_max_volume": 0.0249,
            "large_liquid_tank_mass": 34.37,
            "large_liquid_tank_volume": 0.0748,
            "large_liquid_tank_max_mass": 74.8,
            "large_liquid_tank_max_volume": 0.0748,
            "cargo_transfer_bag_mass": 0.83,
            "cargo_transfer_bag_volume": 0.053,
            "cargo_transfer_bag_max_mass": 26.8,
            "cargo_transfer_bag_max_volume": 0.049
         },
         "allOf": [
            {
               "$ref": "#/definitions/Configuration"
            }
         ]
      }
   },
   "required": [
      "name",
      "createdBy",
      "startDate",
      "scenarioType"
   ],
   "definitions": {
      "ScenarioType": {
         "title": "ScenarioType",
         "description": "An enumeration of the different kinds of scenario.",
         "enum": [
            "Earth Only",
            "Lunar",
            "Moon Only",
            "Martian",
            "Mars Only",
            "Solar System"
         ],
         "type": "string"
      },
      "InstElementUUID": {
         "title": "InstElementUUID",
         "description": "Instantiated element referenced by unique identifier.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            }
         }
      },
      "Body": {
         "title": "Body",
         "description": "An enumeration of planetary bodies.",
         "enum": [
            "Sun",
            "Earth",
            "Moon",
            "Mars"
         ],
         "type": "string"
      },
      "LagrangeNode": {
         "title": "LagrangeNode",
         "description": "Stable location at a Lagrange point between two bodies.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Node type",
               "default": "Lagrange Node",
               "enum": [
                  "Lagrange Node"
               ],
               "type": "string"
            },
            "body1": {
               "title": "Body 1",
               "description": "Primary planetary body",
               "default": "Earth",
               "allOf": [
                  {
                     "$ref": "#/definitions/Body"
                  }
               ]
            },
            "body2": {
               "title": "Body 2",
               "description": "Secondary Lagrange point body",
               "allOf": [
                  {
                     "$ref": "#/definitions/Body"
                  }
               ]
            },
            "lpNumber": {
               "title": "LP Number",
               "description": "Lagrange point number (1 to 5)",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            }
         },
         "required": [
            "name",
            "body2",
            "lpNumber"
         ]
      },
      "OrbitalNode": {
         "title": "OrbitalNode",
         "description": "Stable location orbiting a planetary body.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Node type",
               "default": "Orbital Node",
               "enum": [
                  "Orbital Node"
               ],
               "type": "string"
            },
            "body1": {
               "title": "Body 1",
               "description": "Primary planetary body",
               "default": "Earth",
               "allOf": [
                  {
                     "$ref": "#/definitions/Body"
                  }
               ]
            },
            "apoapsis": {
               "title": "Apoapsis",
               "description": "Major orbit radius (m)",
               "minimum": 0,
               "type": "number"
            },
            "periapsis": {
               "title": "Periapsis",
               "description": "Minor orbit radius (m)",
               "minimum": 0,
               "type": "number"
            },
            "inclination": {
               "title": "Inclination",
               "description": "Orbit inclination (decimal degrees, 0 to 180 inclusive)",
               "minimum": 0,
               "maximum": 180,
               "type": "number"
            }
         },
         "required": [
            "name",
            "apoapsis",
            "periapsis",
            "inclination"
         ]
      },
      "SurfaceNode": {
         "title": "SurfaceNode",
         "description": "Stable location on the surface of a planetary body.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Node type",
               "default": "Surface Node",
               "enum": [
                  "Surface Node"
               ],
               "type": "string"
            },
            "body1": {
               "title": "Body 1",
               "description": "Primary planetary body",
               "default": "Earth",
               "allOf": [
                  {
                     "$ref": "#/definitions/Body"
                  }
               ]
            },
            "latitude": {
               "title": "Latitude",
               "description": "Latitude (decimal degrees, -90 to 90 inclusive)",
               "minimum": -90,
               "maximum": 90,
               "type": "number"
            },
            "longitude": {
               "title": "Longitude",
               "description": "Longitude (decimal degrees, -180 to 180 inclusive)",
               "minimum": -180,
               "maximum": 180,
               "type": "number"
            }
         },
         "required": [
            "name",
            "latitude",
            "longitude"
         ]
      },
      "FlightEdge": {
         "title": "FlightEdge",
         "description": "A trajectory between two nodes that is known to be feasible for a given\ncargo (mass) and crew capacity under a specified flight architecture.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Edge type",
               "default": "Flight Edge",
               "enum": [
                  "Flight Edge"
               ],
               "type": "string"
            },
            "origin": {
               "title": "Origin Node",
               "description": "Origin node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "destination": {
               "title": "Destination Node",
               "description": "Destination node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "duration": {
               "title": "duration",
               "description": "Duration of traversal between nodes",
               "type": "number",
               "format": "time-delta"
            },
            "maxCrew": {
               "title": "Max Crew",
               "description": "Maximum number of crew to be transported",
               "minimum": 0,
               "type": "integer"
            },
            "maxCargo": {
               "title": "Max Cargo",
               "description": "Maximum cargo (kg) to be transported",
               "minimum": 0,
               "type": "number"
            }
         },
         "required": [
            "name",
            "origin",
            "destination",
            "duration",
            "maxCrew",
            "maxCargo"
         ]
      },
      "Burn": {
         "title": "Burn",
         "description": "Impulsive propulsive burn triggered at a designated time during a space\ntransport to generate a target change in velocity (delta-V).",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "time": {
               "title": "Time",
               "description": "Time relative to the start of the space transport",
               "type": "number",
               "format": "time-delta"
            },
            "deltaV": {
               "title": "Deltav",
               "description": "Change in velocity (m/s) to be achieved",
               "minimum": 0,
               "type": "number"
            }
         },
         "required": [
            "time",
            "deltaV"
         ]
      },
      "SpaceEdge": {
         "title": "SpaceEdge",
         "description": "An in-space trajectory between two nodes using a propulsive burn sequence.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Edge type",
               "default": "Space Edge",
               "enum": [
                  "Space Edge"
               ],
               "type": "string"
            },
            "origin": {
               "title": "Origin Node",
               "description": "Origin node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "destination": {
               "title": "Destination Node",
               "description": "Destination node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "duration": {
               "title": "Duration",
               "description": "Duration of space edge",
               "type": "number",
               "format": "time-delta"
            },
            "burns": {
               "title": "Burns",
               "description": "List of propulsive burns required to traverse the edge",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Burn"
               }
            }
         },
         "required": [
            "name",
            "origin",
            "destination",
            "duration"
         ]
      },
      "SurfaceEdge": {
         "title": "SurfaceEdge",
         "description": "Surface trajectory between two surface nodes.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Edge type",
               "default": "Surface Edge",
               "enum": [
                  "Surface Edge"
               ],
               "type": "string"
            },
            "origin": {
               "title": "Origin Node",
               "description": "Origin node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "destination": {
               "title": "Destination Node",
               "description": "Destination node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "distance": {
               "title": "Distance",
               "description": "Distance (m) of surface trajectory",
               "minimum": 0,
               "type": "number"
            }
         },
         "required": [
            "name",
            "origin",
            "destination",
            "distance"
         ]
      },
      "Network": {
         "title": "Network",
         "description": "Composition of nodes and edges.",
         "type": "object",
         "properties": {
            "nodes": {
               "title": "Nodes",
               "description": "Constituent nodes",
               "default": [],
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/LagrangeNode"
                     },
                     {
                        "$ref": "#/definitions/OrbitalNode"
                     },
                     {
                        "$ref": "#/definitions/SurfaceNode"
                     }
                  ]
               }
            },
            "edges": {
               "title": "Edges",
               "description": "Constituent edges",
               "default": [],
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/FlightEdge"
                     },
                     {
                        "$ref": "#/definitions/SpaceEdge"
                     },
                     {
                        "$ref": "#/definitions/SurfaceEdge"
                     }
                  ]
               }
            }
         }
      },
      "CreateElements": {
         "title": "CreateElements",
         "description": "Event that creates instantiated elements inside a node, edge, or\ninstantiated element carrier.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Create Elements",
               "enum": [
                  "Create Elements"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements",
               "description": "List of instantiated elements (by unique identifier) to be created",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "container": {
               "title": "Container",
               "description": "Node, edge, or instantiated carrier where the elements are to be created",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements",
            "container"
         ]
      },
      "MoveElements": {
         "title": "MoveElements",
         "description": "Event that moves instantiated elements to a new node, edge, or instantiated\ncarrier.\n\n:param [UUID] elements: list of instantiated elements (by unique identifier) to be moved\n:param UUID container: unique identifier of the node, edge, or instantiated carrier where the elements are to be moved",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Move Elements",
               "enum": [
                  "Move Elements"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements",
               "description": "List of instantiated elements (by unique identifier) to be moved",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "container": {
               "title": "Container",
               "description": "Unique identifier of the node, edge, or instantiated carrier where the elements are to be moved",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements",
            "container"
         ]
      },
      "RemoveElements": {
         "title": "RemoveElements",
         "description": "Event that removes instantiated elements.\n\n:param [UUID] elements: list of instantiated elements (by unique identifier) to be removed",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Remove Elements",
               "enum": [
                  "Remove Elements"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements",
               "description": "List of instantiated elements (by unique identifier) to be removed",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements"
         ]
      },
      "ReconfigureElement": {
         "title": "ReconfigureElement",
         "description": "Event that changes the operational state of one instantiated element.\n\n:param UUID element: unique identifier of the instantiated element to be reconfigured\n:param SafeInt state_index: index of the new operational state",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Reconfigure Element",
               "enum": [
                  "Reconfigure Element"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "element": {
               "title": "Element",
               "description": "Unique identifier of the instantiated element to be reconfigured",
               "type": "string",
               "format": "uuid"
            },
            "stateIndex": {
               "title": "State Index",
               "description": "Index of the new operational state",
               "minimum": -1,
               "type": "integer"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "element",
            "stateIndex"
         ]
      },
      "StateType": {
         "title": "StateType",
         "description": "Enumeration of state types.",
         "enum": [
            "Active",
            "Quiescent",
            "Dormant",
            "Decommissioned"
         ],
         "type": "string"
      },
      "ReconfigureElements": {
         "title": "ReconfigureElements",
         "description": "Event that changes the operational state of multiple instantiated elements.\n\n:param [UUID] elements: list of instantiated elements (by unique identifier) to be reconfigured\n:param StateType state_type: state type to which to be reconfigured",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Reconfigure Elements",
               "enum": [
                  "Reconfigure Elements"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements",
               "description": "List of instantiated elements (by unique identifier) to be reconfigured",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "stateType": {
               "description": "State type to which to be reconfigured",
               "allOf": [
                  {
                     "$ref": "#/definitions/StateType"
                  }
               ]
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements",
            "stateType"
         ]
      },
      "ResourceAmount": {
         "title": "ResourceAmount",
         "description": "A specified amount of a resource.",
         "type": "object",
         "properties": {
            "resource": {
               "title": "Resource UUID",
               "description": "Resource unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "amount": {
               "title": "Amount",
               "description": "Fixed amount of resource (units)",
               "type": "number"
            }
         },
         "required": [
            "resource",
            "amount"
         ]
      },
      "ClassOfSupply": {
         "title": "ClassOfSupply",
         "description": "Enumeration of the ten top-level classes of supply and sub-classes of supply.",
         "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            101,
            102,
            103,
            104,
            105,
            106,
            201,
            202,
            203,
            204,
            205,
            206,
            301,
            302,
            303,
            304,
            305,
            306,
            401,
            402,
            403,
            404,
            405,
            501,
            502,
            601,
            602,
            603,
            701,
            702,
            703,
            801,
            802,
            803,
            804,
            805,
            806,
            901,
            902,
            4011,
            4012,
            8041,
            8042,
            9021,
            9022,
            9023,
            9024
         ],
         "type": "integer"
      },
      "Environment": {
         "title": "Environment",
         "description": "Enumeration of stowage environments.",
         "enum": [
            "Pressurized",
            "Unpressurized"
         ],
         "type": "string"
      },
      "GenericResourceAmount": {
         "title": "GenericResourceAmount",
         "description": "A specified amount of a generic resource.",
         "type": "object",
         "properties": {
            "classOfSupply": {
               "title": "Class of Suppoly",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "amount": {
               "title": "Amount",
               "description": "Fixed amount of resource (kg)",
               "type": "number"
            }
         },
         "required": [
            "classOfSupply",
            "environment",
            "amount"
         ]
      },
      "AddResources": {
         "title": "AddResources",
         "description": "Event that adds resources to an instantiated container element.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Add Resources",
               "enum": [
                  "Add Resources"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "resources": {
               "title": "Produced Resources",
               "description": "List of resource amounts to produce",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            },
            "container": {
               "title": "Container",
               "description": "Unique identifier of the container element",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "resources",
            "container"
         ]
      },
      "ConsumeResources": {
         "title": "ConsumeResources",
         "description": "Event that consumes resources.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Consume Resources",
               "enum": [
                  "Consume Resources"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "resources": {
               "title": "Consumed Resources",
               "description": "List of resource amounts to consume",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            },
            "source": {
               "title": "Source",
               "description": "Unique identifier of the resource-consuming element",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "resources",
            "source"
         ]
      },
      "TransferResources": {
         "title": "TransferResources",
         "description": "Event that transfers resources between resource container elements.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Transfer Resources",
               "enum": [
                  "Transfer Resources"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "resources": {
               "title": "Transferred Resources",
               "description": "list of resource amounts to transfer",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            },
            "originContainer": {
               "title": "Origin Container",
               "description": "Unique identifier of the resource-transferring origin container",
               "type": "string",
               "format": "uuid"
            },
            "destinationContainer": {
               "title": "Destination Container",
               "description": "Unique identifier of the resource-transferring destination container",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "resources",
            "originContainer",
            "destinationContainer"
         ]
      },
      "BurnStage": {
         "title": "BurnStage",
         "description": "Enumeration of actions during a burn/stage sequence.",
         "enum": [
            "Burn",
            "Stage"
         ]
      },
      "BurnStageItem": {
         "title": "BurnStageItem",
         "description": "Object schema for element-specific actions during a burn/stage sequence.\n\n:param UUID element: unique identifier of the instantiated element performing the action\n:param BurnStage: action to be performed",
         "type": "object",
         "properties": {
            "element": {
               "title": "Element",
               "description": "Unique identifier of the instantiated element performing the action",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Burn/Stage",
               "description": "Action to be performed",
               "allOf": [
                  {
                     "$ref": "#/definitions/BurnStage"
                  }
               ]
            }
         },
         "required": [
            "element",
            "type"
         ]
      },
      "PropulsiveBurn": {
         "title": "PropulsiveBurn",
         "description": "Event that represents an impulsive propulsive maneuver composed of burn\n(fire engine) and stage (discard component) actions.\n\n:param [UUID] elements: list of instantiated elements (by unique identifier) to participate\n:param UUID burn: unique identifier of the burn to achieve\n:param [BurnStageItem] burn_stage_sequence: list of the actions to be sequenced",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Propulsive Burn",
               "enum": [
                  "Propulsive Burn"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements List",
               "description": "List of instantiated elements (by unique identifier) to participate.",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "burn": {
               "title": "Burn",
               "description": "Unique identifier of the burn to achieve",
               "type": "string",
               "format": "uuid"
            },
            "burnStageSequence": {
               "title": "Burn/Stage Sequence",
               "description": "List of the burns and stages to be performed in the event.",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/BurnStageItem"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements",
            "burn",
            "burnStageSequence"
         ]
      },
      "ElementState": {
         "title": "ElementState",
         "description": "Specification of an element state.",
         "type": "object",
         "properties": {
            "element": {
               "title": "element",
               "description": "Unique identifier of element",
               "type": "string",
               "format": "uuid"
            },
            "stateIndex": {
               "title": "State Index",
               "description": "Index of the referenced state (-1 if none)",
               "minimum": -1,
               "type": "integer"
            }
         },
         "required": [
            "element",
            "stateIndex"
         ]
      },
      "CrewedEVA": {
         "title": "CrewedEVA",
         "description": "Event for a crewed extravehicular activity.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Crewed EVA",
               "enum": [
                  "Crewed EVA"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "evaDuration": {
               "title": "EVA Duration",
               "description": "Duration of the extra-vehicular activity",
               "type": "number",
               "format": "time-delta"
            },
            "vehicle": {
               "title": "Crew Vehicle",
               "description": "Unique identifier of the crew habitat from which crew will egress and ingress",
               "type": "string",
               "format": "uuid"
            },
            "elementStates": {
               "title": "Elementstates",
               "description": "List of reconfiguration states for each participating element",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/ElementState"
               }
            },
            "additionalDemands": {
               "title": "Additional Demands",
               "description": "List of additional resource amounts to be consumed",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "evaDuration",
            "vehicle",
            "elementStates",
            "additionalDemands"
         ]
      },
      "CrewedExploration": {
         "title": "CrewedExploration",
         "description": "Event for a crewed exploration period that consists of regularly-scheduled\nextra-vehicular activities.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Crewed Exploration",
               "enum": [
                  "Crewed Exploration"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "evaDuration": {
               "title": "EVA Duration",
               "description": "Duration of the extra-vehicular activity",
               "type": "number",
               "format": "time-delta"
            },
            "duration": {
               "title": "Duration",
               "description": "Duration of the exploration",
               "type": "number",
               "format": "time-delta"
            },
            "vehicle": {
               "title": "Crew Vehicle",
               "description": "Unique identifier of the crew habitat from which crew will egress and ingress",
               "type": "string",
               "format": "uuid"
            },
            "evaPerWeek": {
               "title": "EVAs per week",
               "description": "Number of extra-vehiclular activitys to be performed per week",
               "minimum": 0,
               "type": "integer"
            },
            "elementStates": {
               "title": "Elementstates",
               "description": "List of reconfiguration states for each participating element",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/ElementState"
               }
            },
            "additionalDemands": {
               "title": "Additional Demands",
               "description": "List of additional resource amounts to be consumed",
               "default": [],
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "evaDuration",
            "duration",
            "vehicle",
            "evaPerWeek",
            "elementStates"
         ]
      },
      "SurfaceTransport": {
         "title": "SurfaceTransport",
         "description": "Event that transports instantiated elements along a surface edge.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Surface Transport",
               "enum": [
                  "Surface Transport"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "edge": {
               "title": "Edge",
               "description": "Edge (by unique identifier) along which this transport traverses",
               "type": "string",
               "format": "uuid"
            },
            "vehicle": {
               "title": "Surface Vehicle",
               "description": "Surface vehicle (by unique identifier) to transport",
               "type": "string",
               "format": "uuid"
            },
            "transportState": {
               "title": "Transport State Index",
               "description": "Index of the transport state",
               "minimum": -1,
               "type": "integer"
            },
            "speed": {
               "title": "Transport Speed",
               "description": "Transport speed (m/s)",
               "exclusiveMinimum": 0,
               "type": "number"
            },
            "dutyCycle": {
               "title": "Duty Cycle",
               "description": "Fraction of the time the vehicle is moving at the transport speed",
               "default": 1,
               "exclusiveMinimum": 0,
               "maximum": 1,
               "type": "number"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "edge",
            "vehicle",
            "speed"
         ]
      },
      "FlightTransport": {
         "title": "FlightTransport",
         "description": "Event that transports instantiated elements along a flight edge.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Flight Transport",
               "enum": [
                  "Flight Transport"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "edge": {
               "title": "Edge",
               "description": "Edge (by unique identifier) along which this transport traverses",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "List of Elements",
               "description": "List of instantiated elements (by unique identifier) to transport",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "edge",
            "elements"
         ]
      },
      "BurnStageSequence": {
         "title": "BurnStageSequence",
         "description": "A sequence of burn/stage events.",
         "type": "object",
         "properties": {
            "burn": {
               "title": "Burn",
               "description": "UUID of burn",
               "type": "string",
               "format": "uuid"
            },
            "actions": {
               "title": "Actions",
               "description": "List of the burns and stages to be performed in the event",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/BurnStageItem"
               }
            }
         },
         "required": [
            "burn",
            "actions"
         ]
      },
      "SpaceTransport": {
         "title": "SpaceTransport",
         "description": "Event that transports instantiated elements along a space edge.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Space Transport",
               "enum": [
                  "Space Transport"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "edge": {
               "title": "Edge",
               "description": "Edge (by unique identifier) along which this transport traverses",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "List of Elements",
               "description": "List of instantiated elements (by unique identifier) to transport",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "burnStageSequence": {
               "title": "Burn Sequence",
               "description": "List of burn-stage sequences to perform",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/BurnStageSequence"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "edge",
            "elements",
            "burnStageSequence"
         ]
      },
      "InstTimedImpulseDemandModel": {
         "title": "InstTimedImpulseDemandModel",
         "description": "Instantiated demand model that generates an impulsive demand for resources.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Instantiated demand model name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Timed Impulse",
               "enum": [
                  "Timed Impulse"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element demand model template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "demands": {
               "title": "Demands",
               "description": "List of resource amounts to be demanded",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            }
         },
         "required": [
            "name",
            "templateId"
         ]
      },
      "ResourceAmountRate": {
         "title": "ResourceAmountRate",
         "description": "A specified amount of a resource type.",
         "type": "object",
         "properties": {
            "resource": {
               "title": "Resource UUID",
               "description": "Resource unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "rate": {
               "title": "Rate",
               "description": "Time-rate of resource (units/day)",
               "type": "number"
            }
         },
         "required": [
            "resource",
            "rate"
         ]
      },
      "GenericResourceAmountRate": {
         "title": "GenericResourceAmountRate",
         "description": "A specified amount of a generic resource.",
         "type": "object",
         "properties": {
            "classOfSupply": {
               "title": "Class of Suppoly",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "rate": {
               "title": "Rate",
               "description": "Time-rate of resource (kg/day)",
               "type": "number"
            }
         },
         "required": [
            "classOfSupply",
            "environment",
            "rate"
         ]
      },
      "InstRatedDemandModel": {
         "title": "InstRatedDemandModel",
         "description": "Instantiated demand model that generates a constant time rate demand for resources.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Instantiated demand model name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Rated",
               "enum": [
                  "Rated"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element demand model template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "demands": {
               "title": "Demands",
               "description": "List of resource amount rates to be demanded",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmountRate"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmountRate"
                     }
                  ]
               }
            }
         },
         "required": [
            "name",
            "templateId"
         ]
      },
      "InstCrewConsumablesDemandModel": {
         "title": "InstCrewConsumablesDemandModel",
         "description": "Instantiated mission demand model that generates demands for crew consumables.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Instantiated demand model name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Crew Consumables",
               "enum": [
                  "Crew Consumables"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Mission demand model template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "reservesDuration": {
               "title": "Reserves Duration",
               "description": "Duration (days) of reserve resources",
               "minimum": 0,
               "type": "number"
            },
            "waterRecoveryRate": {
               "title": "Water Recovery Rate",
               "description": "Rate (between 0 and 1) of water recovery",
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            },
            "clothingLifetime": {
               "title": "Clothing Lifetime",
               "description": "Duration (days) of clothing lifetime",
               "minimum": 0,
               "type": "number"
            },
            "transitDemandsOmitted": {
               "title": "Transit Demand Omitted",
               "description": "True, if transit demands shall be omitted",
               "type": "boolean"
            },
            "waterRate": {
               "title": "Water Rate",
               "description": "Rate (kg/person/day) of water (generic COS 201) demands",
               "type": "number"
            },
            "evaWaterRate": {
               "title": "EVA Water Rate",
               "description": "Rate (kg/person/hour) of water (generic COS 201) demands during extra-vehicular activity",
               "type": "number"
            },
            "foodSupportRate": {
               "title": "Food Support Rate",
               "description": "Rate (kg/person/day) of food support equipment (generic COS 202) demands",
               "type": "number"
            },
            "ambientFoodRate": {
               "title": "Ambient Food Rate",
               "description": "Rate (kg/person/day) of ambient food (generic COS 202) demands",
               "type": "number"
            },
            "rfFoodRate": {
               "title": "Rf Food Rate",
               "description": "Rate (kg/person/day) of RF food (generic COS 202) demands",
               "type": "number"
            },
            "oxygenRate": {
               "title": "Oxygen Rate",
               "description": "Rate (kg/person/day) of oxygen (generic COS 203) demands",
               "type": "number"
            },
            "evaOxygenRate": {
               "title": "EVA Oxygen Rate",
               "description": "Rate (kg/person/hour) of oxygen (generic COS 203) demands during extra-vehicular activity",
               "type": "number"
            },
            "nitrogenRate": {
               "title": "Nitrogen Rate",
               "description": "Rate (kg/person/day) of nitrogen (generic COS 203) demands",
               "type": "number"
            },
            "hygieneRate": {
               "title": "Hygiene Rate",
               "description": "Rate (kg/person/day) of hygeine (generic COS 204) demands",
               "type": "number"
            },
            "hygieneKit": {
               "title": "Hygiene Kit",
               "description": "Amount (kg/person) of hygeine kit (generic COS 204) demands",
               "type": "number"
            },
            "clothingRate": {
               "title": "Clothing Rate",
               "description": "Rate (kg/person/day) of clothing (generic COS 205) demands",
               "type": "number"
            },
            "personalItems": {
               "title": "Personal Items",
               "description": "Amount (kg/person) of personal item (generic COS 206) demands",
               "type": "number"
            },
            "officeEquipment": {
               "title": "Office Equipment",
               "description": "Amount (kg/person) of office equipment (generic COS 301) demands",
               "type": "number"
            },
            "evaSuit": {
               "title": "EVA Suit",
               "description": "Amount (kg/person) of extra-vehicular activity suit (generic COS 302) demands",
               "type": "number"
            },
            "evaLithiumHydroxide": {
               "title": "EVA Lithium Hydroxide",
               "description": "Rate (kg/person/hour) of lithium hydroxide (generic COS 302) demands",
               "type": "number"
            },
            "healthEquipment": {
               "title": "Health Equipment",
               "description": "Amount (kg) of health equipment (generic COS 303) demands",
               "type": "number"
            },
            "healthConsumables": {
               "title": "Health Consumables",
               "description": "Amount (kg/person) of health consumables (generic COS 303) demands",
               "type": "number"
            },
            "safetyEquipment": {
               "title": "Safety Equipment",
               "description": "Amount (kg) of safety equipment (generic COS 304) demands",
               "type": "number"
            },
            "commEquipment": {
               "title": "Comm Equipment",
               "description": "Amount (kg) of communication equipment (generic COS 305) demands",
               "type": "number"
            },
            "computerEquipment": {
               "title": "Computer Equipment",
               "description": "Amount (kg/person) of computer equipment (generic COS 306) demands",
               "type": "number"
            },
            "trashBagRate": {
               "title": "Trash Bag Rate",
               "description": "Rate (kg/person/day) of trash bag (generic COS 701) demands",
               "type": "number"
            },
            "wasteContainmentRate": {
               "title": "Waste Containment Rate",
               "description": "Rate (kg/person/day) of waste containment (generic COS 702) demands",
               "type": "number"
            }
         },
         "required": [
            "name",
            "templateId"
         ]
      },
      "Mission": {
         "title": "Mission",
         "description": "A mission composes a sequence of events.\n\n:param str name: mission name\n:param datetime start_date: time of mission start\n:param [AllEvents] events: list of events composing a mission\n:param [UUID] demand_models: list of mission demand models (by unique identifier)\n:param UUID origin: origin node unique identifier\n:param UUID destination: destination node unique identifier\n:param UUID return_origin: return origin node unique identifier (not necessary for one-way missions)\n:param UUID return_destination: return destination node unique identifier (not necessary for one-way missions)",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Mission name",
               "type": "string"
            },
            "startDate": {
               "title": "Start Date",
               "description": "Time of mission start",
               "type": "string",
               "format": "date-time"
            },
            "events": {
               "title": "Event ID List",
               "description": "List of events composing a mission",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/CreateElements"
                     },
                     {
                        "$ref": "#/definitions/MoveElements"
                     },
                     {
                        "$ref": "#/definitions/RemoveElements"
                     },
                     {
                        "$ref": "#/definitions/ReconfigureElement"
                     },
                     {
                        "$ref": "#/definitions/ReconfigureElements"
                     },
                     {
                        "$ref": "#/definitions/AddResources"
                     },
                     {
                        "$ref": "#/definitions/ConsumeResources"
                     },
                     {
                        "$ref": "#/definitions/TransferResources"
                     },
                     {
                        "$ref": "#/definitions/PropulsiveBurn"
                     },
                     {
                        "$ref": "#/definitions/CrewedEVA"
                     },
                     {
                        "$ref": "#/definitions/CrewedExploration"
                     },
                     {
                        "$ref": "#/definitions/SurfaceTransport"
                     },
                     {
                        "$ref": "#/definitions/FlightTransport"
                     },
                     {
                        "$ref": "#/definitions/SpaceTransport"
                     }
                  ]
               }
            },
            "demandModels": {
               "title": "Demand Models List",
               "description": "List of mission demand models (by unique identifier)",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/InstTimedImpulseDemandModel"
                     },
                     {
                        "$ref": "#/definitions/InstRatedDemandModel"
                     },
                     {
                        "$ref": "#/definitions/InstCrewConsumablesDemandModel"
                     }
                  ]
               }
            },
            "origin": {
               "title": "Origin UUID",
               "description": "Origin node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "destination": {
               "title": "Destination UUID",
               "description": "Destination node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "returnOrigin": {
               "title": "Return Origin UUID",
               "description": "Return origin node unique identifier (not necessary for one-way missions)",
               "type": "string",
               "format": "uuid"
            },
            "returnDestination": {
               "title": "Return Destination ID",
               "description": "Return destination node unique identifier (not necessary for one-way missions)",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "startDate",
            "events",
            "demandModels",
            "origin",
            "destination"
         ]
      },
      "DemandModelType": {
         "title": "DemandModelType",
         "description": "Enumeration of demand model types.",
         "enum": [
            "Crew Consumables",
            "Timed Impulse",
            "Rated",
            "Sparing By Mass"
         ],
         "type": "string"
      },
      "InstElementDemandModel": {
         "title": "InstElementDemandModel",
         "description": "Base class for instantiated element demand models.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Instantiated demand model name",
               "type": "string"
            },
            "type": {
               "description": "Demand model type",
               "allOf": [
                  {
                     "$ref": "#/definitions/DemandModelType"
                  }
               ]
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element demand model template unique identifier",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "type",
            "templateId"
         ]
      },
      "State": {
         "title": "State",
         "description": "An element's operational state.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "State name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "type": {
               "description": "State type",
               "allOf": [
                  {
                     "$ref": "#/definitions/StateType"
                  }
               ]
            },
            "demandModels": {
               "title": "Demand Models",
               "description": "List of instantiated demand models",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementDemandModel"
               }
            }
         },
         "required": [
            "name",
            "type"
         ]
      },
      "Part": {
         "title": "Part",
         "description": "Piece part of an element with attributes to describe failure and/or maintenance.",
         "type": "object",
         "properties": {
            "resource": {
               "title": "Resource",
               "description": "Unique identifier of resource",
               "type": "string",
               "format": "uuid"
            },
            "meanTimeToFailure": {
               "title": "Meantimetofailure",
               "description": "Mean operating time to failure.",
               "type": "number",
               "format": "time-delta"
            },
            "meanTimeToRepair": {
               "title": "Meantimetorepair",
               "description": "Mean crew time to repair.",
               "type": "number",
               "format": "time-delta"
            },
            "massToRepair": {
               "title": "Masstorepair",
               "description": "Mass (kg, generic COS 4) required to perform a repair.",
               "minimum": 0,
               "type": "number"
            },
            "quantity": {
               "title": "Quantity",
               "description": "Quantity of this part.",
               "default": 1,
               "minimum": 1,
               "type": "number"
            },
            "dutyCycle": {
               "title": "Dutycycle",
               "description": "Fraction of time this part is in use.",
               "default": 1,
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            }
         },
         "required": [
            "resource"
         ]
      },
      "Element": {
         "title": "Element",
         "description": "Generic entity that persists over time.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Element",
               "enum": [
                  "Element"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "default": 0,
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage.",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Part"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            }
         },
         "required": [
            "name"
         ]
      },
      "ResourceContainer": {
         "title": "ResourceContainer",
         "description": "Container for resources.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Resource Container",
               "enum": [
                  "Resource Container"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "default": 0,
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage.",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Part"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "maxCargoMass": {
               "title": "Max Cargo Mass",
               "description": "Cargo mass capacity constraint (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "maxCargoVolume": {
               "title": "Maximum Cargo Volume",
               "description": "Cargo volume capacity constraint (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "cargoEnvironment": {
               "title": "Cargo Environment",
               "description": "Cargo stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "contents": {
               "title": "Resource Amount",
               "description": "List of contained resource amounts",
               "default": [],
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            }
         },
         "required": [
            "name"
         ]
      },
      "ElementCarrier": {
         "title": "ElementCarrier",
         "description": "Carrier of other elements.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Element Carrier",
               "enum": [
                  "Element Carrier"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "default": 0,
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage.",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Part"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "maxCargoMass": {
               "title": "Max Cargo Mass",
               "description": "Cargo mass capacity constraint (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "maxCargoVolume": {
               "title": "Maximum Cargo Volume",
               "description": "Cargo volume capacity constraint (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "cargoEnvironment": {
               "title": "Cargo Environment",
               "description": "Cargo stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) inside the carrier",
               "default": [],
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "maxCrew": {
               "title": "Maximum Crew Count",
               "description": "Maximum number of human agents (crew)",
               "minimum": 0,
               "type": "integer"
            }
         },
         "required": [
            "name",
            "maxCrew"
         ]
      },
      "SurfaceVehicle": {
         "title": "SurfaceVehicle",
         "description": "Surface vehicle that can traverse surface edges.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "the element's type",
               "default": "Surface Vehicle",
               "enum": [
                  "Surface Vehicle"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "default": 0,
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage.",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Part"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "maxCargoMass": {
               "title": "Max Cargo Mass",
               "description": "Cargo mass capacity constraint (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "maxCargoVolume": {
               "title": "Maximum Cargo Volume",
               "description": "Cargo volume capacity constraint (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "cargoEnvironment": {
               "title": "Cargo Environment",
               "description": "Cargo stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) inside the carrier",
               "default": [],
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "maxCrew": {
               "title": "Maximum Crew Count",
               "description": "Maximum number of human agents (crew)",
               "minimum": 0,
               "type": "integer"
            },
            "maxSpeed": {
               "title": "Maximum Speed",
               "description": "Maximum speed (km/hr)",
               "minimum": 0,
               "type": "number"
            },
            "maxFuel": {
               "title": "Maximum Fuel",
               "description": "Maximum fuel amount (units)",
               "minimum": 0,
               "type": "number"
            },
            "fuel": {
               "title": "Fuel",
               "description": "Type and amount of fuel",
               "anyOf": [
                  {
                     "$ref": "#/definitions/ResourceAmount"
                  },
                  {
                     "$ref": "#/definitions/GenericResourceAmount"
                  }
               ]
            }
         },
         "required": [
            "name",
            "maxCrew",
            "maxSpeed",
            "maxFuel",
            "fuel"
         ]
      },
      "PropulsiveVehicle": {
         "title": "PropulsiveVehicle",
         "description": "Space vehicle with impulsive propulsion that can traverse space edges.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Propulsive Vehicle",
               "enum": [
                  "Propulsive Vehicle"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "default": 0,
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage.",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Part"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "maxCargoMass": {
               "title": "Max Cargo Mass",
               "description": "Cargo mass capacity constraint (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "maxCargoVolume": {
               "title": "Maximum Cargo Volume",
               "description": "Cargo volume capacity constraint (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "cargoEnvironment": {
               "title": "Cargo Environment",
               "description": "Cargo stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) inside the carrier",
               "default": [],
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "maxCrew": {
               "title": "Maximum Crew Count",
               "description": "Maximum number of human agents (crew)",
               "minimum": 0,
               "type": "integer"
            },
            "isp": {
               "title": "Specific Impulse",
               "description": "Specific impulse (s)",
               "minimum": 0,
               "type": "number"
            },
            "maxFuel": {
               "title": "Maximum Fuel",
               "description": "Maximum propellant amount (units)",
               "minimum": 0,
               "type": "number"
            },
            "fuel": {
               "title": "Fuel",
               "description": "Type and amount of propellant",
               "anyOf": [
                  {
                     "$ref": "#/definitions/ResourceAmount"
                  },
                  {
                     "$ref": "#/definitions/GenericResourceAmount"
                  }
               ]
            }
         },
         "required": [
            "name",
            "maxCrew",
            "isp",
            "maxFuel",
            "fuel"
         ]
      },
      "HumanAgent": {
         "title": "HumanAgent",
         "description": "Human agent, i.e., a crew member.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Human Agent",
               "enum": [
                  "Human Agent"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "default": 0,
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage.",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Part"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "activeTimeFraction": {
               "title": "Active Time Fraction",
               "description": "fraction time an agent is available (0 to 1 inclusive)",
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            }
         },
         "required": [
            "name",
            "activeTimeFraction"
         ]
      },
      "RoboticAgent": {
         "title": "RoboticAgent",
         "description": "Robotic agent.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Robotic Agent",
               "enum": [
                  "Robotic Agent"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "default": 0,
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "default": "Unpressurized",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage.",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Part"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "activeTimeFraction": {
               "title": "Active Time Fraction",
               "description": "fraction time an agent is available (0 to 1 inclusive)",
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            }
         },
         "required": [
            "name",
            "activeTimeFraction"
         ]
      },
      "InstElement": {
         "title": "InstElement",
         "description": "Generic element instance.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Type",
               "description": "element type",
               "default": "Element",
               "enum": [
                  "Element"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage",
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            }
         },
         "required": [
            "templateId",
            "name"
         ]
      },
      "InstResourceContainer": {
         "title": "InstResourceContainer",
         "description": "Instantiated container for resources.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Resource Container",
               "enum": [
                  "Resource Container"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage",
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "maxCargoMass": {
               "title": "Max Cargo Mass",
               "description": "Cargo mass capacity constraint (kg)",
               "minimum": 0,
               "type": "number"
            },
            "maxCargoVolume": {
               "title": "Maximum Cargo Volume",
               "description": "Cargo volume capacity constraint (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "cargoEnvironment": {
               "title": "Cargo Environment",
               "description": "Cargo stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "contents": {
               "title": "Resource Amount",
               "description": "List of contained resource amounts",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            }
         },
         "required": [
            "templateId",
            "name"
         ]
      },
      "InstElementCarrier": {
         "title": "InstElementCarrier",
         "description": "Instantiated carrier of other elements.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Element Carrier",
               "enum": [
                  "Element Carrier"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage",
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "maxCargoMass": {
               "title": "Max Cargo Mass",
               "description": "Cargo mass capacity constraint (kg)",
               "minimum": 0,
               "type": "number"
            },
            "maxCargoVolume": {
               "title": "Maximum Cargo Volume",
               "description": "Cargo volume capacity constraint (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "cargoEnvironment": {
               "title": "Cargo Environment",
               "description": "Cargo stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "contents": {
               "title": "Contents",
               "description": "List of instantiated elements (by unique identifiers) inside the carrier",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "maxCrew": {
               "title": "Maximum Crew Count",
               "description": "Maximum number of human agents (crew)",
               "minimum": 0,
               "type": "integer"
            }
         },
         "required": [
            "templateId",
            "name"
         ]
      },
      "InstPropulsiveVehicle": {
         "title": "InstPropulsiveVehicle",
         "description": "Instantiated space vehicle with impulsive propulsion that can traverse space edges.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Propulsive Vehicle",
               "enum": [
                  "Propulsive Vehicle"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage",
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "maxCargoMass": {
               "title": "Max Cargo Mass",
               "description": "Cargo mass capacity constraint (kg)",
               "minimum": 0,
               "type": "number"
            },
            "maxCargoVolume": {
               "title": "Maximum Cargo Volume",
               "description": "Cargo volume capacity constraint (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "cargoEnvironment": {
               "title": "Cargo Environment",
               "description": "Cargo stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "contents": {
               "title": "Contents",
               "description": "List of instantiated elements (by unique identifiers) inside the carrier",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "maxCrew": {
               "title": "Maximum Crew Count",
               "description": "Maximum number of human agents (crew)",
               "minimum": 0,
               "type": "integer"
            },
            "isp": {
               "title": "Specific Impulse",
               "description": "specific impulse (s)",
               "minimum": 0,
               "type": "number"
            },
            "maxFuel": {
               "title": "Maximum Fuel",
               "description": "maximum propellant amount (units)",
               "minimum": 0,
               "type": "number"
            },
            "fuel": {
               "title": "Propellant",
               "description": "type and amount of propellant",
               "anyOf": [
                  {
                     "$ref": "#/definitions/ResourceAmount"
                  },
                  {
                     "$ref": "#/definitions/GenericResourceAmount"
                  }
               ]
            }
         },
         "required": [
            "templateId",
            "name"
         ]
      },
      "InstSurfaceVehicle": {
         "title": "InstSurfaceVehicle",
         "description": "Instantiated surface vehicle that can traverse surface edges.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Surface Vehicle",
               "enum": [
                  "Surface Vehicle"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage",
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "maxCargoMass": {
               "title": "Max Cargo Mass",
               "description": "Cargo mass capacity constraint (kg)",
               "minimum": 0,
               "type": "number"
            },
            "maxCargoVolume": {
               "title": "Maximum Cargo Volume",
               "description": "Cargo volume capacity constraint (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "cargoEnvironment": {
               "title": "Cargo Environment",
               "description": "Cargo stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "contents": {
               "title": "Contents",
               "description": "List of instantiated elements (by unique identifiers) inside the carrier",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "maxCrew": {
               "title": "Maximum Crew Count",
               "description": "Maximum number of human agents (crew)",
               "minimum": 0,
               "type": "integer"
            },
            "maxSpeed": {
               "title": "Maximum Speed",
               "description": "Maximum speed (km/hr)",
               "minimum": 0,
               "type": "number"
            },
            "maxFuel": {
               "title": "Maximum Fuel",
               "description": "Maximum fuel amount (units)",
               "minimum": 0,
               "type": "number"
            },
            "fuel": {
               "title": "Fuel",
               "description": "Type and amount of fuel",
               "anyOf": [
                  {
                     "$ref": "#/definitions/ResourceAmount"
                  },
                  {
                     "$ref": "#/definitions/GenericResourceAmount"
                  }
               ]
            }
         },
         "required": [
            "templateId",
            "name"
         ]
      },
      "InstHumanAgent": {
         "title": "InstHumanAgent",
         "description": "Instantiated human agent, i.e., a crew member.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Human Agent",
               "enum": [
                  "Human Agent"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage",
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "activeTimeFraction": {
               "title": "Active Time Fraction",
               "description": "fraction time an agent is available (0 to 1 inclusive)",
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            }
         },
         "required": [
            "templateId",
            "name"
         ]
      },
      "InstRoboticAgent": {
         "title": "InstRoboticAgent",
         "description": "Instantiated robotic agent.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Type",
               "description": "Element type",
               "default": "Robotic Agent",
               "enum": [
                  "Robotic Agent"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Element name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "accommodationMass": {
               "title": "Accommodation Mass",
               "description": "Amount of COS 5 (kg) required for stowage",
               "minimum": 0,
               "type": "number"
            },
            "mass": {
               "title": "Mass",
               "description": "Mass (kg)",
               "minimum": 0,
               "type": "number"
            },
            "volume": {
               "title": "Volume",
               "description": "Volume (m^3)",
               "minimum": 0,
               "type": "number"
            },
            "states": {
               "title": "States",
               "description": "List of operational states",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/State"
               }
            },
            "currentStateIndex": {
               "title": "Current State",
               "description": "Index of the current operational state",
               "minimum": -1,
               "type": "integer"
            },
            "parts": {
               "title": "Parts",
               "description": "List of constituent parts",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "icon": {
               "title": "Icon",
               "type": "string"
            },
            "activeTimeFraction": {
               "title": "Active Time Fraction",
               "description": "fraction time an agent is available (0 to 1 inclusive)",
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            }
         },
         "required": [
            "templateId",
            "name"
         ]
      },
      "TimedImpulseDemandModel": {
         "title": "TimedImpulseDemandModel",
         "description": "Demand model that generates an impulsive demand for resources.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Timed Impulse",
               "enum": [
                  "Timed Impulse"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "demands": {
               "title": "Demands",
               "description": "List of resource amounts to be demanded",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            }
         },
         "required": [
            "name",
            "demands"
         ]
      },
      "RatedDemandModel": {
         "title": "RatedDemandModel",
         "description": "Demand model that generates a constant time rate demand for resources.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Rated",
               "enum": [
                  "Rated"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "demands": {
               "title": "Demands",
               "description": "List of resource amount rates to be demanded",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmountRate"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmountRate"
                     }
                  ]
               }
            }
         },
         "required": [
            "name",
            "demands"
         ]
      },
      "CrewConsumablesDemandModel": {
         "title": "CrewConsumablesDemandModel",
         "description": "Mission demand model that generates demands for crew consumables.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Crew Consumables",
               "enum": [
                  "Crew Consumables"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "reservesDuration": {
               "title": "Reserves Duration",
               "description": "Duration (days) of reserve resources",
               "default": 0,
               "minimum": 0,
               "type": "number"
            },
            "waterRecoveryRate": {
               "title": "Water Recovery Rate",
               "description": "Rate (between 0 and 1) of water recovery",
               "default": 0.42,
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            },
            "clothingLifetime": {
               "title": "Clothing Lifetime",
               "description": "Duration (days) of clothing lifetime",
               "default": 4,
               "minimum": 0,
               "type": "number"
            },
            "transitDemandsOmitted": {
               "title": "Transit Demand Omitted",
               "description": "True, if transit demands shall be omitted",
               "default": false,
               "type": "boolean"
            },
            "waterRate": {
               "title": "Water Rate",
               "description": "Rate (kg/person/day) of water (generic COS 201) demands",
               "default": 3.6,
               "type": "number"
            },
            "evaWaterRate": {
               "title": "EVA Water Rate",
               "description": "Rate (kg/person/hour) of water (generic COS 201) demands during extra-vehicular activity",
               "default": 0.6875,
               "type": "number"
            },
            "foodSupportRate": {
               "title": "Food Support Rate",
               "description": "Rate (kg/person/day) of food support equipment (generic COS 202) demands",
               "default": 0.05556,
               "type": "number"
            },
            "ambientFoodRate": {
               "title": "Ambient Food Rate",
               "description": "Rate (kg/person/day) of ambient food (generic COS 202) demands",
               "default": 0.76389,
               "type": "number"
            },
            "rfFoodRate": {
               "title": "Rf Food Rate",
               "description": "Rate (kg/person/day) of RF food (generic COS 202) demands",
               "default": 1.61667,
               "type": "number"
            },
            "oxygenRate": {
               "title": "Oxygen Rate",
               "description": "Rate (kg/person/day) of oxygen (generic COS 203) demands",
               "default": 3.85714,
               "type": "number"
            },
            "evaOxygenRate": {
               "title": "EVA Oxygen Rate",
               "description": "Rate (kg/person/hour) of oxygen (generic COS 203) demands during extra-vehicular activity",
               "default": 0.07875,
               "type": "number"
            },
            "nitrogenRate": {
               "title": "Nitrogen Rate",
               "description": "Rate (kg/person/day) of nitrogen (generic COS 203) demands",
               "default": 2.21429,
               "type": "number"
            },
            "hygieneRate": {
               "title": "Hygiene Rate",
               "description": "Rate (kg/person/day) of hygeine (generic COS 204) demands",
               "default": 0.27778,
               "type": "number"
            },
            "hygieneKit": {
               "title": "Hygiene Kit",
               "description": "Amount (kg/person) of hygeine kit (generic COS 204) demands",
               "default": 1.8,
               "type": "number"
            },
            "clothingRate": {
               "title": "Clothing Rate",
               "description": "Rate (kg/person/day) of clothing (generic COS 205) demands",
               "default": 2.3,
               "type": "number"
            },
            "personalItems": {
               "title": "Personal Items",
               "description": "Amount (kg/person) of personal item (generic COS 206) demands",
               "default": 10,
               "type": "number"
            },
            "officeEquipment": {
               "title": "Office Equipment",
               "description": "Amount (kg/person) of office equipment (generic COS 301) demands",
               "default": 5,
               "type": "number"
            },
            "evaSuit": {
               "title": "EVA Suit",
               "description": "Amount (kg/person) of extra-vehicular activity suit (generic COS 302) demands",
               "default": 107,
               "type": "number"
            },
            "evaLithiumHydroxide": {
               "title": "EVA Lithium Hydroxide",
               "description": "Rate (kg/person/hour) of lithium hydroxide (generic COS 302) demands",
               "default": 0.3625,
               "type": "number"
            },
            "healthEquipment": {
               "title": "Health Equipment",
               "description": "Amount (kg) of health equipment (generic COS 303) demands",
               "default": 20,
               "type": "number"
            },
            "healthConsumables": {
               "title": "Health Consumables",
               "description": "Amount (kg/person) of health consumables (generic COS 303) demands",
               "default": 0.1,
               "type": "number"
            },
            "safetyEquipment": {
               "title": "Safety Equipment",
               "description": "Amount (kg) of safety equipment (generic COS 304) demands",
               "default": 25,
               "type": "number"
            },
            "commEquipment": {
               "title": "Comm Equipment",
               "description": "Amount (kg) of communication equipment (generic COS 305) demands",
               "default": 20,
               "type": "number"
            },
            "computerEquipment": {
               "title": "Computer Equipment",
               "description": "Amount (kg/person) of computer equipment (generic COS 306) demands",
               "default": 5,
               "type": "number"
            },
            "trashBagRate": {
               "title": "Trash Bag Rate",
               "description": "Rate (kg/person/day) of trash bag (generic COS 701) demands",
               "default": 0.05,
               "type": "number"
            },
            "wasteContainmentRate": {
               "title": "Waste Containment Rate",
               "description": "Rate (kg/person/day) of waste containment (generic COS 702) demands",
               "default": 0.05,
               "type": "number"
            }
         },
         "required": [
            "name"
         ]
      },
      "SparingByMassDemandModel": {
         "title": "SparingByMassDemandModel",
         "description": "Element demand model that generates demands for spares based on mass fraction.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Sparing By Mass",
               "enum": [
                  "Sparing By Mass"
               ],
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "unpressurizedSparesRate": {
               "title": "Unpressurized Spares Rate",
               "description": "fraction of an element mass demanded per year as unpressurized spares (generic COS 4)",
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            },
            "pressurizedSparesRate": {
               "title": "Pressurized Spares Rate",
               "description": "fraction of an element mass demanded per year as pressurized spares (generic COS 4)",
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            },
            "partsListEnabled": {
               "title": "Parts List Enabled",
               "description": "True, if the element part list identifies specific (non-generic) demands",
               "type": "boolean"
            }
         },
         "required": [
            "name",
            "unpressurizedSparesRate",
            "pressurizedSparesRate",
            "partsListEnabled"
         ]
      },
      "ContinuousResource": {
         "title": "ContinuousResource",
         "description": "A resource instantiated in continuous (floating point) amounts.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Resource name",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "packingFactor": {
               "title": "Packing Factor",
               "description": "Mass (kg) of packing material (generic COS 5) required per unit",
               "minimum": 0,
               "type": "number"
            },
            "units": {
               "title": "Units",
               "description": "Unit resource label (default: kg)",
               "default": "kg",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "unitMass": {
               "title": "Unit Mass",
               "description": "Mass (kg) of 1.0 units",
               "exclusiveMinimum": 0,
               "type": "number"
            },
            "unitVolume": {
               "title": "Unit Volume",
               "description": "Volume (m^3) of 1.0 units",
               "minimum": 0,
               "type": "number"
            },
            "type": {
               "title": "Type",
               "description": "Resource type",
               "default": "Continuous",
               "enum": [
                  "Continuous"
               ],
               "type": "string"
            }
         },
         "required": [
            "name",
            "classOfSupply",
            "environment",
            "packingFactor",
            "unitMass",
            "unitVolume"
         ]
      },
      "DiscreteResource": {
         "title": "DiscreteResource",
         "description": "A resource instantiated in discrete (integer) amounts.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Resource name",
               "type": "string"
            },
            "classOfSupply": {
               "title": "Class of Supply",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "packingFactor": {
               "title": "Packing Factor",
               "description": "Mass (kg) of packing material (generic COS 5) required per unit",
               "minimum": 0,
               "type": "number"
            },
            "units": {
               "title": "Units",
               "description": "Unit resource label (default: kg)",
               "default": "kg",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description (optional)",
               "type": "string"
            },
            "unitMass": {
               "title": "Unit Mass",
               "description": "Mass (kg) of 1.0 units",
               "exclusiveMinimum": 0,
               "type": "number"
            },
            "unitVolume": {
               "title": "Unit Volume",
               "description": "Volume (m^3) of 1.0 units",
               "minimum": 0,
               "type": "number"
            },
            "type": {
               "title": "Type",
               "description": "Resource type",
               "default": "Discrete",
               "enum": [
                  "Discrete"
               ],
               "type": "string"
            }
         },
         "required": [
            "name",
            "classOfSupply",
            "environment",
            "packingFactor",
            "unitMass",
            "unitVolume"
         ]
      },
      "Manifest": {
         "title": "Manifest",
         "description": "Manifest of events that schedule resource packing and loading.",
         "type": "object",
         "properties": {}
      },
      "ItemDiscretizationType": {
         "title": "ItemDiscretizationType",
         "description": "Enumeration of item discretization types (i.e., how discrete demands get\naggregated to unit quantities).",
         "enum": [
            "None",
            "Element",
            "Location",
            "Scenario"
         ],
         "type": "string"
      },
      "Configuration": {
         "title": "Configuration",
         "description": "Scenario configuration settings.",
         "type": "object",
         "properties": {
            "timePrecision": {
               "title": "Time Precision",
               "description": "Minimum time duration (days) considered non-zero.",
               "default": 0.05,
               "minimum": 0,
               "type": "number"
            },
            "demandPrecision": {
               "title": "Demand Precision",
               "description": "Minimum resource amount (units) considered non-zero.",
               "default": 0.01,
               "minimum": 0,
               "type": "number"
            },
            "massPrecision": {
               "title": "Mass Precision",
               "description": "Minimum mass (kg) considered non-zero.",
               "default": 0.01,
               "minimum": 0,
               "type": "number"
            },
            "volumePrecision": {
               "title": "Volume Precision",
               "description": "Minimum volume (m^3) considered non-zero.",
               "default": 1e-06,
               "minimum": 0,
               "type": "number"
            },
            "volumeConstrained": {
               "title": "Volume Constrained",
               "description": "True, if volume constraints are enabled.",
               "default": false,
               "type": "boolean"
            },
            "itemDiscretization": {
               "title": "Item Discretization",
               "description": "Level at which discrete resources can be aggregated.",
               "default": "None",
               "allOf": [
                  {
                     "$ref": "#/definitions/ItemDiscretizationType"
                  }
               ]
            },
            "itemAggregation": {
               "title": "Item Aggregation",
               "description": "Fraction of a unit (0 to 1 inclusive) which is aggregated to a unit demand.",
               "default": 0.0,
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            },
            "environmentConstrained": {
               "title": "Environment Constrained",
               "description": "True, if environment constraints are enabled.",
               "default": false,
               "type": "boolean"
            },
            "scavengeSpares": {
               "title": "Scavenge Spares",
               "description": "True, if spares can be scavenged from parts of decommissioned elements.",
               "default": false,
               "type": "boolean"
            },
            "detailedEva": {
               "title": "Detailed EVA",
               "description": "True, if the simulator shall model all EVA events (e.g., egress, ingress).",
               "default": true,
               "type": "boolean"
            },
            "detailedExploration": {
               "title": "Detailedexploration",
               "description": "True, if the simulator shall model all exploration events (e.g., EVAs).",
               "default": true,
               "type": "boolean"
            },
            "genericPackingFactorGas": {
               "title": "Generic Gas Packing Factor",
               "description": "Mass of packing material (generic COS 5) required per kg of gases (generic COS 203)",
               "default": 1.0,
               "minimum": 0,
               "type": "number"
            },
            "genericPackingFactorLiquid": {
               "title": "Generic Liquid Packing Factor",
               "description": "Mass of packing material (generic COS 5) required per kg of liquids (generic COS 201)",
               "default": 0.5,
               "minimum": 0,
               "type": "number"
            },
            "genericPackingFactorPressurized": {
               "title": "Generic Pressurized Packing Factor",
               "description": "Mass of packing material (generic COS 5) required per kg pressurized resources",
               "default": 0.2,
               "minimum": 0,
               "type": "number"
            },
            "genericPackingFactorUnpressurized": {
               "title": "Generic Unpressurized Packing Factor",
               "description": "Mass of packing material (generic COS 5) required per kg of unpressurized resources",
               "default": 0.6,
               "minimum": 0,
               "type": "number"
            },
            "smallGasTankMass": {
               "title": "Small Gas Tank Mass",
               "description": "Mass (kg) of small gas tank resource containers",
               "default": 10.8,
               "minimum": 0,
               "type": "number"
            },
            "smallGasTankVolume": {
               "title": "Small Gas Tank Volume",
               "description": "Volume (m^3) of small gas tank resource containers",
               "default": 0.275,
               "minimum": 0,
               "type": "number"
            },
            "smallGasTankMaxMass": {
               "title": "Small Gas Tank Max Mass",
               "description": "Mass capacity (kg) of small gas tank resource containers",
               "default": 10.0,
               "minimum": 0,
               "type": "number"
            },
            "smallGasTTankMaxVolume": {
               "title": "Small Gas Tank Max Volume",
               "description": "Volume capacity (m^3) of small gas tank resource containers",
               "default": 0.275,
               "minimum": 0,
               "type": "number"
            },
            "largeGasTankMass": {
               "title": "Large Gas Tank Mass",
               "description": "Mass (kg) of large gas tank resource containers",
               "default": 108.0,
               "minimum": 0,
               "type": "number"
            },
            "largeGasTankVolume": {
               "title": "Large Gas Tank Volume",
               "description": "Volume (m^3) of large gas tank resource containers",
               "default": 2.75,
               "minimum": 0,
               "type": "number"
            },
            "largeGasTankMaxMass": {
               "title": "Large Gas Tank Max Mass",
               "description": "Mass capacity (kg) of large gas tank resource containers",
               "default": 100.0,
               "minimum": 0,
               "type": "number"
            },
            "largeGasTankMaxVolume": {
               "title": "Large Gas Tank Max Volume",
               "description": "Volume capacity (m^3) of large gas tank resource containers",
               "default": 2.75,
               "minimum": 0,
               "type": "number"
            },
            "smallLiquidTTankMass": {
               "title": "Small Liquid Tank Mass",
               "description": "Mass (kg) of small liquid tank resource containers",
               "default": 11.4567,
               "minimum": 0,
               "type": "number"
            },
            "smallLiquidTankVolume": {
               "title": "Small Liquid Tank Volume",
               "description": "Volume (m^3) of small liquid tank resource containers",
               "default": 0.0249,
               "minimum": 0,
               "type": "number"
            },
            "smallLiquidTankMaxMass": {
               "title": "Small Liquid Tank Max Mass",
               "description": "Mass capacity (kg) of small liquid tank resource containers",
               "default": 24.9333,
               "minimum": 0,
               "type": "number"
            },
            "smallLiquidTankMaxVolume": {
               "title": "Small Liquid Tank Max Volume",
               "description": "Volume capacity (m^3) of small liquid tank resource containers",
               "default": 0.0249,
               "minimum": 0,
               "type": "number"
            },
            "largeLiquidTankMass": {
               "title": "Large Liquid Tank Mass",
               "description": "Mass (kg) of large liquid tank resource containers",
               "default": 34.37,
               "minimum": 0,
               "type": "number"
            },
            "largeLiquidTankVolume": {
               "title": "Large Liquid Tank Volume",
               "description": "Volume (m^3) of large liquid tank resource containers",
               "default": 0.0748,
               "minimum": 0,
               "type": "number"
            },
            "largeLiquidTankMaxMass": {
               "title": "Large Liquid Tank Max Mass",
               "description": "Mass capacity (kg) of large liquid tank resource containers",
               "default": 74.8,
               "minimum": 0,
               "type": "number"
            },
            "largeLiquidTankMaxVolume": {
               "title": "Large Liquid Tank Max Volume",
               "description": "Volume capacity (m^3) of large liquid tank resource containers",
               "default": 0.0748,
               "minimum": 0,
               "type": "number"
            },
            "cargoTransferBagMass": {
               "title": "Cargo Transfer Bag Mass",
               "description": "Mass (kg) of cargo transfer bag resource containers",
               "default": 0.83,
               "minimum": 0,
               "type": "number"
            },
            "cargoTransferBagVolume": {
               "title": "Cargo Transfer Bag Volume",
               "description": "Volume (m^3) of cargo transfer bag resource containers",
               "default": 0.053,
               "minimum": 0,
               "type": "number"
            },
            "cargoTransferBagMaxMass": {
               "title": "Cargo Transfer Bag Max Mass",
               "description": "Mass capacity (kg) of cargo transfer bag resource containers",
               "default": 26.8,
               "minimum": 0,
               "type": "number"
            },
            "cargoTransferBagMaxVolume": {
               "title": "Cargo Transfer Bag Max Volume",
               "description": "Volume capacity (m^3) of cargo transfer bag resource containers",
               "default": 0.049,
               "minimum": 0,
               "type": "number"
            }
         }
      }
   }
}

field configuration: Configuration = Configuration(time_precision=0.05, demand_precision=0.01, mass_precision=0.01, volume_precision=1e-06, volume_constrained=False, item_discretization=<ItemDiscretizationType.DO_NOT_DISCRETIZE: 'None'>, item_aggregation=0.0, environment_constrained=False, scavenge_spares=False, detailed_eva=True, detailed_exploration=True, generic_packing_factor_gas=1.0, generic_packing_factor_liquid=0.5, generic_packing_factor_pressurized=0.2, generic_packing_factor_unpressurized=0.6, small_gas_tank_mass=10.8, small_gas_tank_volume=0.275, small_gas_tank_max_mass=10.0, small_gas_t_tank_max_volume=0.275, large_gas_tank_mass=108.0, large_gas_tank_volume=2.75, large_gas_tank_max_mass=100.0, large_gas_tank_max_volume=2.75, small_liquid_t_tank_mass=11.4567, small_liquid_tank_volume=0.0249, small_liquid_tank_max_mass=24.9333, small_liquid_tank_max_volume=0.0249, large_liquid_tank_mass=34.37, large_liquid_tank_volume=0.0748, large_liquid_tank_max_mass=74.8, large_liquid_tank_max_volume=0.0748, cargo_transfer_bag_mass=0.83, cargo_transfer_bag_volume=0.053, cargo_transfer_bag_max_mass=26.8, cargo_transfer_bag_max_volume=0.049)
field created_by: str [Required] (alias 'createdBy')

Scenario author

field demand_models: List[Union[TimedImpulseDemandModel, RatedDemandModel, CrewConsumablesDemandModel, SparingByMassDemandModel]] = [] (alias 'demandModels')

List of demand model templates

field description: str = None

Short description

field element_templates: List[Union[Element, ResourceContainer, ElementCarrier, SurfaceVehicle, PropulsiveVehicle, HumanAgent, RoboticAgent]] = [] (alias 'elementTemplates')

List of element templates

field instantiated_elements: List[Union[InstElement, InstResourceContainer, InstElementCarrier, InstPropulsiveVehicle, InstSurfaceVehicle, InstHumanAgent, InstRoboticAgent]] = [] (alias 'instantiatedElements')

List of instantiated elements

field manifest: Optional[Manifest] = Manifest()
field mission_list: List[Mission] = [] (alias 'missionList')

List of missions

field name: str [Required]

Scenario name

field network: Network = Network(nodes=[], edges=[])

Valid locations (nodes and edges)

field resource_list: List[Union[ContinuousResource, DiscreteResource]] = [] (alias 'resourceList')

List of resources

field scenario_type: ScenarioType [Required] (alias 'scenarioType')

Scenario type

field start_date: datetime [Required] (alias 'startDate')

Time of scenario start

Network

pydantic model spacenet.schemas.Network[source]

Composition of nodes and edges.

Show JSON schema
{
   "title": "Network",
   "description": "Composition of nodes and edges.",
   "type": "object",
   "properties": {
      "nodes": {
         "title": "Nodes",
         "description": "Constituent nodes",
         "default": [],
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "$ref": "#/definitions/LagrangeNode"
               },
               {
                  "$ref": "#/definitions/OrbitalNode"
               },
               {
                  "$ref": "#/definitions/SurfaceNode"
               }
            ]
         }
      },
      "edges": {
         "title": "Edges",
         "description": "Constituent edges",
         "default": [],
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "$ref": "#/definitions/FlightEdge"
               },
               {
                  "$ref": "#/definitions/SpaceEdge"
               },
               {
                  "$ref": "#/definitions/SurfaceEdge"
               }
            ]
         }
      }
   },
   "definitions": {
      "InstElementUUID": {
         "title": "InstElementUUID",
         "description": "Instantiated element referenced by unique identifier.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            }
         }
      },
      "Body": {
         "title": "Body",
         "description": "An enumeration of planetary bodies.",
         "enum": [
            "Sun",
            "Earth",
            "Moon",
            "Mars"
         ],
         "type": "string"
      },
      "LagrangeNode": {
         "title": "LagrangeNode",
         "description": "Stable location at a Lagrange point between two bodies.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Node type",
               "default": "Lagrange Node",
               "enum": [
                  "Lagrange Node"
               ],
               "type": "string"
            },
            "body1": {
               "title": "Body 1",
               "description": "Primary planetary body",
               "default": "Earth",
               "allOf": [
                  {
                     "$ref": "#/definitions/Body"
                  }
               ]
            },
            "body2": {
               "title": "Body 2",
               "description": "Secondary Lagrange point body",
               "allOf": [
                  {
                     "$ref": "#/definitions/Body"
                  }
               ]
            },
            "lpNumber": {
               "title": "LP Number",
               "description": "Lagrange point number (1 to 5)",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            }
         },
         "required": [
            "name",
            "body2",
            "lpNumber"
         ]
      },
      "OrbitalNode": {
         "title": "OrbitalNode",
         "description": "Stable location orbiting a planetary body.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Node type",
               "default": "Orbital Node",
               "enum": [
                  "Orbital Node"
               ],
               "type": "string"
            },
            "body1": {
               "title": "Body 1",
               "description": "Primary planetary body",
               "default": "Earth",
               "allOf": [
                  {
                     "$ref": "#/definitions/Body"
                  }
               ]
            },
            "apoapsis": {
               "title": "Apoapsis",
               "description": "Major orbit radius (m)",
               "minimum": 0,
               "type": "number"
            },
            "periapsis": {
               "title": "Periapsis",
               "description": "Minor orbit radius (m)",
               "minimum": 0,
               "type": "number"
            },
            "inclination": {
               "title": "Inclination",
               "description": "Orbit inclination (decimal degrees, 0 to 180 inclusive)",
               "minimum": 0,
               "maximum": 180,
               "type": "number"
            }
         },
         "required": [
            "name",
            "apoapsis",
            "periapsis",
            "inclination"
         ]
      },
      "SurfaceNode": {
         "title": "SurfaceNode",
         "description": "Stable location on the surface of a planetary body.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Node type",
               "default": "Surface Node",
               "enum": [
                  "Surface Node"
               ],
               "type": "string"
            },
            "body1": {
               "title": "Body 1",
               "description": "Primary planetary body",
               "default": "Earth",
               "allOf": [
                  {
                     "$ref": "#/definitions/Body"
                  }
               ]
            },
            "latitude": {
               "title": "Latitude",
               "description": "Latitude (decimal degrees, -90 to 90 inclusive)",
               "minimum": -90,
               "maximum": 90,
               "type": "number"
            },
            "longitude": {
               "title": "Longitude",
               "description": "Longitude (decimal degrees, -180 to 180 inclusive)",
               "minimum": -180,
               "maximum": 180,
               "type": "number"
            }
         },
         "required": [
            "name",
            "latitude",
            "longitude"
         ]
      },
      "FlightEdge": {
         "title": "FlightEdge",
         "description": "A trajectory between two nodes that is known to be feasible for a given\ncargo (mass) and crew capacity under a specified flight architecture.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Edge type",
               "default": "Flight Edge",
               "enum": [
                  "Flight Edge"
               ],
               "type": "string"
            },
            "origin": {
               "title": "Origin Node",
               "description": "Origin node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "destination": {
               "title": "Destination Node",
               "description": "Destination node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "duration": {
               "title": "duration",
               "description": "Duration of traversal between nodes",
               "type": "number",
               "format": "time-delta"
            },
            "maxCrew": {
               "title": "Max Crew",
               "description": "Maximum number of crew to be transported",
               "minimum": 0,
               "type": "integer"
            },
            "maxCargo": {
               "title": "Max Cargo",
               "description": "Maximum cargo (kg) to be transported",
               "minimum": 0,
               "type": "number"
            }
         },
         "required": [
            "name",
            "origin",
            "destination",
            "duration",
            "maxCrew",
            "maxCargo"
         ]
      },
      "Burn": {
         "title": "Burn",
         "description": "Impulsive propulsive burn triggered at a designated time during a space\ntransport to generate a target change in velocity (delta-V).",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "time": {
               "title": "Time",
               "description": "Time relative to the start of the space transport",
               "type": "number",
               "format": "time-delta"
            },
            "deltaV": {
               "title": "Deltav",
               "description": "Change in velocity (m/s) to be achieved",
               "minimum": 0,
               "type": "number"
            }
         },
         "required": [
            "time",
            "deltaV"
         ]
      },
      "SpaceEdge": {
         "title": "SpaceEdge",
         "description": "An in-space trajectory between two nodes using a propulsive burn sequence.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Edge type",
               "default": "Space Edge",
               "enum": [
                  "Space Edge"
               ],
               "type": "string"
            },
            "origin": {
               "title": "Origin Node",
               "description": "Origin node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "destination": {
               "title": "Destination Node",
               "description": "Destination node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "duration": {
               "title": "Duration",
               "description": "Duration of space edge",
               "type": "number",
               "format": "time-delta"
            },
            "burns": {
               "title": "Burns",
               "description": "List of propulsive burns required to traverse the edge",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/Burn"
               }
            }
         },
         "required": [
            "name",
            "origin",
            "destination",
            "duration"
         ]
      },
      "SurfaceEdge": {
         "title": "SurfaceEdge",
         "description": "Surface trajectory between two surface nodes.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "name": {
               "title": "Name",
               "description": "Location name",
               "type": "string"
            },
            "description": {
               "title": "Description",
               "description": "Short description of this location.",
               "type": "string"
            },
            "contents": {
               "title": "Contents",
               "description": "List of elements (by unique identifiers) located at this location.",
               "default": [],
               "type": "array",
               "items": {
                  "$ref": "#/definitions/InstElementUUID"
               }
            },
            "type": {
               "title": "Type",
               "description": "Edge type",
               "default": "Surface Edge",
               "enum": [
                  "Surface Edge"
               ],
               "type": "string"
            },
            "origin": {
               "title": "Origin Node",
               "description": "Origin node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "destination": {
               "title": "Destination Node",
               "description": "Destination node unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "distance": {
               "title": "Distance",
               "description": "Distance (m) of surface trajectory",
               "minimum": 0,
               "type": "number"
            }
         },
         "required": [
            "name",
            "origin",
            "destination",
            "distance"
         ]
      }
   }
}

field edges: List[Union[FlightEdge, SpaceEdge, SurfaceEdge]] = []

Constituent edges

field nodes: List[Union[LagrangeNode, OrbitalNode, SurfaceNode]] = []

Constituent nodes

Manifest

pydantic model spacenet.schemas.Manifest[source]

Manifest of events that schedule resource packing and loading.

Show JSON schema
{
   "title": "Manifest",
   "description": "Manifest of events that schedule resource packing and loading.",
   "type": "object",
   "properties": {}
}

Configuration

pydantic model spacenet.schemas.Configuration[source]

Scenario configuration settings.

Show JSON schema
{
   "title": "Configuration",
   "description": "Scenario configuration settings.",
   "type": "object",
   "properties": {
      "timePrecision": {
         "title": "Time Precision",
         "description": "Minimum time duration (days) considered non-zero.",
         "default": 0.05,
         "minimum": 0,
         "type": "number"
      },
      "demandPrecision": {
         "title": "Demand Precision",
         "description": "Minimum resource amount (units) considered non-zero.",
         "default": 0.01,
         "minimum": 0,
         "type": "number"
      },
      "massPrecision": {
         "title": "Mass Precision",
         "description": "Minimum mass (kg) considered non-zero.",
         "default": 0.01,
         "minimum": 0,
         "type": "number"
      },
      "volumePrecision": {
         "title": "Volume Precision",
         "description": "Minimum volume (m^3) considered non-zero.",
         "default": 1e-06,
         "minimum": 0,
         "type": "number"
      },
      "volumeConstrained": {
         "title": "Volume Constrained",
         "description": "True, if volume constraints are enabled.",
         "default": false,
         "type": "boolean"
      },
      "itemDiscretization": {
         "title": "Item Discretization",
         "description": "Level at which discrete resources can be aggregated.",
         "default": "None",
         "allOf": [
            {
               "$ref": "#/definitions/ItemDiscretizationType"
            }
         ]
      },
      "itemAggregation": {
         "title": "Item Aggregation",
         "description": "Fraction of a unit (0 to 1 inclusive) which is aggregated to a unit demand.",
         "default": 0.0,
         "minimum": 0,
         "maximum": 1,
         "type": "number"
      },
      "environmentConstrained": {
         "title": "Environment Constrained",
         "description": "True, if environment constraints are enabled.",
         "default": false,
         "type": "boolean"
      },
      "scavengeSpares": {
         "title": "Scavenge Spares",
         "description": "True, if spares can be scavenged from parts of decommissioned elements.",
         "default": false,
         "type": "boolean"
      },
      "detailedEva": {
         "title": "Detailed EVA",
         "description": "True, if the simulator shall model all EVA events (e.g., egress, ingress).",
         "default": true,
         "type": "boolean"
      },
      "detailedExploration": {
         "title": "Detailedexploration",
         "description": "True, if the simulator shall model all exploration events (e.g., EVAs).",
         "default": true,
         "type": "boolean"
      },
      "genericPackingFactorGas": {
         "title": "Generic Gas Packing Factor",
         "description": "Mass of packing material (generic COS 5) required per kg of gases (generic COS 203)",
         "default": 1.0,
         "minimum": 0,
         "type": "number"
      },
      "genericPackingFactorLiquid": {
         "title": "Generic Liquid Packing Factor",
         "description": "Mass of packing material (generic COS 5) required per kg of liquids (generic COS 201)",
         "default": 0.5,
         "minimum": 0,
         "type": "number"
      },
      "genericPackingFactorPressurized": {
         "title": "Generic Pressurized Packing Factor",
         "description": "Mass of packing material (generic COS 5) required per kg pressurized resources",
         "default": 0.2,
         "minimum": 0,
         "type": "number"
      },
      "genericPackingFactorUnpressurized": {
         "title": "Generic Unpressurized Packing Factor",
         "description": "Mass of packing material (generic COS 5) required per kg of unpressurized resources",
         "default": 0.6,
         "minimum": 0,
         "type": "number"
      },
      "smallGasTankMass": {
         "title": "Small Gas Tank Mass",
         "description": "Mass (kg) of small gas tank resource containers",
         "default": 10.8,
         "minimum": 0,
         "type": "number"
      },
      "smallGasTankVolume": {
         "title": "Small Gas Tank Volume",
         "description": "Volume (m^3) of small gas tank resource containers",
         "default": 0.275,
         "minimum": 0,
         "type": "number"
      },
      "smallGasTankMaxMass": {
         "title": "Small Gas Tank Max Mass",
         "description": "Mass capacity (kg) of small gas tank resource containers",
         "default": 10.0,
         "minimum": 0,
         "type": "number"
      },
      "smallGasTTankMaxVolume": {
         "title": "Small Gas Tank Max Volume",
         "description": "Volume capacity (m^3) of small gas tank resource containers",
         "default": 0.275,
         "minimum": 0,
         "type": "number"
      },
      "largeGasTankMass": {
         "title": "Large Gas Tank Mass",
         "description": "Mass (kg) of large gas tank resource containers",
         "default": 108.0,
         "minimum": 0,
         "type": "number"
      },
      "largeGasTankVolume": {
         "title": "Large Gas Tank Volume",
         "description": "Volume (m^3) of large gas tank resource containers",
         "default": 2.75,
         "minimum": 0,
         "type": "number"
      },
      "largeGasTankMaxMass": {
         "title": "Large Gas Tank Max Mass",
         "description": "Mass capacity (kg) of large gas tank resource containers",
         "default": 100.0,
         "minimum": 0,
         "type": "number"
      },
      "largeGasTankMaxVolume": {
         "title": "Large Gas Tank Max Volume",
         "description": "Volume capacity (m^3) of large gas tank resource containers",
         "default": 2.75,
         "minimum": 0,
         "type": "number"
      },
      "smallLiquidTTankMass": {
         "title": "Small Liquid Tank Mass",
         "description": "Mass (kg) of small liquid tank resource containers",
         "default": 11.4567,
         "minimum": 0,
         "type": "number"
      },
      "smallLiquidTankVolume": {
         "title": "Small Liquid Tank Volume",
         "description": "Volume (m^3) of small liquid tank resource containers",
         "default": 0.0249,
         "minimum": 0,
         "type": "number"
      },
      "smallLiquidTankMaxMass": {
         "title": "Small Liquid Tank Max Mass",
         "description": "Mass capacity (kg) of small liquid tank resource containers",
         "default": 24.9333,
         "minimum": 0,
         "type": "number"
      },
      "smallLiquidTankMaxVolume": {
         "title": "Small Liquid Tank Max Volume",
         "description": "Volume capacity (m^3) of small liquid tank resource containers",
         "default": 0.0249,
         "minimum": 0,
         "type": "number"
      },
      "largeLiquidTankMass": {
         "title": "Large Liquid Tank Mass",
         "description": "Mass (kg) of large liquid tank resource containers",
         "default": 34.37,
         "minimum": 0,
         "type": "number"
      },
      "largeLiquidTankVolume": {
         "title": "Large Liquid Tank Volume",
         "description": "Volume (m^3) of large liquid tank resource containers",
         "default": 0.0748,
         "minimum": 0,
         "type": "number"
      },
      "largeLiquidTankMaxMass": {
         "title": "Large Liquid Tank Max Mass",
         "description": "Mass capacity (kg) of large liquid tank resource containers",
         "default": 74.8,
         "minimum": 0,
         "type": "number"
      },
      "largeLiquidTankMaxVolume": {
         "title": "Large Liquid Tank Max Volume",
         "description": "Volume capacity (m^3) of large liquid tank resource containers",
         "default": 0.0748,
         "minimum": 0,
         "type": "number"
      },
      "cargoTransferBagMass": {
         "title": "Cargo Transfer Bag Mass",
         "description": "Mass (kg) of cargo transfer bag resource containers",
         "default": 0.83,
         "minimum": 0,
         "type": "number"
      },
      "cargoTransferBagVolume": {
         "title": "Cargo Transfer Bag Volume",
         "description": "Volume (m^3) of cargo transfer bag resource containers",
         "default": 0.053,
         "minimum": 0,
         "type": "number"
      },
      "cargoTransferBagMaxMass": {
         "title": "Cargo Transfer Bag Max Mass",
         "description": "Mass capacity (kg) of cargo transfer bag resource containers",
         "default": 26.8,
         "minimum": 0,
         "type": "number"
      },
      "cargoTransferBagMaxVolume": {
         "title": "Cargo Transfer Bag Max Volume",
         "description": "Volume capacity (m^3) of cargo transfer bag resource containers",
         "default": 0.049,
         "minimum": 0,
         "type": "number"
      }
   },
   "definitions": {
      "ItemDiscretizationType": {
         "title": "ItemDiscretizationType",
         "description": "Enumeration of item discretization types (i.e., how discrete demands get\naggregated to unit quantities).",
         "enum": [
            "None",
            "Element",
            "Location",
            "Scenario"
         ],
         "type": "string"
      }
   }
}

field cargo_transfer_bag_mass: float = 0.83 (alias 'cargoTransferBagMass')

Mass (kg) of cargo transfer bag resource containers

Constraints
  • minimum = 0

field cargo_transfer_bag_max_mass: float = 26.8 (alias 'cargoTransferBagMaxMass')

Mass capacity (kg) of cargo transfer bag resource containers

Constraints
  • minimum = 0

field cargo_transfer_bag_max_volume: float = 0.049 (alias 'cargoTransferBagMaxVolume')

Volume capacity (m^3) of cargo transfer bag resource containers

Constraints
  • minimum = 0

field cargo_transfer_bag_volume: float = 0.053 (alias 'cargoTransferBagVolume')

Volume (m^3) of cargo transfer bag resource containers

Constraints
  • minimum = 0

field demand_precision: float = 0.01 (alias 'demandPrecision')

Minimum resource amount (units) considered non-zero.

Constraints
  • minimum = 0

field detailed_eva: bool = True (alias 'detailedEva')

True, if the simulator shall model all EVA events (e.g., egress, ingress).

field detailed_exploration: bool = True (alias 'detailedExploration')

True, if the simulator shall model all exploration events (e.g., EVAs).

field environment_constrained: bool = False (alias 'environmentConstrained')

True, if environment constraints are enabled.

field generic_packing_factor_gas: float = 1.0 (alias 'genericPackingFactorGas')

Mass of packing material (generic COS 5) required per kg of gases (generic COS 203)

Constraints
  • minimum = 0

field generic_packing_factor_liquid: float = 0.5 (alias 'genericPackingFactorLiquid')

Mass of packing material (generic COS 5) required per kg of liquids (generic COS 201)

Constraints
  • minimum = 0

field generic_packing_factor_pressurized: float = 0.2 (alias 'genericPackingFactorPressurized')

Mass of packing material (generic COS 5) required per kg pressurized resources

Constraints
  • minimum = 0

field generic_packing_factor_unpressurized: float = 0.6 (alias 'genericPackingFactorUnpressurized')

Mass of packing material (generic COS 5) required per kg of unpressurized resources

Constraints
  • minimum = 0

field item_aggregation: float = 0.0 (alias 'itemAggregation')

Fraction of a unit (0 to 1 inclusive) which is aggregated to a unit demand.

Constraints
  • minimum = 0

  • maximum = 1

field item_discretization: ItemDiscretizationType = ItemDiscretizationType.DO_NOT_DISCRETIZE (alias 'itemDiscretization')

Level at which discrete resources can be aggregated.

field large_gas_tank_mass: float = 108.0 (alias 'largeGasTankMass')

Mass (kg) of large gas tank resource containers

Constraints
  • minimum = 0

field large_gas_tank_max_mass: float = 100.0 (alias 'largeGasTankMaxMass')

Mass capacity (kg) of large gas tank resource containers

Constraints
  • minimum = 0

field large_gas_tank_max_volume: float = 2.75 (alias 'largeGasTankMaxVolume')

Volume capacity (m^3) of large gas tank resource containers

Constraints
  • minimum = 0

field large_gas_tank_volume: float = 2.75 (alias 'largeGasTankVolume')

Volume (m^3) of large gas tank resource containers

Constraints
  • minimum = 0

field large_liquid_tank_mass: float = 34.37 (alias 'largeLiquidTankMass')

Mass (kg) of large liquid tank resource containers

Constraints
  • minimum = 0

field large_liquid_tank_max_mass: float = 74.8 (alias 'largeLiquidTankMaxMass')

Mass capacity (kg) of large liquid tank resource containers

Constraints
  • minimum = 0

field large_liquid_tank_max_volume: float = 0.0748 (alias 'largeLiquidTankMaxVolume')

Volume capacity (m^3) of large liquid tank resource containers

Constraints
  • minimum = 0

field large_liquid_tank_volume: float = 0.0748 (alias 'largeLiquidTankVolume')

Volume (m^3) of large liquid tank resource containers

Constraints
  • minimum = 0

field mass_precision: float = 0.01 (alias 'massPrecision')

Minimum mass (kg) considered non-zero.

Constraints
  • minimum = 0

field scavenge_spares: bool = False (alias 'scavengeSpares')

True, if spares can be scavenged from parts of decommissioned elements.

field small_gas_t_tank_max_volume: float = 0.275 (alias 'smallGasTTankMaxVolume')

Volume capacity (m^3) of small gas tank resource containers

Constraints
  • minimum = 0

field small_gas_tank_mass: float = 10.8 (alias 'smallGasTankMass')

Mass (kg) of small gas tank resource containers

Constraints
  • minimum = 0

field small_gas_tank_max_mass: float = 10.0 (alias 'smallGasTankMaxMass')

Mass capacity (kg) of small gas tank resource containers

Constraints
  • minimum = 0

field small_gas_tank_volume: float = 0.275 (alias 'smallGasTankVolume')

Volume (m^3) of small gas tank resource containers

Constraints
  • minimum = 0

field small_liquid_t_tank_mass: float = 11.4567 (alias 'smallLiquidTTankMass')

Mass (kg) of small liquid tank resource containers

Constraints
  • minimum = 0

field small_liquid_tank_max_mass: float = 24.9333 (alias 'smallLiquidTankMaxMass')

Mass capacity (kg) of small liquid tank resource containers

Constraints
  • minimum = 0

field small_liquid_tank_max_volume: float = 0.0249 (alias 'smallLiquidTankMaxVolume')

Volume capacity (m^3) of small liquid tank resource containers

Constraints
  • minimum = 0

field small_liquid_tank_volume: float = 0.0249 (alias 'smallLiquidTankVolume')

Volume (m^3) of small liquid tank resource containers

Constraints
  • minimum = 0

field time_precision: float = 0.05 (alias 'timePrecision')

Minimum time duration (days) considered non-zero.

Constraints
  • minimum = 0

field volume_constrained: bool = False (alias 'volumeConstrained')

True, if volume constraints are enabled.

field volume_precision: float = 1e-06 (alias 'volumePrecision')

Minimum volume (m^3) considered non-zero.

Constraints
  • minimum = 0

Mission

pydantic model spacenet.schemas.Mission[source]

A mission composes a sequence of events.

Parameters
  • name (str) – mission name

  • start_date (datetime) – time of mission start

  • events ([AllEvents]) – list of events composing a mission

  • demand_models ([UUID]) – list of mission demand models (by unique identifier)

  • origin (UUID) – origin node unique identifier

  • destination (UUID) – destination node unique identifier

  • return_origin (UUID) – return origin node unique identifier (not necessary for one-way missions)

  • return_destination (UUID) – return destination node unique identifier (not necessary for one-way missions)

Show JSON schema
{
   "title": "Mission",
   "description": "A mission composes a sequence of events.\n\n:param str name: mission name\n:param datetime start_date: time of mission start\n:param [AllEvents] events: list of events composing a mission\n:param [UUID] demand_models: list of mission demand models (by unique identifier)\n:param UUID origin: origin node unique identifier\n:param UUID destination: destination node unique identifier\n:param UUID return_origin: return origin node unique identifier (not necessary for one-way missions)\n:param UUID return_destination: return destination node unique identifier (not necessary for one-way missions)",
   "type": "object",
   "properties": {
      "name": {
         "title": "Name",
         "description": "Mission name",
         "type": "string"
      },
      "startDate": {
         "title": "Start Date",
         "description": "Time of mission start",
         "type": "string",
         "format": "date-time"
      },
      "events": {
         "title": "Event ID List",
         "description": "List of events composing a mission",
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "$ref": "#/definitions/CreateElements"
               },
               {
                  "$ref": "#/definitions/MoveElements"
               },
               {
                  "$ref": "#/definitions/RemoveElements"
               },
               {
                  "$ref": "#/definitions/ReconfigureElement"
               },
               {
                  "$ref": "#/definitions/ReconfigureElements"
               },
               {
                  "$ref": "#/definitions/AddResources"
               },
               {
                  "$ref": "#/definitions/ConsumeResources"
               },
               {
                  "$ref": "#/definitions/TransferResources"
               },
               {
                  "$ref": "#/definitions/PropulsiveBurn"
               },
               {
                  "$ref": "#/definitions/CrewedEVA"
               },
               {
                  "$ref": "#/definitions/CrewedExploration"
               },
               {
                  "$ref": "#/definitions/SurfaceTransport"
               },
               {
                  "$ref": "#/definitions/FlightTransport"
               },
               {
                  "$ref": "#/definitions/SpaceTransport"
               }
            ]
         }
      },
      "demandModels": {
         "title": "Demand Models List",
         "description": "List of mission demand models (by unique identifier)",
         "type": "array",
         "items": {
            "anyOf": [
               {
                  "$ref": "#/definitions/InstTimedImpulseDemandModel"
               },
               {
                  "$ref": "#/definitions/InstRatedDemandModel"
               },
               {
                  "$ref": "#/definitions/InstCrewConsumablesDemandModel"
               }
            ]
         }
      },
      "origin": {
         "title": "Origin UUID",
         "description": "Origin node unique identifier",
         "type": "string",
         "format": "uuid"
      },
      "destination": {
         "title": "Destination UUID",
         "description": "Destination node unique identifier",
         "type": "string",
         "format": "uuid"
      },
      "returnOrigin": {
         "title": "Return Origin UUID",
         "description": "Return origin node unique identifier (not necessary for one-way missions)",
         "type": "string",
         "format": "uuid"
      },
      "returnDestination": {
         "title": "Return Destination ID",
         "description": "Return destination node unique identifier (not necessary for one-way missions)",
         "type": "string",
         "format": "uuid"
      }
   },
   "required": [
      "name",
      "startDate",
      "events",
      "demandModels",
      "origin",
      "destination"
   ],
   "definitions": {
      "CreateElements": {
         "title": "CreateElements",
         "description": "Event that creates instantiated elements inside a node, edge, or\ninstantiated element carrier.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Create Elements",
               "enum": [
                  "Create Elements"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements",
               "description": "List of instantiated elements (by unique identifier) to be created",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "container": {
               "title": "Container",
               "description": "Node, edge, or instantiated carrier where the elements are to be created",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements",
            "container"
         ]
      },
      "MoveElements": {
         "title": "MoveElements",
         "description": "Event that moves instantiated elements to a new node, edge, or instantiated\ncarrier.\n\n:param [UUID] elements: list of instantiated elements (by unique identifier) to be moved\n:param UUID container: unique identifier of the node, edge, or instantiated carrier where the elements are to be moved",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Move Elements",
               "enum": [
                  "Move Elements"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements",
               "description": "List of instantiated elements (by unique identifier) to be moved",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "container": {
               "title": "Container",
               "description": "Unique identifier of the node, edge, or instantiated carrier where the elements are to be moved",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements",
            "container"
         ]
      },
      "RemoveElements": {
         "title": "RemoveElements",
         "description": "Event that removes instantiated elements.\n\n:param [UUID] elements: list of instantiated elements (by unique identifier) to be removed",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Remove Elements",
               "enum": [
                  "Remove Elements"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements",
               "description": "List of instantiated elements (by unique identifier) to be removed",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements"
         ]
      },
      "ReconfigureElement": {
         "title": "ReconfigureElement",
         "description": "Event that changes the operational state of one instantiated element.\n\n:param UUID element: unique identifier of the instantiated element to be reconfigured\n:param SafeInt state_index: index of the new operational state",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Reconfigure Element",
               "enum": [
                  "Reconfigure Element"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "element": {
               "title": "Element",
               "description": "Unique identifier of the instantiated element to be reconfigured",
               "type": "string",
               "format": "uuid"
            },
            "stateIndex": {
               "title": "State Index",
               "description": "Index of the new operational state",
               "minimum": -1,
               "type": "integer"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "element",
            "stateIndex"
         ]
      },
      "StateType": {
         "title": "StateType",
         "description": "Enumeration of state types.",
         "enum": [
            "Active",
            "Quiescent",
            "Dormant",
            "Decommissioned"
         ],
         "type": "string"
      },
      "ReconfigureElements": {
         "title": "ReconfigureElements",
         "description": "Event that changes the operational state of multiple instantiated elements.\n\n:param [UUID] elements: list of instantiated elements (by unique identifier) to be reconfigured\n:param StateType state_type: state type to which to be reconfigured",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Reconfigure Elements",
               "enum": [
                  "Reconfigure Elements"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements",
               "description": "List of instantiated elements (by unique identifier) to be reconfigured",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "stateType": {
               "description": "State type to which to be reconfigured",
               "allOf": [
                  {
                     "$ref": "#/definitions/StateType"
                  }
               ]
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements",
            "stateType"
         ]
      },
      "ResourceAmount": {
         "title": "ResourceAmount",
         "description": "A specified amount of a resource.",
         "type": "object",
         "properties": {
            "resource": {
               "title": "Resource UUID",
               "description": "Resource unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "amount": {
               "title": "Amount",
               "description": "Fixed amount of resource (units)",
               "type": "number"
            }
         },
         "required": [
            "resource",
            "amount"
         ]
      },
      "ClassOfSupply": {
         "title": "ClassOfSupply",
         "description": "Enumeration of the ten top-level classes of supply and sub-classes of supply.",
         "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            101,
            102,
            103,
            104,
            105,
            106,
            201,
            202,
            203,
            204,
            205,
            206,
            301,
            302,
            303,
            304,
            305,
            306,
            401,
            402,
            403,
            404,
            405,
            501,
            502,
            601,
            602,
            603,
            701,
            702,
            703,
            801,
            802,
            803,
            804,
            805,
            806,
            901,
            902,
            4011,
            4012,
            8041,
            8042,
            9021,
            9022,
            9023,
            9024
         ],
         "type": "integer"
      },
      "Environment": {
         "title": "Environment",
         "description": "Enumeration of stowage environments.",
         "enum": [
            "Pressurized",
            "Unpressurized"
         ],
         "type": "string"
      },
      "GenericResourceAmount": {
         "title": "GenericResourceAmount",
         "description": "A specified amount of a generic resource.",
         "type": "object",
         "properties": {
            "classOfSupply": {
               "title": "Class of Suppoly",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "amount": {
               "title": "Amount",
               "description": "Fixed amount of resource (kg)",
               "type": "number"
            }
         },
         "required": [
            "classOfSupply",
            "environment",
            "amount"
         ]
      },
      "AddResources": {
         "title": "AddResources",
         "description": "Event that adds resources to an instantiated container element.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Add Resources",
               "enum": [
                  "Add Resources"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "resources": {
               "title": "Produced Resources",
               "description": "List of resource amounts to produce",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            },
            "container": {
               "title": "Container",
               "description": "Unique identifier of the container element",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "resources",
            "container"
         ]
      },
      "ConsumeResources": {
         "title": "ConsumeResources",
         "description": "Event that consumes resources.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Consume Resources",
               "enum": [
                  "Consume Resources"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "resources": {
               "title": "Consumed Resources",
               "description": "List of resource amounts to consume",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            },
            "source": {
               "title": "Source",
               "description": "Unique identifier of the resource-consuming element",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "resources",
            "source"
         ]
      },
      "TransferResources": {
         "title": "TransferResources",
         "description": "Event that transfers resources between resource container elements.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Transfer Resources",
               "enum": [
                  "Transfer Resources"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "resources": {
               "title": "Transferred Resources",
               "description": "list of resource amounts to transfer",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            },
            "originContainer": {
               "title": "Origin Container",
               "description": "Unique identifier of the resource-transferring origin container",
               "type": "string",
               "format": "uuid"
            },
            "destinationContainer": {
               "title": "Destination Container",
               "description": "Unique identifier of the resource-transferring destination container",
               "type": "string",
               "format": "uuid"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "resources",
            "originContainer",
            "destinationContainer"
         ]
      },
      "BurnStage": {
         "title": "BurnStage",
         "description": "Enumeration of actions during a burn/stage sequence.",
         "enum": [
            "Burn",
            "Stage"
         ]
      },
      "BurnStageItem": {
         "title": "BurnStageItem",
         "description": "Object schema for element-specific actions during a burn/stage sequence.\n\n:param UUID element: unique identifier of the instantiated element performing the action\n:param BurnStage: action to be performed",
         "type": "object",
         "properties": {
            "element": {
               "title": "Element",
               "description": "Unique identifier of the instantiated element performing the action",
               "type": "string",
               "format": "uuid"
            },
            "type": {
               "title": "Burn/Stage",
               "description": "Action to be performed",
               "allOf": [
                  {
                     "$ref": "#/definitions/BurnStage"
                  }
               ]
            }
         },
         "required": [
            "element",
            "type"
         ]
      },
      "PropulsiveBurn": {
         "title": "PropulsiveBurn",
         "description": "Event that represents an impulsive propulsive maneuver composed of burn\n(fire engine) and stage (discard component) actions.\n\n:param [UUID] elements: list of instantiated elements (by unique identifier) to participate\n:param UUID burn: unique identifier of the burn to achieve\n:param [BurnStageItem] burn_stage_sequence: list of the actions to be sequenced",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Propulsive Burn",
               "enum": [
                  "Propulsive Burn"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "Elements List",
               "description": "List of instantiated elements (by unique identifier) to participate.",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "burn": {
               "title": "Burn",
               "description": "Unique identifier of the burn to achieve",
               "type": "string",
               "format": "uuid"
            },
            "burnStageSequence": {
               "title": "Burn/Stage Sequence",
               "description": "List of the burns and stages to be performed in the event.",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/BurnStageItem"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "elements",
            "burn",
            "burnStageSequence"
         ]
      },
      "ElementState": {
         "title": "ElementState",
         "description": "Specification of an element state.",
         "type": "object",
         "properties": {
            "element": {
               "title": "element",
               "description": "Unique identifier of element",
               "type": "string",
               "format": "uuid"
            },
            "stateIndex": {
               "title": "State Index",
               "description": "Index of the referenced state (-1 if none)",
               "minimum": -1,
               "type": "integer"
            }
         },
         "required": [
            "element",
            "stateIndex"
         ]
      },
      "CrewedEVA": {
         "title": "CrewedEVA",
         "description": "Event for a crewed extravehicular activity.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Crewed EVA",
               "enum": [
                  "Crewed EVA"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "evaDuration": {
               "title": "EVA Duration",
               "description": "Duration of the extra-vehicular activity",
               "type": "number",
               "format": "time-delta"
            },
            "vehicle": {
               "title": "Crew Vehicle",
               "description": "Unique identifier of the crew habitat from which crew will egress and ingress",
               "type": "string",
               "format": "uuid"
            },
            "elementStates": {
               "title": "Elementstates",
               "description": "List of reconfiguration states for each participating element",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/ElementState"
               }
            },
            "additionalDemands": {
               "title": "Additional Demands",
               "description": "List of additional resource amounts to be consumed",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "evaDuration",
            "vehicle",
            "elementStates",
            "additionalDemands"
         ]
      },
      "CrewedExploration": {
         "title": "CrewedExploration",
         "description": "Event for a crewed exploration period that consists of regularly-scheduled\nextra-vehicular activities.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Crewed Exploration",
               "enum": [
                  "Crewed Exploration"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "evaDuration": {
               "title": "EVA Duration",
               "description": "Duration of the extra-vehicular activity",
               "type": "number",
               "format": "time-delta"
            },
            "duration": {
               "title": "Duration",
               "description": "Duration of the exploration",
               "type": "number",
               "format": "time-delta"
            },
            "vehicle": {
               "title": "Crew Vehicle",
               "description": "Unique identifier of the crew habitat from which crew will egress and ingress",
               "type": "string",
               "format": "uuid"
            },
            "evaPerWeek": {
               "title": "EVAs per week",
               "description": "Number of extra-vehiclular activitys to be performed per week",
               "minimum": 0,
               "type": "integer"
            },
            "elementStates": {
               "title": "Elementstates",
               "description": "List of reconfiguration states for each participating element",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/ElementState"
               }
            },
            "additionalDemands": {
               "title": "Additional Demands",
               "description": "List of additional resource amounts to be consumed",
               "default": [],
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "evaDuration",
            "duration",
            "vehicle",
            "evaPerWeek",
            "elementStates"
         ]
      },
      "SurfaceTransport": {
         "title": "SurfaceTransport",
         "description": "Event that transports instantiated elements along a surface edge.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Surface Transport",
               "enum": [
                  "Surface Transport"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "edge": {
               "title": "Edge",
               "description": "Edge (by unique identifier) along which this transport traverses",
               "type": "string",
               "format": "uuid"
            },
            "vehicle": {
               "title": "Surface Vehicle",
               "description": "Surface vehicle (by unique identifier) to transport",
               "type": "string",
               "format": "uuid"
            },
            "transportState": {
               "title": "Transport State Index",
               "description": "Index of the transport state",
               "minimum": -1,
               "type": "integer"
            },
            "speed": {
               "title": "Transport Speed",
               "description": "Transport speed (m/s)",
               "exclusiveMinimum": 0,
               "type": "number"
            },
            "dutyCycle": {
               "title": "Duty Cycle",
               "description": "Fraction of the time the vehicle is moving at the transport speed",
               "default": 1,
               "exclusiveMinimum": 0,
               "maximum": 1,
               "type": "number"
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "edge",
            "vehicle",
            "speed"
         ]
      },
      "FlightTransport": {
         "title": "FlightTransport",
         "description": "Event that transports instantiated elements along a flight edge.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Flight Transport",
               "enum": [
                  "Flight Transport"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "edge": {
               "title": "Edge",
               "description": "Edge (by unique identifier) along which this transport traverses",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "List of Elements",
               "description": "List of instantiated elements (by unique identifier) to transport",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "edge",
            "elements"
         ]
      },
      "BurnStageSequence": {
         "title": "BurnStageSequence",
         "description": "A sequence of burn/stage events.",
         "type": "object",
         "properties": {
            "burn": {
               "title": "Burn",
               "description": "UUID of burn",
               "type": "string",
               "format": "uuid"
            },
            "actions": {
               "title": "Actions",
               "description": "List of the burns and stages to be performed in the event",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/BurnStageItem"
               }
            }
         },
         "required": [
            "burn",
            "actions"
         ]
      },
      "SpaceTransport": {
         "title": "SpaceTransport",
         "description": "Event that transports instantiated elements along a space edge.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Event name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Event type",
               "default": "Space Transport",
               "enum": [
                  "Space Transport"
               ],
               "type": "string"
            },
            "priority": {
               "title": "Priority",
               "description": "Prioritization for coincident events",
               "minimum": 1,
               "maximum": 5,
               "type": "integer"
            },
            "missionTime": {
               "title": "Mission Time",
               "description": "Event time relative to the start of the mission",
               "type": "number",
               "format": "time-delta"
            },
            "location": {
               "title": "Location",
               "description": "Event location unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "edge": {
               "title": "Edge",
               "description": "Edge (by unique identifier) along which this transport traverses",
               "type": "string",
               "format": "uuid"
            },
            "elements": {
               "title": "List of Elements",
               "description": "List of instantiated elements (by unique identifier) to transport",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "uuid"
               }
            },
            "burnStageSequence": {
               "title": "Burn Sequence",
               "description": "List of burn-stage sequences to perform",
               "type": "array",
               "items": {
                  "$ref": "#/definitions/BurnStageSequence"
               }
            }
         },
         "required": [
            "name",
            "priority",
            "missionTime",
            "location",
            "edge",
            "elements",
            "burnStageSequence"
         ]
      },
      "InstTimedImpulseDemandModel": {
         "title": "InstTimedImpulseDemandModel",
         "description": "Instantiated demand model that generates an impulsive demand for resources.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Instantiated demand model name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Timed Impulse",
               "enum": [
                  "Timed Impulse"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element demand model template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "demands": {
               "title": "Demands",
               "description": "List of resource amounts to be demanded",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmount"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmount"
                     }
                  ]
               }
            }
         },
         "required": [
            "name",
            "templateId"
         ]
      },
      "ResourceAmountRate": {
         "title": "ResourceAmountRate",
         "description": "A specified amount of a resource type.",
         "type": "object",
         "properties": {
            "resource": {
               "title": "Resource UUID",
               "description": "Resource unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "rate": {
               "title": "Rate",
               "description": "Time-rate of resource (units/day)",
               "type": "number"
            }
         },
         "required": [
            "resource",
            "rate"
         ]
      },
      "GenericResourceAmountRate": {
         "title": "GenericResourceAmountRate",
         "description": "A specified amount of a generic resource.",
         "type": "object",
         "properties": {
            "classOfSupply": {
               "title": "Class of Suppoly",
               "description": "Class of supply",
               "allOf": [
                  {
                     "$ref": "#/definitions/ClassOfSupply"
                  }
               ]
            },
            "environment": {
               "title": "Environment",
               "description": "Required stowage environment",
               "allOf": [
                  {
                     "$ref": "#/definitions/Environment"
                  }
               ]
            },
            "rate": {
               "title": "Rate",
               "description": "Time-rate of resource (kg/day)",
               "type": "number"
            }
         },
         "required": [
            "classOfSupply",
            "environment",
            "rate"
         ]
      },
      "InstRatedDemandModel": {
         "title": "InstRatedDemandModel",
         "description": "Instantiated demand model that generates a constant time rate demand for resources.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Instantiated demand model name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Rated",
               "enum": [
                  "Rated"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Element demand model template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "demands": {
               "title": "Demands",
               "description": "List of resource amount rates to be demanded",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "$ref": "#/definitions/ResourceAmountRate"
                     },
                     {
                        "$ref": "#/definitions/GenericResourceAmountRate"
                     }
                  ]
               }
            }
         },
         "required": [
            "name",
            "templateId"
         ]
      },
      "InstCrewConsumablesDemandModel": {
         "title": "InstCrewConsumablesDemandModel",
         "description": "Instantiated mission demand model that generates demands for crew consumables.",
         "type": "object",
         "properties": {
            "name": {
               "title": "Name",
               "description": "Instantiated demand model name",
               "type": "string"
            },
            "type": {
               "title": "Type",
               "description": "Demand model type",
               "default": "Crew Consumables",
               "enum": [
                  "Crew Consumables"
               ],
               "type": "string"
            },
            "templateId": {
               "title": "Templateid",
               "description": "Mission demand model template unique identifier",
               "type": "string",
               "format": "uuid"
            },
            "reservesDuration": {
               "title": "Reserves Duration",
               "description": "Duration (days) of reserve resources",
               "minimum": 0,
               "type": "number"
            },
            "waterRecoveryRate": {
               "title": "Water Recovery Rate",
               "description": "Rate (between 0 and 1) of water recovery",
               "minimum": 0,
               "maximum": 1,
               "type": "number"
            },
            "clothingLifetime": {
               "title": "Clothing Lifetime",
               "description": "Duration (days) of clothing lifetime",
               "minimum": 0,
               "type": "number"
            },
            "transitDemandsOmitted": {
               "title": "Transit Demand Omitted",
               "description": "True, if transit demands shall be omitted",
               "type": "boolean"
            },
            "waterRate": {
               "title": "Water Rate",
               "description": "Rate (kg/person/day) of water (generic COS 201) demands",
               "type": "number"
            },
            "evaWaterRate": {
               "title": "EVA Water Rate",
               "description": "Rate (kg/person/hour) of water (generic COS 201) demands during extra-vehicular activity",
               "type": "number"
            },
            "foodSupportRate": {
               "title": "Food Support Rate",
               "description": "Rate (kg/person/day) of food support equipment (generic COS 202) demands",
               "type": "number"
            },
            "ambientFoodRate": {
               "title": "Ambient Food Rate",
               "description": "Rate (kg/person/day) of ambient food (generic COS 202) demands",
               "type": "number"
            },
            "rfFoodRate": {
               "title": "Rf Food Rate",
               "description": "Rate (kg/person/day) of RF food (generic COS 202) demands",
               "type": "number"
            },
            "oxygenRate": {
               "title": "Oxygen Rate",
               "description": "Rate (kg/person/day) of oxygen (generic COS 203) demands",
               "type": "number"
            },
            "evaOxygenRate": {
               "title": "EVA Oxygen Rate",
               "description": "Rate (kg/person/hour) of oxygen (generic COS 203) demands during extra-vehicular activity",
               "type": "number"
            },
            "nitrogenRate": {
               "title": "Nitrogen Rate",
               "description": "Rate (kg/person/day) of nitrogen (generic COS 203) demands",
               "type": "number"
            },
            "hygieneRate": {
               "title": "Hygiene Rate",
               "description": "Rate (kg/person/day) of hygeine (generic COS 204) demands",
               "type": "number"
            },
            "hygieneKit": {
               "title": "Hygiene Kit",
               "description": "Amount (kg/person) of hygeine kit (generic COS 204) demands",
               "type": "number"
            },
            "clothingRate": {
               "title": "Clothing Rate",
               "description": "Rate (kg/person/day) of clothing (generic COS 205) demands",
               "type": "number"
            },
            "personalItems": {
               "title": "Personal Items",
               "description": "Amount (kg/person) of personal item (generic COS 206) demands",
               "type": "number"
            },
            "officeEquipment": {
               "title": "Office Equipment",
               "description": "Amount (kg/person) of office equipment (generic COS 301) demands",
               "type": "number"
            },
            "evaSuit": {
               "title": "EVA Suit",
               "description": "Amount (kg/person) of extra-vehicular activity suit (generic COS 302) demands",
               "type": "number"
            },
            "evaLithiumHydroxide": {
               "title": "EVA Lithium Hydroxide",
               "description": "Rate (kg/person/hour) of lithium hydroxide (generic COS 302) demands",
               "type": "number"
            },
            "healthEquipment": {
               "title": "Health Equipment",
               "description": "Amount (kg) of health equipment (generic COS 303) demands",
               "type": "number"
            },
            "healthConsumables": {
               "title": "Health Consumables",
               "description": "Amount (kg/person) of health consumables (generic COS 303) demands",
               "type": "number"
            },
            "safetyEquipment": {
               "title": "Safety Equipment",
               "description": "Amount (kg) of safety equipment (generic COS 304) demands",
               "type": "number"
            },
            "commEquipment": {
               "title": "Comm Equipment",
               "description": "Amount (kg) of communication equipment (generic COS 305) demands",
               "type": "number"
            },
            "computerEquipment": {
               "title": "Computer Equipment",
               "description": "Amount (kg/person) of computer equipment (generic COS 306) demands",
               "type": "number"
            },
            "trashBagRate": {
               "title": "Trash Bag Rate",
               "description": "Rate (kg/person/day) of trash bag (generic COS 701) demands",
               "type": "number"
            },
            "wasteContainmentRate": {
               "title": "Waste Containment Rate",
               "description": "Rate (kg/person/day) of waste containment (generic COS 702) demands",
               "type": "number"
            }
         },
         "required": [
            "name",
            "templateId"
         ]
      }
   }
}

field demand_models: List[Union[InstTimedImpulseDemandModel, InstRatedDemandModel, InstCrewConsumablesDemandModel]] [Required] (alias 'demandModels')

List of mission demand models (by unique identifier)

field destination: UUID [Required]

Destination node unique identifier

field events: List[Union[CreateElements, MoveElements, RemoveElements, ReconfigureElement, ReconfigureElements, AddResources, ConsumeResources, TransferResources, PropulsiveBurn, CrewedEVA, CrewedExploration, SurfaceTransport, FlightTransport, SpaceTransport]] [Required]

List of events composing a mission

field name: str [Required]

Mission name

field origin: UUID [Required]

Origin node unique identifier

field return_destination: Optional[UUID] = None (alias 'returnDestination')

Return destination node unique identifier (not necessary for one-way missions)

field return_origin: Optional[UUID] = None (alias 'returnOrigin')

Return origin node unique identifier (not necessary for one-way missions)

field start_date: datetime [Required] (alias 'startDate')

Time of mission start