[
  {
    "path": ".github/workflows/validate.yml",
    "content": "name: Validate OpenAPI Spec\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  generate:\n    runs-on: ubuntu-latest\n    name: Generate Clients\n    steps:\n    - uses: actions/checkout@v2\n\n    - name: Typescript Axios\n      uses: openapi-generators/openapitools-generator-action@v1\n      with:\n        generator: typescript-axios\n        openapi-file: ./reference/SpaceTraders.json\n\n    - name: Dart\n      uses: openapi-generators/openapitools-generator-action@v1\n      with:\n        generator: dart\n        openapi-file: ./reference/SpaceTraders.json\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.stoplight/styleguide.json\n"
  },
  {
    "path": ".spectral.mjs",
    "content": "import ruleset from \"https://stoplight.io/api/v1/projects/cHJqOjE3NTU4OQ/spectral.js?branch=main&token=e4f4ffbe-f8ad-4829-b09f-cf2703afac49\";\nexport default {extends: ruleset};\n"
  },
  {
    "path": ".stoplight.json",
    "content": "{\n  \"exclude\": [],\n  \"formats\": {\n    \"openapi\": {\n      \"rootDir\": \"reference\",\n      \"include\": [\"**\"]\n    },\n    \"json_schema\": {\n      \"rootDir\": \"models\",\n      \"include\": [\"**\"]\n    },\n    \"markdown\": {\n      \"rootDir\": \"docs\"\n    },\n    \"image\": {\n      \"rootDir\": \"assets/images\"\n    }\n  }\n}\n"
  },
  {
    "path": "README.md",
    "content": "# Getting Started\n\nSpaceTraders is an API-based game where you acquire and manage a fleet of ships to explore, trade, and fight your way across the galaxy.\n\n## Quicklinks\n\nUse the links below to get started with SpaceTraders.\n\n- [Main Website](https://spacetraders.io) - Learn more about the game and the team behind it.\n- [Documentation](https://docs.spacetraders.io) - Read the full documentation for the SpaceTraders API.\n- [Quickstart](https://docs.spacetraders.io/quickstart/new-game) - Try out the SpaceTraders API directly in your browser.\n- [Game concepts](https://docs.spacetraders.io/game-concepts/agents-and-factions) - Learn about core game mechanics such as fleets, factions and systems.\n- [API guide](https://docs.spacetraders.io/api-guide/open-api-spec) - Learn the fundamentals of working with the SpaceTraders API.\n\n## Overview\n\nSpaceTraders is an open-universe game and learning platform that offers a set of HTTP endpoints to control a fleet of ships and explore a multiplayer universe.\n\nThe API is documented using [OpenAPI](https://github.com/SpaceTradersAPI/api-docs) and Stoplight Studio. You can send requests directly from Stoplight Studio or use the [interactive documentation](https://docs.spacetraders.io/quickstart/new-game) to try out the API.\n\nUnlike a traditional game, SpaceTraders does not have a first-party client or app to play the game. Instead, you can use the API to build your own client, write a script to automate your ships, or try an app built by the community.\n\nWe have a [Discord channel](https://discord.com/invite/jh6zurdWk5) where you can share your projects, ask questions, and get help from other players.\n\n## Gameplay\n\nThe goal of the game is to manage a fleet of ships as you explore the universe and try to turn a profit. You can trade goods across systems, mine asteroids for valuable ores, or take on faction contracts to earn credits and reputation.\n\nAll players operate in the same universe, so you can compete with others to earn the most credits or chart the most systems. The game is currently in alpha, and we plan to add player-vs-player combat, bounty hunting, and more.\n\n## Roadmap\n\nWe plan to work toward the following features and capabilities. If you have any feedback or suggestions, please share them in our [Discord channel](https://discord.com/invite/jh6zurdWk5).\n\n- scavenge derelict ships for valuable cargo and spare parts\n- create webhooks to receive notifications when events occur in the game\n- search for ancient artifacts on distant planets to sell for profit\n- send envoys to meet new factions and generate contracts or unique trade deals\n- private game worlds deployed on a separate server for testing or playing with friends\n- take on bounties to earn credits or pirate other players trade routes\n- a GraphQL API for querying systems and waypoints\n- deploy envoys to track rumors and generate contracts\n\n---\n\n## Next steps\n\nThe SpaceTraders API is an excellent platform to learn a new programming language, test a new framework, or stretch your skills in a fun and meaningful way.\n\nIf you are new to SpaceTraders, you should try our interactive [quickstart guide](https://docs.spacetraders.io/quickstart/new-game) which will walk you through basic API requests in just a few minutes.\n\nIf you're looking for some project inspiration, here are some ideas to get you started:\n\n- create a script to mine asteroids and automate trade routes\n- build a web or mobile app to manage your fleet of ships\n- track and share market price data with other players\n- generate an SDK from the OpenAPI spec and publish it\n- create a Discord bot for others players to use\n\nAnd finally, if you find an issue and want to report it, please open an issue on our [GitHub repository](https://github.com/SpaceTradersAPI/api-docs) or share it in our [Discord channel](https://discord.com/invite/jh6zurdWk5).\n\n## Donating\n\nBy supporting us, you’re not just helping keep the servers running, but potentially helping thousands of fellow developers learn and exercise their programming skills.\nWe’re grateful for your support, and together, we’re excited to see the full potential of the API!\nThank you for being a part of this journey.\n\nAdditionally:\n- We will make sure that we reserve your callsign between alpha/beta resets\n- Vote for your most desired features\n- Custom Role in Discord\n\n[Donate with Stripe Link](https://donate.stripe.com/28o29m5vxcri6OccMM)\n"
  },
  {
    "path": "docs/overview.md",
    "content": "# Getting Started\n\nSpaceTraders is an API-based game where you acquire and manage a fleet of ships to explore, trade, and fight your way across the galaxy.\n\n## Quicklinks\n\nUse the links below to get started with SpaceTraders.\n\n- [Main Website](https://spacetraders.io) - Learn more about the game and the team behind it.\n- [Documentation](https://docs.spacetraders.io) - Read the full documentation for the SpaceTraders API.\n- [Quickstart](https://docs.spacetraders.io/quickstart/new-game) - Try out the SpaceTraders API directly in your browser.\n- [Game concepts](https://docs.spacetraders.io/game-concepts/agents-and-factions) - Learn about core game mechanics such as fleets, factions and systems.\n- [API guide](https://docs.spacetraders.io/api-guide/open-api-spec) - Learn the fundamentals of working with the SpaceTraders API.\n\n## Overview\n\nSpaceTraders is an open-universe game and learning platform that offers a set of HTTP endpoints to control a fleet of ships and explore a multiplayer universe.\n\nThe API is documented using [OpenAPI](https://github.com/SpaceTradersAPI/api-docs) and Stoplight Studio. You can send requests directly from Stoplight Studio or use the [interactive documentation](https://docs.spacetraders.io/quickstart/new-game) to try out the API.\n\nUnlike a traditional game, SpaceTraders does not have a first-party client or app to play the game. Instead, you can use the API to build your own client, write a script to automate your ships, or try an app built by the community.\n\nWe have a [Discord channel](https://discord.com/invite/jh6zurdWk5) where you can share your projects, ask questions, and get help from other players.\n\n## Gameplay\n\nThe goal of the game is to manage a fleet of ships as you explore the universe and try to turn a profit. You can trade goods across systems, mine asteroids for valuable ores, or take on faction contracts to earn credits and reputation.\n\nAll players operate in the same universe, so you can compete with others to earn the most credits or chart the most systems. The game is currently in alpha, and we plan to add player-vs-player combat, bounty hunting, and more.\n\n## Roadmap\n\nWe plan to work toward the following features and capabilities. If you have any feedback or suggestions, please share them in our [Discord channel](https://discord.com/invite/jh6zurdWk5).\n\n- scavenge derelict ships for valuable cargo and spare parts\n- create webhooks to receive notifications when events occur in the game\n- search for ancient artifacts on distant planets to sell for profit\n- send envoys to meet new factions and generate contracts or unique trade deals\n- private game worlds deployed on a separate server for testing or playing with friends\n- take on bounties to earn credits or pirate other players trade routes\n- a GraphQL API for querying systems and waypoints\n- deploy envoys to track rumors and generate contracts\n\n---\n\n## Next steps\n\nThe SpaceTraders API is an excellent platform to learn a new programming language, test a new framework, or stretch your skills in a fun and meaningful way.\n\nIf you are new to SpaceTraders, you should try our interactive [quickstart guide](https://docs.spacetraders.io/quickstart/new-game) which will walk you through basic API requests in just a few minutes.\n\nIf you're looking for some project inspiration, here are some ideas to get you started:\n\n- create a script to mine asteroids and automate trade routes\n- build a web or mobile app to manage your fleet of ships\n- track and share market price data with other players\n- generate an SDK from the OpenAPI spec and publish it\n- create a Discord bot for others players to use\n\nAnd finally, if you find an issue and want to report it, please open an issue on our [GitHub repository](https://github.com/SpaceTradersAPI/api-docs) or share it in our [Discord channel](https://discord.com/invite/jh6zurdWk5).\n"
  },
  {
    "path": "models/ActivityLevel.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The activity level of a trade good. If the good is an import, this represents how strong consumption is. If the good is an export, this represents how strong the production is for the good. When activity is strong, consumption or production is near maximum capacity. When activity is weak, consumption or production is near minimum capacity.\",\n  \"enum\": [\"WEAK\", \"GROWING\", \"STRONG\", \"RESTRICTED\"],\n  \"x-enumDescriptions\": {\n    \"WEAK\": \"Indicates very low production or consumption activity. This may suggest a surplus in supply or a lack of demand.\",\n    \"GROWING\": \"Represents increasing activity in production or consumption, suggesting a developing market.\",\n    \"STRONG\": \"Signifies high levels of production or consumption. Indicates a healthy and active market with high demand or supply.\",\n    \"RESTRICTED\": \"Reflects a bottleneck in production or consumption, possibly due to a lack of supply or demand in related goods.\"\n  }\n}\n"
  },
  {
    "path": "models/Agent.json",
    "content": "{\n  \"description\": \"Agent details.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"accountId\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"Account ID that is tied to this agent. Only included on your own agent.\"\n    },\n    \"symbol\": {\n      \"type\": \"string\",\n      \"minLength\": 3,\n      \"maxLength\": 14,\n      \"description\": \"Symbol of the agent.\"\n    },\n    \"headquarters\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The headquarters of the agent.\"\n    },\n    \"credits\": {\n      \"type\": \"integer\",\n      \"format\": \"int64\",\n      \"description\": \"The number of credits the agent has available. Credits can be negative if funds have been overdrawn.\"\n    },\n    \"startingFaction\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The faction the agent started with.\"\n    },\n    \"shipCount\": {\n      \"type\": \"integer\",\n      \"description\": \"How many ships are owned by the agent.\"\n    }\n  },\n  \"required\": [\"symbol\", \"headquarters\", \"credits\", \"startingFaction\", \"shipCount\"]\n}\n"
  },
  {
    "path": "models/Chart.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The chart of a system or waypoint, which makes the location visible to other agents.\",\n  \"properties\": {\n    \"waypointSymbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"submittedBy\": {\n      \"type\": \"string\",\n      \"description\": \"The agent that submitted the chart for this waypoint.\"\n    },\n    \"submittedOn\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The time the chart for this waypoint was submitted.\"\n    }\n  }\n}\n"
  },
  {
    "path": "models/ConnectedSystem.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the system.\"\n    },\n    \"sectorSymbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The sector of this system.\"\n    },\n    \"type\": {\n      \"$ref\": \"./SystemType.json\"\n    },\n    \"factionSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the faction that owns the connected jump gate in the system.\"\n    },\n    \"x\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the x axis.\"\n    },\n    \"y\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the y axis.\"\n    },\n    \"distance\": {\n      \"type\": \"integer\",\n      \"description\": \"The distance of this system to the connected Jump Gate.\"\n    }\n  },\n  \"required\": [\"symbol\", \"sectorSymbol\", \"type\", \"x\", \"y\", \"distance\"]\n}\n"
  },
  {
    "path": "models/Construction.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The construction details of a waypoint.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the waypoint.\"\n    },\n    \"materials\": {\n      \"type\": \"array\",\n      \"description\": \"The materials required to construct the waypoint.\",\n      \"items\": {\n        \"$ref\": \"./ConstructionMaterial.json\"\n      }\n    },\n    \"isComplete\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether the waypoint has been constructed.\"\n    }\n  },\n  \"required\": [\"symbol\", \"materials\", \"isComplete\"]\n}\n"
  },
  {
    "path": "models/ConstructionMaterial.json",
    "content": "{\n  \"description\": \"The details of the required construction materials for a given waypoint under construction.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"tradeSymbol\": {\n      \"$ref\": \"./TradeSymbol.json\"\n    },\n    \"required\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of units required.\"\n    },\n    \"fulfilled\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of units fulfilled toward the required amount.\"\n    }\n  },\n  \"required\": [\"tradeSymbol\", \"required\", \"fulfilled\"]\n}\n"
  },
  {
    "path": "models/Contract.json",
    "content": "{\n  \"description\": \"Contract details.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"ID of the contract.\"\n    },\n    \"factionSymbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the faction that this contract is for.\"\n    },\n    \"type\": {\n      \"type\": \"string\",\n      \"enum\": [\"PROCUREMENT\", \"TRANSPORT\", \"SHUTTLE\"],\n      \"description\": \"Type of contract.\"\n    },\n    \"terms\": {\n      \"$ref\": \"./ContractTerms.json\"\n    },\n    \"accepted\": {\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"description\": \"Whether the contract has been accepted by the agent\"\n    },\n    \"fulfilled\": {\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"description\": \"Whether the contract has been fulfilled\"\n    },\n    \"expiration\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"Deprecated in favor of deadlineToAccept\",\n      \"deprecated\": true\n    },\n    \"deadlineToAccept\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The time at which the contract is no longer available to be accepted\"\n    }\n  },\n  \"required\": [\"id\", \"factionSymbol\", \"type\", \"terms\", \"accepted\", \"fulfilled\", \"expiration\"]\n}\n"
  },
  {
    "path": "models/ContractDeliverGood.json",
    "content": "{\n  \"description\": \"The details of a delivery contract. Includes the type of good, units needed, and the destination.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"tradeSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the trade good to deliver.\",\n      \"minLength\": 1\n    },\n    \"destinationSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The destination where goods need to be delivered.\",\n      \"minLength\": 1\n    },\n    \"unitsRequired\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of units that need to be delivered on this contract.\"\n    },\n    \"unitsFulfilled\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of units fulfilled on this contract.\"\n    }\n  },\n  \"required\": [\"tradeSymbol\", \"destinationSymbol\", \"unitsRequired\", \"unitsFulfilled\"]\n}\n"
  },
  {
    "path": "models/ContractPayment.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"Payments for the contract.\",\n  \"properties\": {\n    \"onAccepted\": {\n      \"type\": \"integer\",\n      \"description\": \"The amount of credits received up front for accepting the contract.\"\n    },\n    \"onFulfilled\": {\n      \"type\": \"integer\",\n      \"description\": \"The amount of credits received when the contract is fulfilled.\"\n    }\n  },\n  \"required\": [\"onAccepted\", \"onFulfilled\"]\n}\n"
  },
  {
    "path": "models/ContractTerms.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The terms to fulfill the contract.\",\n  \"properties\": {\n    \"deadline\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The deadline for the contract.\"\n    },\n    \"payment\": {\n      \"$ref\": \"./ContractPayment.json\"\n    },\n    \"deliver\": {\n      \"type\": \"array\",\n      \"description\": \"The cargo that needs to be delivered to fulfill the contract.\",\n      \"items\": {\n        \"$ref\": \"./ContractDeliverGood.json\"\n      }\n    }\n  },\n  \"required\": [\"deadline\", \"payment\"]\n}\n"
  },
  {
    "path": "models/Cooldown.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"A cooldown is a period of time in which a ship cannot perform certain actions.\",\n  \"properties\": {\n    \"shipSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the ship that is on cooldown\",\n      \"minLength\": 1\n    },\n    \"totalSeconds\": {\n      \"type\": \"integer\",\n      \"description\": \"The total duration of the cooldown in seconds\",\n      \"minimum\": 0\n    },\n    \"remainingSeconds\": {\n      \"type\": \"integer\",\n      \"description\": \"The remaining duration of the cooldown in seconds\",\n      \"minimum\": 0\n    },\n    \"expiration\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The date and time when the cooldown expires in ISO 8601 format\"\n    }\n  },\n  \"required\": [\"shipSymbol\", \"totalSeconds\", \"remainingSeconds\"]\n}\n"
  },
  {
    "path": "models/Extraction.json",
    "content": "{\n  \"description\": \"Extraction details.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"shipSymbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"Symbol of the ship that executed the extraction.\"\n    },\n    \"yield\": {\n      \"$ref\": \"./ExtractionYield.json\"\n    }\n  },\n  \"required\": [\"shipSymbol\", \"yield\"]\n}\n"
  },
  {
    "path": "models/ExtractionYield.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"A yield from the extraction operation.\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./TradeSymbol.json\"\n    },\n    \"units\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of units extracted that were placed into the ship's cargo hold.\"\n    }\n  },\n  \"required\": [\"symbol\", \"units\"]\n}\n"
  },
  {
    "path": "models/Faction.json",
    "content": "{\n  \"description\": \"Faction details.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./FactionSymbol.json\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"Name of the faction.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"Description of the faction.\"\n    },\n    \"headquarters\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The waypoint in which the faction's HQ is located in.\"\n    },\n    \"traits\": {\n      \"type\": \"array\",\n      \"description\": \"List of traits that define this faction.\",\n      \"items\": {\n        \"$ref\": \"./FactionTrait.json\"\n      }\n    },\n    \"isRecruiting\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether or not the faction is currently recruiting new agents.\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"description\", \"traits\", \"isRecruiting\"]\n}\n"
  },
  {
    "path": "models/FactionSymbol.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The symbol of the faction.\",\n  \"minLength\": 1,\n  \"enum\": [\n    \"COSMIC\",\n    \"VOID\",\n    \"GALACTIC\",\n    \"QUANTUM\",\n    \"DOMINION\",\n    \"ASTRO\",\n    \"CORSAIRS\",\n    \"OBSIDIAN\",\n    \"AEGIS\",\n    \"UNITED\",\n    \"SOLITARY\",\n    \"COBALT\",\n    \"OMEGA\",\n    \"ECHO\",\n    \"LORDS\",\n    \"CULT\",\n    \"ANCIENTS\",\n    \"SHADOW\",\n    \"ETHEREAL\"\n  ]\n}\n"
  },
  {
    "path": "models/FactionTrait.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./FactionTraitSymbol.json\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The name of the trait.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"A description of the trait.\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"description\"]\n}\n"
  },
  {
    "path": "models/FactionTraitSymbol.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The unique identifier of the trait.\",\n  \"enum\": [\n    \"BUREAUCRATIC\",\n    \"SECRETIVE\",\n    \"CAPITALISTIC\",\n    \"INDUSTRIOUS\",\n    \"PEACEFUL\",\n    \"DISTRUSTFUL\",\n    \"WELCOMING\",\n    \"SMUGGLERS\",\n    \"SCAVENGERS\",\n    \"REBELLIOUS\",\n    \"EXILES\",\n    \"PIRATES\",\n    \"RAIDERS\",\n    \"CLAN\",\n    \"GUILD\",\n    \"DOMINION\",\n    \"FRINGE\",\n    \"FORSAKEN\",\n    \"ISOLATED\",\n    \"LOCALIZED\",\n    \"ESTABLISHED\",\n    \"NOTABLE\",\n    \"DOMINANT\",\n    \"INESCAPABLE\",\n    \"INNOVATIVE\",\n    \"BOLD\",\n    \"VISIONARY\",\n    \"CURIOUS\",\n    \"DARING\",\n    \"EXPLORATORY\",\n    \"RESOURCEFUL\",\n    \"FLEXIBLE\",\n    \"COOPERATIVE\",\n    \"UNITED\",\n    \"STRATEGIC\",\n    \"INTELLIGENT\",\n    \"RESEARCH_FOCUSED\",\n    \"COLLABORATIVE\",\n    \"PROGRESSIVE\",\n    \"MILITARISTIC\",\n    \"TECHNOLOGICALLY_ADVANCED\",\n    \"AGGRESSIVE\",\n    \"IMPERIALISTIC\",\n    \"TREASURE_HUNTERS\",\n    \"DEXTEROUS\",\n    \"UNPREDICTABLE\",\n    \"BRUTAL\",\n    \"FLEETING\",\n    \"ADAPTABLE\",\n    \"SELF_SUFFICIENT\",\n    \"DEFENSIVE\",\n    \"PROUD\",\n    \"DIVERSE\",\n    \"INDEPENDENT\",\n    \"SELF_INTERESTED\",\n    \"FRAGMENTED\",\n    \"COMMERCIAL\",\n    \"FREE_MARKETS\",\n    \"ENTREPRENEURIAL\"\n  ]\n}\n"
  },
  {
    "path": "models/JumpGate.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"connections\": {\n      \"type\": \"array\",\n      \"description\": \"All the gates that are connected to this waypoint.\",\n      \"items\": {\n        \"type\": \"string\",\n        \"description\": \"The symbol of the waypoint that has a corresponding gate.\"\n      }\n    }\n  },\n  \"required\": [\"symbol\", \"connections\"]\n}\n"
  },
  {
    "path": "models/Market.json",
    "content": "{\n  \"description\": \"Market details.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the market. The symbol is the same as the waypoint where the market is located.\"\n    },\n    \"exports\": {\n      \"type\": \"array\",\n      \"description\": \"The list of goods that are exported from this market.\",\n      \"items\": {\n        \"$ref\": \"./TradeGood.json\"\n      }\n    },\n    \"imports\": {\n      \"type\": \"array\",\n      \"description\": \"The list of goods that are sought as imports in this market.\",\n      \"items\": {\n        \"$ref\": \"./TradeGood.json\"\n      }\n    },\n    \"exchange\": {\n      \"type\": \"array\",\n      \"description\": \"The list of goods that are bought and sold between agents at this market.\",\n      \"items\": {\n        \"$ref\": \"./TradeGood.json\"\n      }\n    },\n    \"transactions\": {\n      \"type\": \"array\",\n      \"description\": \"The list of recent transactions at this market. Visible only when a ship is present at the market.\",\n      \"items\": {\n        \"$ref\": \"./MarketTransaction.json\"\n      }\n    },\n    \"tradeGoods\": {\n      \"type\": \"array\",\n      \"description\": \"The list of goods that are traded at this market. Visible only when a ship is present at the market.\",\n      \"items\": {\n        \"$ref\": \"./MarketTradeGood.json\"\n      }\n    }\n  },\n  \"required\": [\"symbol\", \"exports\", \"imports\", \"exchange\"]\n}\n"
  },
  {
    "path": "models/MarketTradeGood.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./TradeSymbol.json\"\n    },\n    \"type\": {\n      \"type\": \"string\",\n      \"description\": \"The type of trade good (export, import, or exchange).\",\n      \"enum\": [\"EXPORT\", \"IMPORT\", \"EXCHANGE\"]\n    },\n    \"tradeVolume\": {\n      \"type\": \"integer\",\n      \"description\": \"This is the maximum number of units that can be purchased or sold at this market in a single trade for this good. Trade volume also gives an indication of price volatility. A market with a low trade volume will have large price swings, while high trade volume will be more resilient to price changes.\",\n      \"minimum\": 1\n    },\n    \"supply\": {\n      \"$ref\": \"./SupplyLevel.json\"\n    },\n    \"activity\": {\n      \"$ref\": \"./ActivityLevel.json\"\n    },\n    \"purchasePrice\": {\n      \"type\": \"integer\",\n      \"description\": \"The price at which this good can be purchased from the market.\",\n      \"minimum\": 0\n    },\n    \"sellPrice\": {\n      \"type\": \"integer\",\n      \"description\": \"The price at which this good can be sold to the market.\",\n      \"minimum\": 0\n    }\n  },\n  \"required\": [\"symbol\", \"type\", \"tradeVolume\", \"supply\", \"purchasePrice\", \"sellPrice\"]\n}\n"
  },
  {
    "path": "models/MarketTransaction.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"waypointSymbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"shipSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the ship that made the transaction.\"\n    },\n    \"tradeSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the trade good.\"\n    },\n    \"type\": {\n      \"type\": \"string\",\n      \"description\": \"The type of transaction.\",\n      \"enum\": [\"PURCHASE\", \"SELL\"]\n    },\n    \"units\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of units of the transaction.\",\n      \"minimum\": 0\n    },\n    \"pricePerUnit\": {\n      \"type\": \"integer\",\n      \"description\": \"The price per unit of the transaction.\",\n      \"minimum\": 0\n    },\n    \"totalPrice\": {\n      \"type\": \"integer\",\n      \"description\": \"The total price of the transaction.\",\n      \"minimum\": 0\n    },\n    \"timestamp\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The timestamp of the transaction.\"\n    }\n  },\n  \"required\": [\n    \"waypointSymbol\",\n    \"shipSymbol\",\n    \"tradeSymbol\",\n    \"type\",\n    \"units\",\n    \"pricePerUnit\",\n    \"totalPrice\",\n    \"timestamp\"\n  ],\n  \"description\": \"Result of a transaction with a market.\"\n}\n"
  },
  {
    "path": "models/Meta.json",
    "content": "{\n  \"description\": \"Meta details for pagination.\",\n  \"type\": \"object\",\n  \"x-examples\": {\n    \"example-1\": {\n      \"total\": 6,\n      \"page\": 1,\n      \"limit\": 20\n    }\n  },\n  \"properties\": {\n    \"total\": {\n      \"type\": \"integer\",\n      \"description\": \"Shows the total amount of items of this kind that exist.\",\n      \"minimum\": 0\n    },\n    \"page\": {\n      \"type\": \"integer\",\n      \"default\": 1,\n      \"description\": \"A page denotes an amount of items, offset from the first item. Each page holds an amount of items equal to the `limit`.\",\n      \"minimum\": 1\n    },\n    \"limit\": {\n      \"type\": \"integer\",\n      \"default\": 10,\n      \"description\": \"The amount of items in each page. Limits how many items can be fetched at once.\",\n      \"minimum\": 1,\n      \"maximum\": 20\n    }\n  },\n  \"required\": [\"total\", \"page\", \"limit\"]\n}\n"
  },
  {
    "path": "models/RepairTransaction.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"waypointSymbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"shipSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the ship.\"\n    },\n    \"totalPrice\": {\n      \"type\": \"integer\",\n      \"description\": \"The total price of the transaction.\",\n      \"minimum\": 0\n    },\n    \"timestamp\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The timestamp of the transaction.\"\n    }\n  },\n  \"required\": [\"waypointSymbol\", \"shipSymbol\", \"totalPrice\", \"timestamp\"],\n  \"description\": \"Result of a repair transaction.\"\n}\n"
  },
  {
    "path": "models/ScannedShip.json",
    "content": "{\n  \"description\": \"The ship that was scanned. Details include information about the ship that could be detected by the scanner.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"description\": \"The globally unique identifier of the ship.\"\n    },\n    \"registration\": {\n      \"$ref\": \"./ShipRegistration.json\"\n    },\n    \"nav\": {\n      \"$ref\": \"./ShipNav.json\"\n    },\n    \"frame\": {\n      \"type\": \"object\",\n      \"description\": \"The frame of the ship.\",\n      \"properties\": {\n        \"symbol\": {\n          \"type\": \"string\",\n          \"description\": \"The symbol of the frame.\"\n        }\n      },\n      \"required\": [\"symbol\"]\n    },\n    \"reactor\": {\n      \"type\": \"object\",\n      \"description\": \"The reactor of the ship.\",\n      \"properties\": {\n        \"symbol\": {\n          \"type\": \"string\",\n          \"description\": \"The symbol of the reactor.\"\n        }\n      },\n      \"required\": [\"symbol\"]\n    },\n    \"engine\": {\n      \"type\": \"object\",\n      \"description\": \"The engine of the ship.\",\n      \"required\": [\"symbol\"],\n      \"properties\": {\n        \"symbol\": {\n          \"type\": \"string\",\n          \"description\": \"The symbol of the engine.\"\n        }\n      }\n    },\n    \"mounts\": {\n      \"type\": \"array\",\n      \"description\": \"List of mounts installed in the ship.\",\n      \"items\": {\n        \"type\": \"object\",\n        \"description\": \"A mount on the ship.\",\n        \"properties\": {\n          \"symbol\": {\n            \"type\": \"string\",\n            \"description\": \"The symbol of the mount.\"\n          }\n        },\n        \"required\": [\"symbol\"]\n      }\n    }\n  },\n  \"required\": [\"symbol\", \"registration\", \"nav\", \"engine\"]\n}\n"
  },
  {
    "path": "models/ScannedSystem.json",
    "content": "{\n  \"description\": \"Details of a system was that scanned.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"Symbol of the system.\"\n    },\n    \"sectorSymbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"Symbol of the system's sector.\"\n    },\n    \"type\": {\n      \"$ref\": \"./SystemType.json\"\n    },\n    \"x\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the x axis.\"\n    },\n    \"y\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the y axis.\"\n    },\n    \"distance\": {\n      \"type\": \"integer\",\n      \"description\": \"The system's distance from the scanning ship.\"\n    }\n  },\n  \"required\": [\"symbol\", \"sectorSymbol\", \"type\", \"x\", \"y\", \"distance\"]\n}\n"
  },
  {
    "path": "models/ScannedWaypoint.json",
    "content": "{\n  \"description\": \"A waypoint that was scanned by a ship.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"type\": {\n      \"$ref\": \"./WaypointType.json\"\n    },\n    \"systemSymbol\": {\n      \"$ref\": \"./SystemSymbol.json\"\n    },\n    \"x\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the x axis.\"\n    },\n    \"y\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the y axis.\"\n    },\n    \"orbitals\": {\n      \"type\": \"array\",\n      \"description\": \"List of waypoints that orbit this waypoint.\",\n      \"items\": {\n        \"$ref\": \"./WaypointOrbital.json\"\n      }\n    },\n    \"faction\": {\n      \"$ref\": \"./WaypointFaction.json\"\n    },\n    \"traits\": {\n      \"type\": \"array\",\n      \"description\": \"The traits of the waypoint.\",\n      \"items\": {\n        \"$ref\": \"./WaypointTrait.json\"\n      }\n    },\n    \"chart\": {\n      \"$ref\": \"./Chart.json\"\n    }\n  },\n  \"required\": [\"symbol\", \"type\", \"systemSymbol\", \"x\", \"y\", \"orbitals\", \"traits\"]\n}\n"
  },
  {
    "path": "models/ScrapTransaction.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"waypointSymbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"shipSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the ship.\"\n    },\n    \"totalPrice\": {\n      \"type\": \"integer\",\n      \"description\": \"The total price of the transaction.\",\n      \"minimum\": 0\n    },\n    \"timestamp\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The timestamp of the transaction.\"\n    }\n  },\n  \"required\": [\"waypointSymbol\", \"shipSymbol\", \"totalPrice\", \"timestamp\"],\n  \"description\": \"Result of a scrap transaction.\"\n}\n"
  },
  {
    "path": "models/Ship.json",
    "content": "{\n  \"description\": \"Ship details.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"description\": \"The globally unique identifier of the ship in the following format: `[AGENT_SYMBOL]-[HEX_ID]`\"\n    },\n    \"registration\": {\n      \"$ref\": \"./ShipRegistration.json\"\n    },\n    \"nav\": {\n      \"$ref\": \"./ShipNav.json\"\n    },\n    \"crew\": {\n      \"$ref\": \"./ShipCrew.json\"\n    },\n    \"frame\": {\n      \"$ref\": \"./ShipFrame.json\"\n    },\n    \"reactor\": {\n      \"$ref\": \"./ShipReactor.json\"\n    },\n    \"engine\": {\n      \"$ref\": \"./ShipEngine.json\"\n    },\n    \"cooldown\": {\n      \"$ref\": \"./Cooldown.json\"\n    },\n    \"modules\": {\n      \"type\": \"array\",\n      \"description\": \"Modules installed in this ship.\",\n      \"items\": {\n        \"$ref\": \"./ShipModule.json\"\n      }\n    },\n    \"mounts\": {\n      \"type\": \"array\",\n      \"description\": \"Mounts installed in this ship.\",\n      \"items\": {\n        \"$ref\": \"./ShipMount.json\"\n      }\n    },\n    \"cargo\": {\n      \"$ref\": \"./ShipCargo.json\"\n    },\n    \"fuel\": {\n      \"$ref\": \"./ShipFuel.json\"\n    }\n  },\n  \"required\": [\n    \"symbol\",\n    \"registration\",\n    \"nav\",\n    \"crew\",\n    \"frame\",\n    \"reactor\",\n    \"engine\",\n    \"modules\",\n    \"mounts\",\n    \"cargo\",\n    \"fuel\",\n    \"cooldown\"\n  ]\n}\n"
  },
  {
    "path": "models/ShipCargo.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"capacity\": {\n      \"type\": \"integer\",\n      \"description\": \"The max number of items that can be stored in the cargo hold.\",\n      \"minimum\": 0\n    },\n    \"units\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of items currently stored in the cargo hold.\",\n      \"minimum\": 0\n    },\n    \"inventory\": {\n      \"type\": \"array\",\n      \"description\": \"The items currently in the cargo hold.\",\n      \"items\": {\n        \"$ref\": \"./ShipCargoItem.json\"\n      }\n    }\n  },\n  \"required\": [\"capacity\", \"units\", \"inventory\"],\n  \"description\": \"Ship cargo details.\"\n}\n"
  },
  {
    "path": "models/ShipCargoItem.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The type of cargo item and the number of units.\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./TradeSymbol.json\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The name of the cargo item type.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"The description of the cargo item type.\"\n    },\n    \"units\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of units of the cargo item.\",\n      \"minimum\": 1\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"description\", \"units\"]\n}\n"
  },
  {
    "path": "models/ShipComponentCondition.json",
    "content": "{\n  \"type\": \"number\",\n  \"format\": \"double\",\n  \"description\": \"The repairable condition of a component. A value of 0 indicates the component needs significant repairs, while a value of 1 indicates the component is in near perfect condition. As the condition of a component is repaired, the overall integrity of the component decreases.\",\n  \"minimum\": 0,\n  \"maximum\": 1\n}\n"
  },
  {
    "path": "models/ShipComponentIntegrity.json",
    "content": "{\n  \"type\": \"number\",\n  \"format\": \"double\",\n  \"description\": \"The overall integrity of the component, which determines the performance of the component. A value of 0 indicates that the component is almost completely degraded, while a value of 1 indicates that the component is in near perfect condition. The integrity of the component is non-repairable, and represents permanent wear over time.\",\n  \"minimum\": 0,\n  \"maximum\": 1\n}\n"
  },
  {
    "path": "models/ShipComponentQuality.json",
    "content": "{\n  \"type\": \"number\",\n  \"format\": \"integer\",\n  \"description\": \"The overall quality of the component, which determines the quality of the component. High quality components return more ships parts and ship plating when a ship is scrapped. But also require more of these parts to repair. This is transparent to the player, as the parts are bought from/sold to the marketplace.\"\n}\n"
  },
  {
    "path": "models/ShipConditionEvent.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"An event that represents damage or wear to a ship's reactor, frame, or engine, reducing the condition of the ship.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"REACTOR_OVERLOAD\",\n        \"ENERGY_SPIKE_FROM_MINERAL\",\n        \"SOLAR_FLARE_INTERFERENCE\",\n        \"COOLANT_LEAK\",\n        \"POWER_DISTRIBUTION_FLUCTUATION\",\n        \"MAGNETIC_FIELD_DISRUPTION\",\n        \"HULL_MICROMETEORITE_STRIKES\",\n        \"STRUCTURAL_STRESS_FRACTURES\",\n        \"CORROSIVE_MINERAL_CONTAMINATION\",\n        \"THERMAL_EXPANSION_MISMATCH\",\n        \"VIBRATION_DAMAGE_FROM_DRILLING\",\n        \"ELECTROMAGNETIC_FIELD_INTERFERENCE\",\n        \"IMPACT_WITH_EXTRACTED_DEBRIS\",\n        \"FUEL_EFFICIENCY_DEGRADATION\",\n        \"COOLANT_SYSTEM_AGEING\",\n        \"DUST_MICROABRASIONS\",\n        \"THRUSTER_NOZZLE_WEAR\",\n        \"EXHAUST_PORT_CLOGGING\",\n        \"BEARING_LUBRICATION_FADE\",\n        \"SENSOR_CALIBRATION_DRIFT\",\n        \"HULL_MICROMETEORITE_DAMAGE\",\n        \"SPACE_DEBRIS_COLLISION\",\n        \"THERMAL_STRESS\",\n        \"VIBRATION_OVERLOAD\",\n        \"PRESSURE_DIFFERENTIAL_STRESS\",\n        \"ELECTROMAGNETIC_SURGE_EFFECTS\",\n        \"ATMOSPHERIC_ENTRY_HEAT\"\n      ]\n    },\n    \"component\": {\n      \"type\": \"string\",\n      \"enum\": [\"FRAME\", \"REACTOR\", \"ENGINE\"]\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The name of the event.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"A description of the event.\"\n    }\n  },\n  \"required\": [\"symbol\", \"component\", \"name\", \"description\"]\n}\n"
  },
  {
    "path": "models/ShipCrew.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The ship's crew service and maintain the ship's systems and equipment.\",\n  \"properties\": {\n    \"current\": {\n      \"type\": \"integer\",\n      \"description\": \"The current number of crew members on the ship.\"\n    },\n    \"required\": {\n      \"type\": \"integer\",\n      \"description\": \"The minimum number of crew members required to maintain the ship.\"\n    },\n    \"capacity\": {\n      \"type\": \"integer\",\n      \"description\": \"The maximum number of crew members the ship can support.\"\n    },\n    \"rotation\": {\n      \"type\": \"string\",\n      \"description\": \"The rotation of crew shifts. A stricter shift improves the ship's performance. A more relaxed shift improves the crew's morale.\",\n      \"enum\": [\"STRICT\", \"RELAXED\"],\n      \"default\": \"STRICT\"\n    },\n    \"morale\": {\n      \"type\": \"integer\",\n      \"description\": \"A rough measure of the crew's morale. A higher morale means the crew is happier and more productive. A lower morale means the ship is more prone to accidents.\",\n      \"minimum\": 0,\n      \"maximum\": 100\n    },\n    \"wages\": {\n      \"type\": \"integer\",\n      \"description\": \"The amount of credits per crew member paid per hour. Wages are paid when a ship docks at a civilized waypoint.\",\n      \"minimum\": 0\n    }\n  },\n  \"required\": [\"current\", \"required\", \"capacity\", \"rotation\", \"morale\", \"wages\"]\n}\n"
  },
  {
    "path": "models/ShipEngine.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The engine determines how quickly a ship travels between waypoints.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"enum\": [\"ENGINE_IMPULSE_DRIVE_I\", \"ENGINE_ION_DRIVE_I\", \"ENGINE_ION_DRIVE_II\", \"ENGINE_HYPER_DRIVE_I\"],\n      \"description\": \"The symbol of the engine.\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The name of the engine.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"The description of the engine.\"\n    },\n    \"condition\": {\n      \"$ref\": \"./ShipComponentCondition.json\"\n    },\n    \"integrity\": {\n      \"$ref\": \"./ShipComponentIntegrity.json\"\n    },\n    \"speed\": {\n      \"type\": \"integer\",\n      \"minimum\": 1,\n      \"description\": \"The speed stat of this engine. The higher the speed, the faster a ship can travel from one point to another. Reduces the time of arrival when navigating the ship.\"\n    },\n    \"requirements\": {\n      \"$ref\": \"./ShipRequirements.json\"\n    },\n    \"quality\": {\n      \"$ref\": \"./ShipComponentQuality.json\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"condition\", \"integrity\", \"description\", \"speed\", \"requirements\", \"quality\"]\n}\n"
  },
  {
    "path": "models/ShipFrame.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The frame of the ship. The frame determines the number of modules and mounting points of the ship, as well as base fuel capacity. As the condition of the frame takes more wear, the ship will become more sluggish and less maneuverable.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"FRAME_PROBE\",\n        \"FRAME_DRONE\",\n        \"FRAME_INTERCEPTOR\",\n        \"FRAME_RACER\",\n        \"FRAME_FIGHTER\",\n        \"FRAME_FRIGATE\",\n        \"FRAME_SHUTTLE\",\n        \"FRAME_EXPLORER\",\n        \"FRAME_MINER\",\n        \"FRAME_LIGHT_FREIGHTER\",\n        \"FRAME_HEAVY_FREIGHTER\",\n        \"FRAME_TRANSPORT\",\n        \"FRAME_DESTROYER\",\n        \"FRAME_CRUISER\",\n        \"FRAME_CARRIER\",\n        \"FRAME_BULK_FREIGHTER\"\n      ],\n      \"description\": \"Symbol of the frame.\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"Name of the frame.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"Description of the frame.\"\n    },\n    \"condition\": {\n      \"$ref\": \"./ShipComponentCondition.json\"\n    },\n    \"integrity\": {\n      \"$ref\": \"./ShipComponentIntegrity.json\"\n    },\n    \"moduleSlots\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"description\": \"The amount of slots that can be dedicated to modules installed in the ship. Each installed module take up a number of slots, and once there are no more slots, no new modules can be installed.\"\n    },\n    \"mountingPoints\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"description\": \"The amount of slots that can be dedicated to mounts installed in the ship. Each installed mount takes up a number of points, and once there are no more points remaining, no new mounts can be installed.\"\n    },\n    \"fuelCapacity\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"description\": \"The maximum amount of fuel that can be stored in this ship. When refueling, the ship will be refueled to this amount.\"\n    },\n    \"requirements\": {\n      \"$ref\": \"./ShipRequirements.json\"\n    },\n    \"quality\": {\n      \"$ref\": \"./ShipComponentQuality.json\"\n    }\n  },\n  \"required\": [\n    \"symbol\",\n    \"name\",\n    \"condition\",\n    \"integrity\",\n    \"description\",\n    \"moduleSlots\",\n    \"mountingPoints\",\n    \"fuelCapacity\",\n    \"requirements\",\n    \"quality\"\n  ]\n}\n"
  },
  {
    "path": "models/ShipFuel.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"Details of the ship's fuel tanks including how much fuel was consumed during the last transit or action.\",\n  \"properties\": {\n    \"current\": {\n      \"type\": \"integer\",\n      \"description\": \"The current amount of fuel in the ship's tanks.\",\n      \"minimum\": 0\n    },\n    \"capacity\": {\n      \"type\": \"integer\",\n      \"description\": \"The maximum amount of fuel the ship's tanks can hold.\",\n      \"minimum\": 0\n    },\n    \"consumed\": {\n      \"type\": \"object\",\n      \"description\": \"An object that only shows up when an action has consumed fuel in the process. Shows the fuel consumption data.\",\n      \"properties\": {\n        \"amount\": {\n          \"type\": \"integer\",\n          \"description\": \"The amount of fuel consumed by the most recent transit or action.\",\n          \"minimum\": 0\n        },\n        \"timestamp\": {\n          \"type\": \"string\",\n          \"format\": \"date-time\",\n          \"description\": \"The time at which the fuel was consumed.\"\n        }\n      },\n      \"required\": [\"amount\", \"timestamp\"]\n    }\n  },\n  \"required\": [\"current\", \"capacity\"]\n}\n"
  },
  {
    "path": "models/ShipModificationTransaction.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"waypointSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the waypoint where the transaction took place.\"\n    },\n    \"shipSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the ship that made the transaction.\"\n    },\n    \"tradeSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the trade good.\"\n    },\n    \"totalPrice\": {\n      \"type\": \"integer\",\n      \"description\": \"The total price of the transaction.\",\n      \"minimum\": 0\n    },\n    \"timestamp\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The timestamp of the transaction.\"\n    }\n  },\n  \"required\": [\"waypointSymbol\", \"shipSymbol\", \"tradeSymbol\", \"totalPrice\", \"timestamp\"],\n  \"description\": \"Result of a transaction for a ship modification, such as installing a mount or a module.\"\n}\n"
  },
  {
    "path": "models/ShipModule.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"A module can be installed in a ship and provides a set of capabilities such as storage space or quarters for crew. Module installations are permanent.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"MODULE_MINERAL_PROCESSOR_I\",\n        \"MODULE_GAS_PROCESSOR_I\",\n        \"MODULE_CARGO_HOLD_I\",\n        \"MODULE_CARGO_HOLD_II\",\n        \"MODULE_CARGO_HOLD_III\",\n        \"MODULE_CREW_QUARTERS_I\",\n        \"MODULE_ENVOY_QUARTERS_I\",\n        \"MODULE_PASSENGER_CABIN_I\",\n        \"MODULE_MICRO_REFINERY_I\",\n        \"MODULE_ORE_REFINERY_I\",\n        \"MODULE_FUEL_REFINERY_I\",\n        \"MODULE_SCIENCE_LAB_I\",\n        \"MODULE_JUMP_DRIVE_I\",\n        \"MODULE_JUMP_DRIVE_II\",\n        \"MODULE_JUMP_DRIVE_III\",\n        \"MODULE_WARP_DRIVE_I\",\n        \"MODULE_WARP_DRIVE_II\",\n        \"MODULE_WARP_DRIVE_III\",\n        \"MODULE_SHIELD_GENERATOR_I\",\n        \"MODULE_SHIELD_GENERATOR_II\"\n      ],\n      \"description\": \"The symbol of the module.\"\n    },\n    \"capacity\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"description\": \"Modules that provide capacity, such as cargo hold or crew quarters will show this value to denote how much of a bonus the module grants.\"\n    },\n    \"range\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"description\": \"Modules that have a range will such as a sensor array show this value to denote how far can the module reach with its capabilities.\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"Name of this module.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"Description of this module.\"\n    },\n    \"requirements\": {\n      \"$ref\": \"./ShipRequirements.json\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"description\", \"requirements\"]\n}\n"
  },
  {
    "path": "models/ShipMount.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"A mount is installed on the exterier of a ship.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"MOUNT_GAS_SIPHON_I\",\n        \"MOUNT_GAS_SIPHON_II\",\n        \"MOUNT_GAS_SIPHON_III\",\n        \"MOUNT_SURVEYOR_I\",\n        \"MOUNT_SURVEYOR_II\",\n        \"MOUNT_SURVEYOR_III\",\n        \"MOUNT_SENSOR_ARRAY_I\",\n        \"MOUNT_SENSOR_ARRAY_II\",\n        \"MOUNT_SENSOR_ARRAY_III\",\n        \"MOUNT_MINING_LASER_I\",\n        \"MOUNT_MINING_LASER_II\",\n        \"MOUNT_MINING_LASER_III\",\n        \"MOUNT_LASER_CANNON_I\",\n        \"MOUNT_MISSILE_LAUNCHER_I\",\n        \"MOUNT_TURRET_I\"\n      ],\n      \"description\": \"Symbo of this mount.\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"Name of this mount.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"Description of this mount.\"\n    },\n    \"strength\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"description\": \"Mounts that have this value, such as mining lasers, denote how powerful this mount's capabilities are.\"\n    },\n    \"deposits\": {\n      \"type\": \"array\",\n      \"description\": \"Mounts that have this value denote what goods can be produced from using the mount.\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"QUARTZ_SAND\",\n          \"SILICON_CRYSTALS\",\n          \"PRECIOUS_STONES\",\n          \"ICE_WATER\",\n          \"AMMONIA_ICE\",\n          \"IRON_ORE\",\n          \"COPPER_ORE\",\n          \"SILVER_ORE\",\n          \"ALUMINUM_ORE\",\n          \"GOLD_ORE\",\n          \"PLATINUM_ORE\",\n          \"DIAMONDS\",\n          \"URANITE_ORE\",\n          \"MERITIUM_ORE\"\n        ]\n      }\n    },\n    \"requirements\": {\n      \"$ref\": \"./ShipRequirements.json\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"requirements\"]\n}\n"
  },
  {
    "path": "models/ShipNav.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The navigation information of the ship.\",\n  \"properties\": {\n    \"systemSymbol\": {\n      \"$ref\": \"./SystemSymbol.json\"\n    },\n    \"waypointSymbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"route\": {\n      \"$ref\": \"./ShipNavRoute.json\"\n    },\n    \"status\": {\n      \"$ref\": \"./ShipNavStatus.json\"\n    },\n    \"flightMode\": {\n      \"$ref\": \"./ShipNavFlightMode.json\"\n    }\n  },\n  \"required\": [\"systemSymbol\", \"waypointSymbol\", \"route\", \"status\", \"flightMode\"]\n}\n"
  },
  {
    "path": "models/ShipNavFlightMode.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The ship's set speed when traveling between waypoints or systems.\",\n  \"enum\": [\"DRIFT\", \"STEALTH\", \"CRUISE\", \"BURN\"],\n  \"default\": \"CRUISE\"\n}\n"
  },
  {
    "path": "models/ShipNavRoute.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The routing information for the ship's most recent transit or current location.\",\n  \"properties\": {\n    \"destination\": {\n      \"$ref\": \"./ShipNavRouteWaypoint.json\"\n    },\n    \"origin\": {\n      \"$ref\": \"./ShipNavRouteWaypoint.json\"\n    },\n    \"departureTime\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The date time of the ship's departure.\"\n    },\n    \"arrival\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The date time of the ship's arrival. If the ship is in-transit, this is the expected time of arrival.\"\n    }\n  },\n  \"required\": [\"destination\", \"departure\", \"origin\", \"departureTime\", \"arrival\"]\n}\n"
  },
  {
    "path": "models/ShipNavRouteWaypoint.json",
    "content": "{\n  \"description\": \"The destination or departure of a ships nav route.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the waypoint.\"\n    },\n    \"type\": {\n      \"$ref\": \"./WaypointType.json\"\n    },\n    \"systemSymbol\": {\n      \"$ref\": \"./SystemSymbol.json\"\n    },\n    \"x\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the x axis.\"\n    },\n    \"y\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the y axis.\"\n    }\n  },\n  \"required\": [\"symbol\", \"type\", \"systemSymbol\", \"x\", \"y\"]\n}\n"
  },
  {
    "path": "models/ShipNavRouteWaypointDeprecated.json",
    "content": "{\n  \"type\": \"object\",\n  \"deprecated\": true,\n  \"description\": \"Deprecated. Use origin instead.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the waypoint.\"\n    },\n    \"type\": {\n      \"$ref\": \"./WaypointType.json\"\n    },\n    \"systemSymbol\": {\n      \"$ref\": \"./SystemSymbol.json\"\n    },\n    \"x\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the x axis.\"\n    },\n    \"y\": {\n      \"type\": \"integer\",\n      \"description\": \"Position in the universe in the y axis.\"\n    }\n  },\n  \"required\": [\"symbol\", \"type\", \"systemSymbol\", \"x\", \"y\"]\n}\n"
  },
  {
    "path": "models/ShipNavStatus.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The current status of the ship\",\n  \"enum\": [\"IN_TRANSIT\", \"IN_ORBIT\", \"DOCKED\"]\n}\n"
  },
  {
    "path": "models/ShipReactor.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The reactor of the ship. The reactor is responsible for powering the ship's systems and weapons.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"REACTOR_SOLAR_I\",\n        \"REACTOR_FUSION_I\",\n        \"REACTOR_FISSION_I\",\n        \"REACTOR_CHEMICAL_I\",\n        \"REACTOR_ANTIMATTER_I\"\n      ],\n      \"description\": \"Symbol of the reactor.\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"Name of the reactor.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"Description of the reactor.\"\n    },\n    \"condition\": {\n      \"$ref\": \"./ShipComponentCondition.json\"\n    },\n    \"integrity\": {\n      \"$ref\": \"./ShipComponentIntegrity.json\"\n    },\n    \"powerOutput\": {\n      \"type\": \"integer\",\n      \"minimum\": 1,\n      \"description\": \"The amount of power provided by this reactor. The more power a reactor provides to the ship, the lower the cooldown it gets when using a module or mount that taxes the ship's power.\"\n    },\n    \"requirements\": {\n      \"$ref\": \"./ShipRequirements.json\"\n    },\n    \"quality\": {\n      \"$ref\": \"./ShipComponentQuality.json\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"condition\", \"integrity\", \"description\", \"powerOutput\", \"requirements\", \"quality\"]\n}\n"
  },
  {
    "path": "models/ShipRegistration.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The public registration information of the ship\",\n  \"properties\": {\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The agent's registered name of the ship\",\n      \"minLength\": 1\n    },\n    \"factionSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the faction the ship is registered with\",\n      \"minLength\": 1\n    },\n    \"role\": {\n      \"$ref\": \"./ShipRole.json\"\n    }\n  },\n  \"required\": [\"name\", \"factionSymbol\", \"role\"]\n}\n"
  },
  {
    "path": "models/ShipRequirements.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The requirements for installation on a ship\",\n  \"properties\": {\n    \"power\": {\n      \"type\": \"integer\",\n      \"description\": \"The amount of power required from the reactor.\"\n    },\n    \"crew\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of crew required for operation.\"\n    },\n    \"slots\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of module slots required for installation.\"\n    }\n  }\n}\n"
  },
  {
    "path": "models/ShipRole.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The registered role of the ship\",\n  \"enum\": [\n    \"FABRICATOR\",\n    \"HARVESTER\",\n    \"HAULER\",\n    \"INTERCEPTOR\",\n    \"EXCAVATOR\",\n    \"TRANSPORT\",\n    \"REPAIR\",\n    \"SURVEYOR\",\n    \"COMMAND\",\n    \"CARRIER\",\n    \"PATROL\",\n    \"SATELLITE\",\n    \"EXPLORER\",\n    \"REFINERY\"\n  ]\n}\n"
  },
  {
    "path": "models/ShipType.json",
    "content": "{\n  \"description\": \"Type of ship\",\n  \"type\": \"string\",\n  \"enum\": [\n    \"SHIP_PROBE\",\n    \"SHIP_MINING_DRONE\",\n    \"SHIP_SIPHON_DRONE\",\n    \"SHIP_INTERCEPTOR\",\n    \"SHIP_LIGHT_HAULER\",\n    \"SHIP_COMMAND_FRIGATE\",\n    \"SHIP_EXPLORER\",\n    \"SHIP_HEAVY_FREIGHTER\",\n    \"SHIP_LIGHT_SHUTTLE\",\n    \"SHIP_ORE_HOUND\",\n    \"SHIP_REFINING_FREIGHTER\",\n    \"SHIP_SURVEYOR\",\n    \"SHIP_BULK_FREIGHTER\"\n  ]\n}\n"
  },
  {
    "path": "models/Shipyard.json",
    "content": "{\n  \"description\": \"Shipyard details.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the shipyard. The symbol is the same as the waypoint where the shipyard is located.\",\n      \"minLength\": 1\n    },\n    \"shipTypes\": {\n      \"type\": \"array\",\n      \"description\": \"The list of ship types available for purchase at this shipyard.\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"type\": {\n            \"$ref\": \"./ShipType.json\"\n          }\n        },\n        \"required\": [\"type\"]\n      }\n    },\n    \"transactions\": {\n      \"type\": \"array\",\n      \"description\": \"The list of recent transactions at this shipyard.\",\n      \"items\": {\n        \"$ref\": \"./ShipyardTransaction.json\"\n      }\n    },\n    \"ships\": {\n      \"type\": \"array\",\n      \"description\": \"The ships that are currently available for purchase at the shipyard.\",\n      \"items\": {\n        \"$ref\": \"./ShipyardShip.json\"\n      }\n    },\n    \"modificationsFee\": {\n      \"type\": \"integer\",\n      \"description\": \"The fee to modify a ship at this shipyard. This includes installing or removing modules and mounts on a ship. In the case of mounts, the fee is a flat rate per mount. In the case of modules, the fee is per slot the module occupies.\"\n    }\n  },\n  \"required\": [\"symbol\", \"shipTypes\", \"modificationsFee\"]\n}\n"
  },
  {
    "path": "models/ShipyardShip.json",
    "content": "{\n  \"description\": \"\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"type\": {\n      \"$ref\": \"./ShipType.json\"\n    },\n    \"name\": {\n      \"type\": \"string\"\n    },\n    \"description\": {\n      \"type\": \"string\"\n    },\n    \"supply\": {\n      \"$ref\": \"./SupplyLevel.json\"\n    },\n    \"activity\": {\n      \"$ref\": \"./ActivityLevel.json\"\n    },\n    \"purchasePrice\": {\n      \"type\": \"integer\"\n    },\n    \"frame\": {\n      \"$ref\": \"./ShipFrame.json\"\n    },\n    \"reactor\": {\n      \"$ref\": \"./ShipReactor.json\"\n    },\n    \"engine\": {\n      \"$ref\": \"./ShipEngine.json\"\n    },\n    \"modules\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"./ShipModule.json\"\n      }\n    },\n    \"mounts\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"./ShipMount.json\"\n      }\n    },\n    \"crew\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"required\": {\n          \"type\": \"integer\"\n        },\n        \"capacity\": {\n          \"type\": \"integer\"\n        }\n      },\n      \"required\": [\"required\", \"capacity\"]\n    }\n  },\n  \"required\": [\n    \"type\",\n    \"symbol\",\n    \"name\",\n    \"description\",\n    \"supply\",\n    \"purchasePrice\",\n    \"frame\",\n    \"reactor\",\n    \"engine\",\n    \"modules\",\n    \"mounts\",\n    \"crew\"\n  ]\n}\n"
  },
  {
    "path": "models/ShipyardTransaction.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"Results of a transaction with a shipyard.\",\n  \"properties\": {\n    \"waypointSymbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"shipSymbol\": {\n      \"type\": \"string\",\n      \"deprecated\": true,\n      \"description\": \"The symbol of the ship type (e.g. SHIP_MINING_DRONE) that was the subject of the transaction. Contrary to what the name implies, this is NOT the symbol of the ship that was purchased.\"\n    },\n    \"shipType\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the ship type (e.g. SHIP_MINING_DRONE) that was the subject of the transaction.\"\n    },\n    \"price\": {\n      \"type\": \"integer\",\n      \"description\": \"The price of the transaction.\",\n      \"minimum\": 0\n    },\n    \"agentSymbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the agent that made the transaction.\"\n    },\n    \"timestamp\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The timestamp of the transaction.\"\n    }\n  },\n  \"required\": [\"waypointSymbol\", \"shipSymbol\", \"shipType\", \"price\", \"agentSymbol\", \"timestamp\"]\n}\n"
  },
  {
    "path": "models/Siphon.json",
    "content": "{\n  \"description\": \"Siphon details.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"shipSymbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"Symbol of the ship that executed the siphon.\"\n    },\n    \"yield\": {\n      \"$ref\": \"./SiphonYield.json\"\n    }\n  },\n  \"required\": [\"shipSymbol\", \"yield\"]\n}\n"
  },
  {
    "path": "models/SiphonYield.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"A yield from the siphon operation.\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./TradeSymbol.json\"\n    },\n    \"units\": {\n      \"type\": \"integer\",\n      \"description\": \"The number of units siphoned that were placed into the ship's cargo hold.\"\n    }\n  },\n  \"required\": [\"symbol\", \"units\"]\n}\n"
  },
  {
    "path": "models/SupplyLevel.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The supply level of a trade good.\",\n  \"enum\": [\"SCARCE\", \"LIMITED\", \"MODERATE\", \"HIGH\", \"ABUNDANT\"]\n}\n"
  },
  {
    "path": "models/Survey.json",
    "content": "{\n  \"description\": \"A resource survey of a waypoint, detailing a specific extraction location and the types of resources that can be found there.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"signature\": {\n      \"type\": \"string\",\n      \"description\": \"A unique signature for the location of this survey. This signature is verified when attempting an extraction using this survey.\",\n      \"minLength\": 1\n    },\n    \"symbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the waypoint that this survey is for.\",\n      \"minLength\": 1\n    },\n    \"deposits\": {\n      \"type\": \"array\",\n      \"description\": \"A list of deposits that can be found at this location. A ship will extract one of these deposits when using this survey in an extraction request. If multiple deposits of the same type are present, the chance of extracting that deposit is increased.\",\n      \"items\": {\n        \"$ref\": \"./SurveyDeposit.json\"\n      }\n    },\n    \"expiration\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"description\": \"The date and time when the survey expires. After this date and time, the survey will no longer be available for extraction.\"\n    },\n    \"size\": {\n      \"type\": \"string\",\n      \"description\": \"The size of the deposit. This value indicates how much can be extracted from the survey before it is exhausted.\",\n      \"enum\": [\"SMALL\", \"MODERATE\", \"LARGE\"]\n    }\n  },\n  \"required\": [\"signature\", \"symbol\", \"deposits\", \"expiration\", \"size\"]\n}\n"
  },
  {
    "path": "models/SurveyDeposit.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"A surveyed deposit of a mineral or resource available for extraction.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"description\": \"The symbol of the deposit.\"\n    }\n  },\n  \"required\": [\"symbol\"]\n}\n"
  },
  {
    "path": "models/System.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"System details.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the system.\"\n    },\n    \"sectorSymbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the sector.\"\n    },\n    \"constellation\": {\n      \"type\": \"string\",\n      \"description\": \"The constellation that the system is part of.\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The name of the system.\"\n    },\n    \"type\": {\n      \"$ref\": \"./SystemType.json\"\n    },\n    \"x\": {\n      \"type\": \"integer\",\n      \"description\": \"Relative position of the system in the sector in the x axis.\"\n    },\n    \"y\": {\n      \"type\": \"integer\",\n      \"description\": \"Relative position of the system in the sector in the y axis.\"\n    },\n    \"waypoints\": {\n      \"type\": \"array\",\n      \"description\": \"Waypoints in this system.\",\n      \"items\": {\n        \"$ref\": \"./SystemWaypoint.json\"\n      }\n    },\n    \"factions\": {\n      \"type\": \"array\",\n      \"description\": \"Factions that control this system.\",\n      \"items\": {\n        \"$ref\": \"./SystemFaction.json\"\n      }\n    }\n  },\n  \"required\": [\"symbol\", \"sectorSymbol\", \"type\", \"x\", \"y\", \"waypoints\", \"factions\"]\n}\n"
  },
  {
    "path": "models/SystemFaction.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./FactionSymbol.json\"\n    }\n  },\n  \"required\": [\"symbol\"]\n}\n"
  },
  {
    "path": "models/SystemSymbol.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The symbol of the system.\",\n  \"minLength\": 1,\n  \"x-faker\": {\n    \"fake\": [\"X1-{{random.alphaNumeric(5)}}\"]\n  }\n}\n"
  },
  {
    "path": "models/SystemType.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The type of system.\",\n  \"enum\": [\n    \"NEUTRON_STAR\",\n    \"RED_STAR\",\n    \"ORANGE_STAR\",\n    \"BLUE_STAR\",\n    \"YOUNG_STAR\",\n    \"WHITE_DWARF\",\n    \"BLACK_HOLE\",\n    \"HYPERGIANT\",\n    \"NEBULA\",\n    \"UNSTABLE\"\n  ]\n}\n"
  },
  {
    "path": "models/SystemWaypoint.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"Waypoint details.\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"type\": {\n      \"$ref\": \"./WaypointType.json\"\n    },\n    \"x\": {\n      \"type\": \"integer\",\n      \"description\": \"Relative position of the waypoint on the system's x axis. This is not an absolute position in the universe.\"\n    },\n    \"y\": {\n      \"type\": \"integer\",\n      \"description\": \"Relative position of the waypoint on the system's y axis. This is not an absolute position in the universe.\"\n    },\n    \"orbitals\": {\n      \"type\": \"array\",\n      \"description\": \"Waypoints that orbit this waypoint.\",\n      \"items\": {\n        \"$ref\": \"./WaypointOrbital.json\"\n      }\n    },\n    \"orbits\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the parent waypoint, if this waypoint is in orbit around another waypoint. Otherwise this value is undefined.\"\n    }\n  },\n  \"required\": [\"symbol\", \"type\", \"x\", \"y\", \"orbitals\"]\n}\n"
  },
  {
    "path": "models/TradeGood.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"A good that can be traded for other goods or currency.\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./TradeSymbol.json\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The name of the good.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"The description of the good.\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"description\"]\n}\n"
  },
  {
    "path": "models/TradeSymbol.json",
    "content": "{\n  \"type\": \"string\",\n  \"enum\": [\n    \"PRECIOUS_STONES\",\n    \"QUARTZ_SAND\",\n    \"SILICON_CRYSTALS\",\n    \"AMMONIA_ICE\",\n    \"LIQUID_HYDROGEN\",\n    \"LIQUID_NITROGEN\",\n    \"ICE_WATER\",\n    \"EXOTIC_MATTER\",\n    \"ADVANCED_CIRCUITRY\",\n    \"GRAVITON_EMITTERS\",\n    \"IRON\",\n    \"IRON_ORE\",\n    \"COPPER\",\n    \"COPPER_ORE\",\n    \"ALUMINUM\",\n    \"ALUMINUM_ORE\",\n    \"SILVER\",\n    \"SILVER_ORE\",\n    \"GOLD\",\n    \"GOLD_ORE\",\n    \"PLATINUM\",\n    \"PLATINUM_ORE\",\n    \"DIAMONDS\",\n    \"URANITE\",\n    \"URANITE_ORE\",\n    \"MERITIUM\",\n    \"MERITIUM_ORE\",\n    \"HYDROCARBON\",\n    \"ANTIMATTER\",\n    \"FAB_MATS\",\n    \"FERTILIZERS\",\n    \"FABRICS\",\n    \"FOOD\",\n    \"JEWELRY\",\n    \"MACHINERY\",\n    \"FIREARMS\",\n    \"ASSAULT_RIFLES\",\n    \"MILITARY_EQUIPMENT\",\n    \"EXPLOSIVES\",\n    \"LAB_INSTRUMENTS\",\n    \"AMMUNITION\",\n    \"ELECTRONICS\",\n    \"SHIP_PLATING\",\n    \"SHIP_PARTS\",\n    \"EQUIPMENT\",\n    \"FUEL\",\n    \"MEDICINE\",\n    \"DRUGS\",\n    \"CLOTHING\",\n    \"MICROPROCESSORS\",\n    \"PLASTICS\",\n    \"POLYNUCLEOTIDES\",\n    \"BIOCOMPOSITES\",\n    \"QUANTUM_STABILIZERS\",\n    \"NANOBOTS\",\n    \"AI_MAINFRAMES\",\n    \"QUANTUM_DRIVES\",\n    \"ROBOTIC_DRONES\",\n    \"CYBER_IMPLANTS\",\n    \"GENE_THERAPEUTICS\",\n    \"NEURAL_CHIPS\",\n    \"MOOD_REGULATORS\",\n    \"VIRAL_AGENTS\",\n    \"MICRO_FUSION_GENERATORS\",\n    \"SUPERGRAINS\",\n    \"LASER_RIFLES\",\n    \"HOLOGRAPHICS\",\n    \"SHIP_SALVAGE\",\n    \"RELIC_TECH\",\n    \"NOVEL_LIFEFORMS\",\n    \"BOTANICAL_SPECIMENS\",\n    \"CULTURAL_ARTIFACTS\",\n    \"FRAME_PROBE\",\n    \"FRAME_DRONE\",\n    \"FRAME_INTERCEPTOR\",\n    \"FRAME_RACER\",\n    \"FRAME_FIGHTER\",\n    \"FRAME_FRIGATE\",\n    \"FRAME_SHUTTLE\",\n    \"FRAME_EXPLORER\",\n    \"FRAME_MINER\",\n    \"FRAME_LIGHT_FREIGHTER\",\n    \"FRAME_HEAVY_FREIGHTER\",\n    \"FRAME_TRANSPORT\",\n    \"FRAME_DESTROYER\",\n    \"FRAME_CRUISER\",\n    \"FRAME_CARRIER\",\n    \"FRAME_BULK_FREIGHTER\",\n    \"REACTOR_SOLAR_I\",\n    \"REACTOR_FUSION_I\",\n    \"REACTOR_FISSION_I\",\n    \"REACTOR_CHEMICAL_I\",\n    \"REACTOR_ANTIMATTER_I\",\n    \"ENGINE_IMPULSE_DRIVE_I\",\n    \"ENGINE_ION_DRIVE_I\",\n    \"ENGINE_ION_DRIVE_II\",\n    \"ENGINE_HYPER_DRIVE_I\",\n    \"MODULE_MINERAL_PROCESSOR_I\",\n    \"MODULE_GAS_PROCESSOR_I\",\n    \"MODULE_CARGO_HOLD_I\",\n    \"MODULE_CARGO_HOLD_II\",\n    \"MODULE_CARGO_HOLD_III\",\n    \"MODULE_CREW_QUARTERS_I\",\n    \"MODULE_ENVOY_QUARTERS_I\",\n    \"MODULE_PASSENGER_CABIN_I\",\n    \"MODULE_MICRO_REFINERY_I\",\n    \"MODULE_SCIENCE_LAB_I\",\n    \"MODULE_JUMP_DRIVE_I\",\n    \"MODULE_JUMP_DRIVE_II\",\n    \"MODULE_JUMP_DRIVE_III\",\n    \"MODULE_WARP_DRIVE_I\",\n    \"MODULE_WARP_DRIVE_II\",\n    \"MODULE_WARP_DRIVE_III\",\n    \"MODULE_SHIELD_GENERATOR_I\",\n    \"MODULE_SHIELD_GENERATOR_II\",\n    \"MODULE_ORE_REFINERY_I\",\n    \"MODULE_FUEL_REFINERY_I\",\n    \"MOUNT_GAS_SIPHON_I\",\n    \"MOUNT_GAS_SIPHON_II\",\n    \"MOUNT_GAS_SIPHON_III\",\n    \"MOUNT_SURVEYOR_I\",\n    \"MOUNT_SURVEYOR_II\",\n    \"MOUNT_SURVEYOR_III\",\n    \"MOUNT_SENSOR_ARRAY_I\",\n    \"MOUNT_SENSOR_ARRAY_II\",\n    \"MOUNT_SENSOR_ARRAY_III\",\n    \"MOUNT_MINING_LASER_I\",\n    \"MOUNT_MINING_LASER_II\",\n    \"MOUNT_MINING_LASER_III\",\n    \"MOUNT_LASER_CANNON_I\",\n    \"MOUNT_MISSILE_LAUNCHER_I\",\n    \"MOUNT_TURRET_I\",\n    \"SHIP_PROBE\",\n    \"SHIP_MINING_DRONE\",\n    \"SHIP_SIPHON_DRONE\",\n    \"SHIP_INTERCEPTOR\",\n    \"SHIP_LIGHT_HAULER\",\n    \"SHIP_COMMAND_FRIGATE\",\n    \"SHIP_EXPLORER\",\n    \"SHIP_HEAVY_FREIGHTER\",\n    \"SHIP_LIGHT_SHUTTLE\",\n    \"SHIP_ORE_HOUND\",\n    \"SHIP_REFINING_FREIGHTER\",\n    \"SHIP_SURVEYOR\",\n    \"SHIP_BULK_FREIGHTER\"\n  ],\n  \"description\": \"The good's symbol.\"\n}\n"
  },
  {
    "path": "models/Waypoint.json",
    "content": "{\n  \"description\": \"A waypoint is a location that ships can travel to such as a Planet, Moon or Space Station.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./WaypointSymbol.json\"\n    },\n    \"type\": {\n      \"$ref\": \"./WaypointType.json\"\n    },\n    \"systemSymbol\": {\n      \"$ref\": \"./SystemSymbol.json\"\n    },\n    \"x\": {\n      \"type\": \"integer\",\n      \"description\": \"Relative position of the waypoint on the system's x axis. This is not an absolute position in the universe.\"\n    },\n    \"y\": {\n      \"type\": \"integer\",\n      \"description\": \"Relative position of the waypoint on the system's y axis. This is not an absolute position in the universe.\"\n    },\n    \"orbitals\": {\n      \"type\": \"array\",\n      \"description\": \"Waypoints that orbit this waypoint.\",\n      \"items\": {\n        \"$ref\": \"./WaypointOrbital.json\"\n      }\n    },\n    \"orbits\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the parent waypoint, if this waypoint is in orbit around another waypoint. Otherwise this value is undefined.\"\n    },\n    \"faction\": {\n      \"$ref\": \"./WaypointFaction.json\"\n    },\n    \"traits\": {\n      \"type\": \"array\",\n      \"description\": \"The traits of the waypoint.\",\n      \"items\": {\n        \"$ref\": \"./WaypointTrait.json\"\n      }\n    },\n    \"modifiers\": {\n      \"type\": \"array\",\n      \"description\": \"The modifiers of the waypoint.\",\n      \"items\": {\n        \"$ref\": \"./WaypointModifier.json\"\n      }\n    },\n    \"chart\": {\n      \"$ref\": \"./Chart.json\"\n    },\n    \"isUnderConstruction\": {\n      \"type\": \"boolean\",\n      \"description\": \"True if the waypoint is under construction.\"\n    }\n  },\n  \"required\": [\"symbol\", \"type\", \"systemSymbol\", \"x\", \"y\", \"orbitals\", \"traits\", \"isUnderConstruction\"]\n}\n"
  },
  {
    "path": "models/WaypointFaction.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"The faction that controls the waypoint.\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./FactionSymbol.json\"\n    }\n  },\n  \"required\": [\"symbol\"]\n}\n"
  },
  {
    "path": "models/WaypointModifier.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./WaypointModifierSymbol.json\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The name of the trait.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"A description of the trait.\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"description\"]\n}\n"
  },
  {
    "path": "models/WaypointModifierSymbol.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The unique identifier of the modifier.\",\n  \"enum\": [\"STRIPPED\", \"UNSTABLE\", \"RADIATION_LEAK\", \"CRITICAL_LIMIT\", \"CIVIL_UNREST\"]\n}\n"
  },
  {
    "path": "models/WaypointOrbital.json",
    "content": "{\n  \"type\": \"object\",\n  \"description\": \"An orbital is another waypoint that orbits a parent waypoint.\",\n  \"properties\": {\n    \"symbol\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"description\": \"The symbol of the orbiting waypoint.\"\n    }\n  },\n  \"required\": [\"symbol\"]\n}\n"
  },
  {
    "path": "models/WaypointSymbol.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The symbol of the waypoint.\",\n  \"minLength\": 1,\n  \"x-faker\": {\n    \"fake\": [\"X1-{{random.alphaNumeric(5)}}-{{random.alphaNumeric(5)}}\"]\n  }\n}\n"
  },
  {
    "path": "models/WaypointTrait.json",
    "content": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"symbol\": {\n      \"$ref\": \"./WaypointTraitSymbol.json\"\n    },\n    \"name\": {\n      \"type\": \"string\",\n      \"description\": \"The name of the trait.\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"A description of the trait.\"\n    }\n  },\n  \"required\": [\"symbol\", \"name\", \"description\"]\n}\n"
  },
  {
    "path": "models/WaypointTraitSymbol.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The unique identifier of the trait.\",\n  \"enum\": [\n    \"UNCHARTED\",\n    \"UNDER_CONSTRUCTION\",\n    \"MARKETPLACE\",\n    \"SHIPYARD\",\n    \"OUTPOST\",\n    \"SCATTERED_SETTLEMENTS\",\n    \"SPRAWLING_CITIES\",\n    \"MEGA_STRUCTURES\",\n    \"PIRATE_BASE\",\n    \"OVERCROWDED\",\n    \"HIGH_TECH\",\n    \"CORRUPT\",\n    \"BUREAUCRATIC\",\n    \"TRADING_HUB\",\n    \"INDUSTRIAL\",\n    \"BLACK_MARKET\",\n    \"RESEARCH_FACILITY\",\n    \"MILITARY_BASE\",\n    \"SURVEILLANCE_OUTPOST\",\n    \"EXPLORATION_OUTPOST\",\n    \"MINERAL_DEPOSITS\",\n    \"COMMON_METAL_DEPOSITS\",\n    \"PRECIOUS_METAL_DEPOSITS\",\n    \"RARE_METAL_DEPOSITS\",\n    \"METHANE_POOLS\",\n    \"ICE_CRYSTALS\",\n    \"EXPLOSIVE_GASES\",\n    \"STRONG_MAGNETOSPHERE\",\n    \"VIBRANT_AURORAS\",\n    \"SALT_FLATS\",\n    \"CANYONS\",\n    \"PERPETUAL_DAYLIGHT\",\n    \"PERPETUAL_OVERCAST\",\n    \"DRY_SEABEDS\",\n    \"MAGMA_SEAS\",\n    \"SUPERVOLCANOES\",\n    \"ASH_CLOUDS\",\n    \"VAST_RUINS\",\n    \"MUTATED_FLORA\",\n    \"TERRAFORMED\",\n    \"EXTREME_TEMPERATURES\",\n    \"EXTREME_PRESSURE\",\n    \"DIVERSE_LIFE\",\n    \"SCARCE_LIFE\",\n    \"FOSSILS\",\n    \"WEAK_GRAVITY\",\n    \"STRONG_GRAVITY\",\n    \"CRUSHING_GRAVITY\",\n    \"TOXIC_ATMOSPHERE\",\n    \"CORROSIVE_ATMOSPHERE\",\n    \"BREATHABLE_ATMOSPHERE\",\n    \"THIN_ATMOSPHERE\",\n    \"JOVIAN\",\n    \"ROCKY\",\n    \"VOLCANIC\",\n    \"FROZEN\",\n    \"SWAMP\",\n    \"BARREN\",\n    \"TEMPERATE\",\n    \"JUNGLE\",\n    \"OCEAN\",\n    \"RADIOACTIVE\",\n    \"MICRO_GRAVITY_ANOMALIES\",\n    \"DEBRIS_CLUSTER\",\n    \"DEEP_CRATERS\",\n    \"SHALLOW_CRATERS\",\n    \"UNSTABLE_COMPOSITION\",\n    \"HOLLOWED_INTERIOR\",\n    \"STRIPPED\"\n  ]\n}\n"
  },
  {
    "path": "models/WaypointType.json",
    "content": "{\n  \"type\": \"string\",\n  \"description\": \"The type of waypoint.\",\n  \"enum\": [\n    \"PLANET\",\n    \"GAS_GIANT\",\n    \"MOON\",\n    \"ORBITAL_STATION\",\n    \"JUMP_GATE\",\n    \"ASTEROID_FIELD\",\n    \"ASTEROID\",\n    \"ENGINEERED_ASTEROID\",\n    \"ASTEROID_BASE\",\n    \"NEBULA\",\n    \"DEBRIS_FIELD\",\n    \"GRAVITY_WELL\",\n    \"ARTIFICIAL_GRAVITY_WELL\",\n    \"FUEL_STATION\"\n  ]\n}\n"
  },
  {
    "path": "redocly.yaml",
    "content": "# See https://redocly.com/docs/cli/configuration/\n\napis:\n  # Update the apiName with your actual API name, and the version with your actual API version.\n  SpaceTraders@2.1.0:\n    # Update the path to your OpenAPI root file\n    root: ./reference/SpaceTraders.json\n\nlint:\n  extends:\n    - recommended\n\nfeatures.openapi:\n  generateCodeSamples:\n    languages:\n      - lang: curl\n      - lang: Node.js\n      - lang: Python\n"
  },
  {
    "path": "reference/SpaceTraders.json",
    "content": "{\n  \"openapi\": \"3.0.1\",\n  \"info\": {\n    \"title\": \"SpaceTraders API\",\n    \"version\": \"2.3.0\",\n    \"description\": \"SpaceTraders is an open-universe game and learning platform that offers a set of HTTP endpoints to control a fleet of ships and explore a multiplayer universe.\\n\\nThe API is documented using [OpenAPI](https://github.com/SpaceTradersAPI/api-docs). You can send your first request right here in your browser to check the status of the game server.\\n\\n```json http\\n{\\n  \\\"method\\\": \\\"GET\\\",\\n  \\\"url\\\": \\\"https://api.spacetraders.io/v2\\\",\\n}\\n```\\n\\nUnlike a traditional game, SpaceTraders does not have a first-party client or app to play the game. Instead, you can use the API to build your own client, write a script to automate your ships, or try an app built by the community.\\n\\nWe have a [Discord channel](https://discord.com/invite/jh6zurdWk5) where you can share your projects, ask questions, and get help from other players.\\n\\n\\n\",\n    \"contact\": {\n      \"email\": \"joel@spacetraders.io\",\n      \"name\": \"Joel Brubaker\"\n    },\n    \"license\": {\n      \"name\": \"No Permission\",\n      \"url\": \"https://choosealicense.com/no-permission/\"\n    }\n  },\n  \"security\": [\n    {\n      \"AgentToken\": [],\n      \"AccountToken\": []\n    }\n  ],\n  \"servers\": [\n    {\n      \"description\": \"v2\",\n      \"url\": \"https://api.spacetraders.io/v2\"\n    }\n  ],\n  \"tags\": [\n    {\n      \"description\": \"The agents endpoints contain actions that relate to agents. Both your own and other agents.\",\n      \"name\": \"Agents\"\n    },\n    {\n      \"description\": \"The contracts endpoints contain actions that relate to contracts. Contracts are agreements between agents and factions to perform certain services in exchange for a reward.\",\n      \"name\": \"Contracts\"\n    },\n    {\n      \"description\": \"The factions endpoints contain actions that relate to factions. Factions are organizations or sentient beings that are actively competing for control of the universe.\",\n      \"name\": \"Factions\"\n    },\n    {\n      \"description\": \"The fleet endpoints contain actions that relate to the fleet of ships owned by agents, and the actions those ships can perform.\",\n      \"name\": \"Fleet\"\n    },\n    {\n      \"description\": \"The systems endpoints contain actions that relate to systems and waypoints. Systems are the individual stars in the universe, and waypoints are the locations within a system.\",\n      \"name\": \"Systems\"\n    },\n    {\n      \"name\": \"Data\",\n      \"description\": \"The data endpoints contain actions that relate to the data that is stored in the game. This is all the data that doesn't change over the course of a reset (but might change between resets).\"\n    },\n    {\n      \"description\": \"The global endpoints contain actions that relate to the game server itself. This includes announcements, leaderboards, and server resets. It also includes endpoints that don't fit into the other categories.\",\n      \"name\": \"Global\"\n    }\n  ],\n  \"components\": {\n    \"requestBodies\": {},\n    \"schemas\": {},\n    \"securitySchemes\": {\n      \"AgentToken\": {\n        \"description\": \"When you register a new agent you will be granted a private bearer token which grants authorization to use the API during a specific reset.\",\n        \"scheme\": \"bearer\",\n        \"type\": \"http\",\n        \"bearerFormat\": \"JWT\"\n      },\n      \"AccountToken\": {\n        \"description\": \"After you create an account you will be able to generate a private bearer token which grants authorization to create agents.\",\n        \"scheme\": \"bearer\",\n        \"type\": \"http\",\n        \"bearerFormat\": \"JWT\"\n      }\n    },\n    \"links\": {},\n    \"callbacks\": {}\n  },\n  \"paths\": {\n    \"/\": {\n      \"get\": {\n        \"description\": \"Return the status of the game server.\\nThis also includes a few global elements, such as announcements, server reset dates and leaderboards.\",\n        \"operationId\": \"get-status\",\n        \"tags\": [\"Global\"],\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"status\": {\n                      \"type\": \"string\",\n                      \"description\": \"The current status of the game server.\"\n                    },\n                    \"version\": {\n                      \"type\": \"string\",\n                      \"description\": \"The current version of the API.\"\n                    },\n                    \"resetDate\": {\n                      \"type\": \"string\",\n                      \"description\": \"The date when the game server was last reset.\"\n                    },\n                    \"description\": {\n                      \"type\": \"string\"\n                    },\n                    \"stats\": {\n                      \"type\": \"object\",\n                      \"required\": [\"agents\", \"ships\", \"systems\", \"waypoints\"],\n                      \"properties\": {\n                        \"accounts\": {\n                          \"type\": \"integer\",\n                          \"description\": \"Total number of accounts registered on the game server.\"\n                        },\n                        \"agents\": {\n                          \"type\": \"integer\",\n                          \"description\": \"Number of registered agents in the game.\"\n                        },\n                        \"ships\": {\n                          \"type\": \"integer\",\n                          \"description\": \"Total number of ships in the game.\"\n                        },\n                        \"systems\": {\n                          \"type\": \"integer\",\n                          \"description\": \"Total number of systems in the game.\"\n                        },\n                        \"waypoints\": {\n                          \"type\": \"integer\",\n                          \"description\": \"Total number of waypoints in the game.\"\n                        }\n                      }\n                    },\n                    \"leaderboards\": {\n                      \"type\": \"object\",\n                      \"required\": [\"mostCredits\", \"mostSubmittedCharts\"],\n                      \"properties\": {\n                        \"mostCredits\": {\n                          \"type\": \"array\",\n                          \"description\": \"Top agents with the most credits.\",\n                          \"items\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                              \"agentSymbol\": {\n                                \"type\": \"string\",\n                                \"description\": \"Symbol of the agent.\"\n                              },\n                              \"credits\": {\n                                \"type\": \"integer\",\n                                \"format\": \"int64\",\n                                \"description\": \"Amount of credits.\"\n                              }\n                            },\n                            \"required\": [\"agentSymbol\", \"credits\"]\n                          }\n                        },\n                        \"mostSubmittedCharts\": {\n                          \"type\": \"array\",\n                          \"description\": \"Top agents with the most charted submitted.\",\n                          \"items\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                              \"agentSymbol\": {\n                                \"type\": \"string\",\n                                \"description\": \"Symbol of the agent.\"\n                              },\n                              \"chartCount\": {\n                                \"type\": \"integer\",\n                                \"description\": \"Amount of charts done by the agent.\"\n                              }\n                            },\n                            \"required\": [\"agentSymbol\", \"chartCount\"]\n                          }\n                        }\n                      }\n                    },\n                    \"serverResets\": {\n                      \"type\": \"object\",\n                      \"required\": [\"next\", \"frequency\"],\n                      \"properties\": {\n                        \"next\": {\n                          \"type\": \"string\",\n                          \"description\": \"The date and time when the game server will reset.\"\n                        },\n                        \"frequency\": {\n                          \"type\": \"string\",\n                          \"description\": \"How often we intend to reset the game server.\"\n                        }\n                      }\n                    },\n                    \"announcements\": {\n                      \"type\": \"array\",\n                      \"items\": {\n                        \"type\": \"object\",\n                        \"properties\": {\n                          \"title\": {\n                            \"type\": \"string\"\n                          },\n                          \"body\": {\n                            \"type\": \"string\"\n                          }\n                        },\n                        \"required\": [\"title\", \"body\"]\n                      }\n                    },\n                    \"links\": {\n                      \"type\": \"array\",\n                      \"items\": {\n                        \"type\": \"object\",\n                        \"properties\": {\n                          \"name\": {\n                            \"type\": \"string\"\n                          },\n                          \"url\": {\n                            \"type\": \"string\"\n                          }\n                        },\n                        \"required\": [\"name\", \"url\"]\n                      }\n                    }\n                  },\n                  \"required\": [\n                    \"status\",\n                    \"version\",\n                    \"resetDate\",\n                    \"description\",\n                    \"stats\",\n                    \"leaderboards\",\n                    \"serverResets\",\n                    \"announcements\",\n                    \"links\"\n                  ]\n                }\n              }\n            },\n            \"description\": \"Fetched status successfully.\"\n          }\n        },\n        \"summary\": \"Get Status\",\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"parameters\": []\n      }\n    },\n    \"/register\": {\n      \"post\": {\n        \"description\": \"Creates a new agent and ties it to an account. \\nThe agent symbol must consist of a 3-14 character string, and will be used to represent your agent. This symbol will prefix the symbol of every ship you own. Agent symbols will be cast to all uppercase characters.\\n\\nThis new agent will be tied to a starting faction of your choice, which determines your starting location, and will be granted an authorization token, a contract with their starting faction, a command ship that can fly across space with advanced capabilities, a small probe ship that can be used for reconnaissance, and 175,000 credits.\\n\\n> #### Keep your token safe and secure\\n>\\n> Keep careful track of where you store your token. You can generate a new token from our account dashboard, but if someone else gains access to your token they will be able to use it to make API requests on your behalf until the end of the reset.\\n\\nIf you are new to SpaceTraders, It is recommended to register with the COSMIC faction, a faction that is well connected to the rest of the universe. After registering, you should try our interactive [quickstart guide](https://docs.spacetraders.io/quickstart/new-game) which will walk you through a few basic API requests in just a few minutes.\",\n        \"operationId\": \"register\",\n        \"tags\": [\"Global\"],\n        \"security\": [\n          {\n            \"AccountToken\": []\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"faction\": {\n                    \"$ref\": \"../models/FactionSymbol.json\"\n                  },\n                  \"symbol\": {\n                    \"description\": \"Your desired agent symbol. This will be a unique name used to represent your agent, and will be the prefix for your ships.\",\n                    \"example\": \"BADGER\",\n                    \"maxLength\": 14,\n                    \"minLength\": 3,\n                    \"type\": \"string\"\n                  },\n                  \"email\": {\n                    \"type\": \"string\",\n                    \"description\": \"Your email address. This is used if you reserved your call sign between resets.\"\n                  }\n                },\n                \"required\": [\"symbol\", \"faction\"],\n                \"type\": \"object\"\n              }\n            }\n          },\n          \"description\": \"\"\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"contract\": {\n                          \"$ref\": \"../models/Contract.json\"\n                        },\n                        \"faction\": {\n                          \"$ref\": \"../models/Faction.json\"\n                        },\n                        \"ships\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/Ship.json\"\n                          }\n                        },\n                        \"token\": {\n                          \"description\": \"A Bearer token for accessing secured API endpoints.\",\n                          \"type\": \"string\"\n                        }\n                      },\n                      \"required\": [\"token\", \"agent\", \"faction\", \"contract\", \"ship\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully registered.\"\n          }\n        },\n        \"summary\": \"Register New Agent\",\n        \"parameters\": []\n      }\n    },\n    \"/systems\": {\n      \"get\": {\n        \"description\": \"Return a paginated list of all systems.\",\n        \"operationId\": \"get-systems\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"items\": {\n                        \"$ref\": \"../models/System.json\"\n                      },\n                      \"type\": \"array\"\n                    },\n                    \"meta\": {\n                      \"$ref\": \"../models/Meta.json\"\n                    }\n                  },\n                  \"required\": [\"data\", \"meta\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully listed systems.\"\n          }\n        },\n        \"summary\": \"List Systems\",\n        \"tags\": [\"Systems\"],\n        \"parameters\": [\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"default\": 1\n            },\n            \"in\": \"query\",\n            \"name\": \"page\",\n            \"description\": \"What entry offset to request\"\n          },\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"maximum\": 20,\n              \"default\": 10\n            },\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"description\": \"How many entries to return per page\"\n          }\n        ],\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ]\n      }\n    },\n    \"/systems/{systemSymbol}\": {\n      \"get\": {\n        \"description\": \"Get the details of a system.\",\n        \"operationId\": \"get-system\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/System.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched the system.\"\n          }\n        },\n        \"summary\": \"Get System\",\n        \"tags\": [\"Systems\"],\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"parameters\": [\n          {\n            \"description\": \"The system symbol\",\n            \"in\": \"path\",\n            \"name\": \"systemSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"default\": \"X1-OE\",\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/systems/{systemSymbol}/waypoints\": {\n      \"get\": {\n        \"description\": \"Return a paginated list of all of the waypoints for a given system.\\n\\nIf a waypoint is uncharted, it will return the `Uncharted` trait instead of its actual traits.\",\n        \"operationId\": \"get-system-waypoints\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"items\": {\n                        \"$ref\": \"../models/Waypoint.json\"\n                      },\n                      \"type\": \"array\"\n                    },\n                    \"meta\": {\n                      \"$ref\": \"../models/Meta.json\"\n                    }\n                  },\n                  \"required\": [\"data\", \"meta\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched all waypoints in the system.\"\n          }\n        },\n        \"summary\": \"List Waypoints in System\",\n        \"tags\": [\"Systems\"],\n        \"parameters\": [\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"default\": 1\n            },\n            \"in\": \"query\",\n            \"name\": \"page\",\n            \"description\": \"What entry offset to request\"\n          },\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"maximum\": 20,\n              \"default\": 10\n            },\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"description\": \"How many entries to return per page\"\n          },\n          {\n            \"description\": \"Filter waypoints by type.\",\n            \"in\": \"query\",\n            \"name\": \"type\",\n            \"schema\": {\n              \"$ref\": \"../models/WaypointType.json\"\n            }\n          },\n          {\n            \"description\": \"Filter waypoints by one or more traits.\",\n            \"in\": \"query\",\n            \"name\": \"traits\",\n            \"schema\": {\n              \"oneOf\": [\n                {\n                  \"$ref\": \"../models/WaypointTraitSymbol.json\"\n                },\n                {\n                  \"type\": \"array\",\n                  \"items\": {\n                    \"$ref\": \"../models/WaypointTraitSymbol.json\"\n                  }\n                }\n              ]\n            }\n          },\n          {\n            \"description\": \"The system symbol\",\n            \"in\": \"path\",\n            \"name\": \"systemSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ],\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ]\n      }\n    },\n    \"/systems/{systemSymbol}/waypoints/{waypointSymbol}\": {\n      \"get\": {\n        \"description\": \"View the details of a waypoint.\\n\\nIf the waypoint is uncharted, it will return the 'Uncharted' trait instead of its actual traits.\",\n        \"operationId\": \"get-waypoint\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Waypoint.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched waypoint.\"\n          }\n        },\n        \"summary\": \"Get Waypoint\",\n        \"tags\": [\"Systems\"],\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"parameters\": [\n          {\n            \"description\": \"The system symbol\",\n            \"in\": \"path\",\n            \"name\": \"systemSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"description\": \"The waypoint symbol\",\n            \"in\": \"path\",\n            \"name\": \"waypointSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/systems/{systemSymbol}/waypoints/{waypointSymbol}/market\": {\n      \"get\": {\n        \"description\": \"Retrieve imports, exports and exchange data from a marketplace. Requires a waypoint that has the `Marketplace` trait to use.\\n\\nSend a ship to the waypoint to access trade good prices and recent transactions. Refer to the [Market Overview page](https://docs.spacetraders.io/game-concepts/markets) to gain better a understanding of the market in the game.\",\n        \"operationId\": \"get-market\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Market.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched the market.\"\n          }\n        },\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Market\",\n        \"tags\": [\"Systems\"],\n        \"parameters\": [\n          {\n            \"description\": \"The system symbol\",\n            \"in\": \"path\",\n            \"name\": \"systemSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"description\": \"The waypoint symbol\",\n            \"in\": \"path\",\n            \"name\": \"waypointSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/systems/{systemSymbol}/waypoints/{waypointSymbol}/shipyard\": {\n      \"get\": {\n        \"description\": \"Get the shipyard for a waypoint. Requires a waypoint that has the `Shipyard` trait to use. Send a ship to the waypoint to access data on ships that are currently available for purchase and recent transactions.\",\n        \"operationId\": \"get-shipyard\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Shipyard.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched the shipyard.\"\n          }\n        },\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Shipyard\",\n        \"tags\": [\"Systems\"],\n        \"parameters\": [\n          {\n            \"description\": \"The system symbol\",\n            \"in\": \"path\",\n            \"name\": \"systemSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"description\": \"The waypoint symbol\",\n            \"in\": \"path\",\n            \"name\": \"waypointSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/systems/{systemSymbol}/waypoints/{waypointSymbol}/jump-gate\": {\n      \"get\": {\n        \"description\": \"Get jump gate details for a waypoint. Requires a waypoint of type `JUMP_GATE` to use.\\n\\nWaypoints connected to this jump gate can be \",\n        \"operationId\": \"get-jump-gate\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/JumpGate.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched jump gate.\"\n          }\n        },\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Jump Gate\",\n        \"tags\": [\"Systems\"],\n        \"parameters\": [\n          {\n            \"description\": \"The system symbol\",\n            \"in\": \"path\",\n            \"name\": \"systemSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"description\": \"The waypoint symbol\",\n            \"in\": \"path\",\n            \"name\": \"waypointSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/systems/{systemSymbol}/waypoints/{waypointSymbol}/construction\": {\n      \"get\": {\n        \"description\": \"Get construction details for a waypoint. Requires a waypoint with a property of `isUnderConstruction` to be true.\",\n        \"operationId\": \"get-construction\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Construction.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched construction site.\"\n          }\n        },\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Construction Site\",\n        \"tags\": [\"Systems\"],\n        \"parameters\": [\n          {\n            \"description\": \"The system symbol\",\n            \"in\": \"path\",\n            \"name\": \"systemSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"description\": \"The waypoint symbol\",\n            \"in\": \"path\",\n            \"name\": \"waypointSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/systems/{systemSymbol}/waypoints/{waypointSymbol}/construction/supply\": {\n      \"post\": {\n        \"description\": \"Supply a construction site with the specified good. Requires a waypoint with a property of `isUnderConstruction` to be true.\\n\\nThe good must be in your ship's cargo. The good will be removed from your ship's cargo and added to the construction site's materials.\",\n        \"operationId\": \"supply-construction\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"shipSymbol\": {\n                    \"type\": \"string\",\n                    \"description\": \"Symbol of the ship to use.\"\n                  },\n                  \"tradeSymbol\": {\n                    \"type\": \"string\",\n                    \"description\": \"The symbol of the good to supply.\"\n                  },\n                  \"units\": {\n                    \"type\": \"integer\",\n                    \"description\": \"Amount of units to supply.\"\n                  }\n                },\n                \"required\": [\"shipSymbol\", \"tradeSymbol\", \"units\"],\n                \"type\": \"object\"\n              }\n            }\n          },\n          \"description\": \"\"\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"construction\": {\n                          \"$ref\": \"../models/Construction.json\"\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        }\n                      },\n                      \"required\": [\"construction\", \"cargo\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully supplied construction site.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Supply Construction Site\",\n        \"tags\": [\"Systems\"],\n        \"parameters\": [\n          {\n            \"description\": \"The system symbol\",\n            \"in\": \"path\",\n            \"name\": \"systemSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          },\n          {\n            \"description\": \"The waypoint symbol\",\n            \"in\": \"path\",\n            \"name\": \"waypointSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/factions\": {\n      \"get\": {\n        \"description\": \"Return a paginated list of all the factions in the game.\",\n        \"operationId\": \"get-factions\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"items\": {\n                        \"$ref\": \"../models/Faction.json\"\n                      },\n                      \"type\": \"array\"\n                    },\n                    \"meta\": {\n                      \"$ref\": \"../models/Meta.json\"\n                    }\n                  },\n                  \"required\": [\"data\", \"meta\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched factions.\"\n          }\n        },\n        \"summary\": \"List Factions\",\n        \"tags\": [\"Factions\"],\n        \"parameters\": [\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"default\": 1\n            },\n            \"in\": \"query\",\n            \"name\": \"page\",\n            \"description\": \"What entry offset to request\"\n          },\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"maximum\": 20,\n              \"default\": 10\n            },\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"description\": \"How many entries to return per page\"\n          }\n        ],\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ]\n      }\n    },\n    \"/factions/{factionSymbol}\": {\n      \"get\": {\n        \"description\": \"View the details of a faction.\",\n        \"operationId\": \"get-faction\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Faction.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched a faction.\"\n          }\n        },\n        \"summary\": \"Get Faction\",\n        \"tags\": [\"Factions\"],\n        \"parameters\": [\n          {\n            \"description\": \"The faction symbol\",\n            \"in\": \"path\",\n            \"name\": \"factionSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\",\n              \"example\": \"COSMIC\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/agent\": {\n      \"get\": {\n        \"description\": \"Fetch your agent's details.\",\n        \"operationId\": \"get-my-agent\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Agent.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched agent details.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Agent\",\n        \"tags\": [\"Agents\"],\n        \"parameters\": []\n      }\n    },\n    \"/agents\": {\n      \"get\": {\n        \"description\": \"Fetch agents details.\",\n        \"operationId\": \"get-agents\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"items\": {\n                        \"$ref\": \"../models/Agent.json\"\n                      },\n                      \"type\": \"array\"\n                    },\n                    \"meta\": {\n                      \"$ref\": \"../models/Meta.json\"\n                    }\n                  },\n                  \"required\": [\"data\", \"meta\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched agents details.\"\n          }\n        },\n        \"summary\": \"List Agents\",\n        \"tags\": [\"Agents\"],\n        \"parameters\": [\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"default\": 1\n            },\n            \"in\": \"query\",\n            \"name\": \"page\",\n            \"description\": \"What entry offset to request\"\n          },\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"maximum\": 20,\n              \"default\": 10\n            },\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"description\": \"How many entries to return per page\"\n          }\n        ],\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ]\n      }\n    },\n    \"/agents/{agentSymbol}\": {\n      \"get\": {\n        \"description\": \"Fetch agent details.\",\n        \"operationId\": \"get-agent\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Agent.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched agent details.\"\n          }\n        },\n        \"summary\": \"Get Public Agent\",\n        \"tags\": [\"Agents\"],\n        \"parameters\": [\n          {\n            \"description\": \"The agent symbol\",\n            \"in\": \"path\",\n            \"name\": \"agentSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"default\": \"FEBA66\",\n              \"type\": \"string\"\n            }\n          }\n        ],\n        \"security\": [\n          {},\n          {\n            \"AgentToken\": []\n          }\n        ]\n      }\n    },\n    \"/my/contracts\": {\n      \"get\": {\n        \"description\": \"Return a paginated list of all your contracts.\",\n        \"operationId\": \"get-contracts\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"items\": {\n                        \"$ref\": \"../models/Contract.json\"\n                      },\n                      \"type\": \"array\"\n                    },\n                    \"meta\": {\n                      \"$ref\": \"../models/Meta.json\"\n                    }\n                  },\n                  \"required\": [\"data\", \"meta\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully listed contracts.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"List Contracts\",\n        \"tags\": [\"Contracts\"],\n        \"parameters\": [\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"default\": 1\n            },\n            \"in\": \"query\",\n            \"name\": \"page\",\n            \"description\": \"What entry offset to request\"\n          },\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"maximum\": 20,\n              \"default\": 10\n            },\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"description\": \"How many entries to return per page\"\n          }\n        ]\n      }\n    },\n    \"/my/contracts/{contractId}\": {\n      \"get\": {\n        \"description\": \"Get the details of a contract by ID.\",\n        \"operationId\": \"get-contract\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Contract.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched contract.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Contract\",\n        \"tags\": [\"Contracts\"],\n        \"parameters\": [\n          {\n            \"description\": \"The contract ID\",\n            \"in\": \"path\",\n            \"name\": \"contractId\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/contracts/{contractId}/accept\": {\n      \"post\": {\n        \"description\": \"Accept a contract by ID. \\n\\nYou can only accept contracts that were offered to you, were not accepted yet, and whose deadlines has not passed yet.\",\n        \"operationId\": \"accept-contract\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"contract\": {\n                          \"$ref\": \"../models/Contract.json\"\n                        }\n                      },\n                      \"required\": [\"contract\", \"agent\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully accepted contract.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Accept Contract\",\n        \"tags\": [\"Contracts\"],\n        \"parameters\": [\n          {\n            \"description\": \"The contract ID to accept.\",\n            \"in\": \"path\",\n            \"name\": \"contractId\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/contracts/{contractId}/deliver\": {\n      \"post\": {\n        \"description\": \"Deliver cargo to a contract.\\n\\nIn order to use this API, a ship must be at the delivery location (denoted in the delivery terms as `destinationSymbol` of a contract) and must have a number of units of a good required by this contract in its cargo.\\n\\nCargo that was delivered will be removed from the ship's cargo.\",\n        \"operationId\": \"deliver-contract\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"shipSymbol\": {\n                    \"type\": \"string\",\n                    \"description\": \"Symbol of a ship located in the destination to deliver a contract and that has a good to deliver in its cargo.\"\n                  },\n                  \"tradeSymbol\": {\n                    \"type\": \"string\",\n                    \"description\": \"The symbol of the good to deliver.\"\n                  },\n                  \"units\": {\n                    \"type\": \"integer\",\n                    \"description\": \"Amount of units to deliver.\"\n                  }\n                },\n                \"required\": [\"shipSymbol\", \"tradeSymbol\", \"units\"],\n                \"type\": \"object\"\n              }\n            }\n          },\n          \"description\": \"\"\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"contract\": {\n                          \"$ref\": \"../models/Contract.json\"\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        }\n                      },\n                      \"required\": [\"contract\", \"cargo\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully delivered cargo to contract.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Deliver Cargo to Contract\",\n        \"tags\": [\"Contracts\"],\n        \"parameters\": [\n          {\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"name\": \"contractId\",\n            \"in\": \"path\",\n            \"required\": true,\n            \"description\": \"The ID of the contract.\"\n          }\n        ]\n      }\n    },\n    \"/my/contracts/{contractId}/fulfill\": {\n      \"post\": {\n        \"description\": \"Fulfill a contract. Can only be used on contracts that have all of their delivery terms fulfilled.\",\n        \"operationId\": \"fulfill-contract\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"contract\": {\n                          \"$ref\": \"../models/Contract.json\"\n                        }\n                      },\n                      \"required\": [\"contract\", \"agent\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fulfilled a contract.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Fulfill Contract\",\n        \"tags\": [\"Contracts\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ID of the contract to fulfill.\",\n            \"in\": \"path\",\n            \"name\": \"contractId\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships\": {\n      \"get\": {\n        \"description\": \"Return a paginated list of all of ships under your agent's ownership.\",\n        \"operationId\": \"get-my-ships\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"items\": {\n                        \"$ref\": \"../models/Ship.json\"\n                      },\n                      \"type\": \"array\"\n                    },\n                    \"meta\": {\n                      \"$ref\": \"../models/Meta.json\"\n                    }\n                  },\n                  \"required\": [\"data\", \"meta\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully listed ships.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"List Ships\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"default\": 1\n            },\n            \"in\": \"query\",\n            \"name\": \"page\",\n            \"description\": \"What entry offset to request\"\n          },\n          {\n            \"schema\": {\n              \"type\": \"integer\",\n              \"minimum\": 1,\n              \"maximum\": 20,\n              \"default\": 10\n            },\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"description\": \"How many entries to return per page\"\n          }\n        ]\n      },\n      \"post\": {\n        \"description\": \"Purchase a ship from a Shipyard. In order to use this function, a ship under your agent's ownership must be in a waypoint that has the `Shipyard` trait, and the Shipyard must sell the type of the desired ship.\\n\\nShipyards typically offer ship types, which are predefined templates of ships that have dedicated roles. A template comes with a preset of an engine, a reactor, and a frame. It may also include a few modules and mounts.\",\n        \"operationId\": \"purchase-ship\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"shipType\": {\n                    \"$ref\": \"../models/ShipType.json\"\n                  },\n                  \"waypointSymbol\": {\n                    \"description\": \"The symbol of the waypoint you want to purchase the ship at.\",\n                    \"type\": \"string\"\n                  }\n                },\n                \"required\": [\"shipType\", \"waypointSymbol\"],\n                \"type\": \"object\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"ship\": {\n                          \"$ref\": \"../models/Ship.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/ShipyardTransaction.json\"\n                        }\n                      },\n                      \"required\": [\"ship\", \"agent\", \"transaction\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Purchased ship successfully.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Purchase Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": []\n      }\n    },\n    \"/my/ships/{shipSymbol}\": {\n      \"get\": {\n        \"description\": \"Retrieve the details of a ship under your agent's ownership.\",\n        \"operationId\": \"get-my-ship\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Ship.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched ship.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The symbol of the ship.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/cargo\": {\n      \"get\": {\n        \"description\": \"Retrieve the cargo of a ship under your agent's ownership.\",\n        \"operationId\": \"get-my-ship-cargo\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/ShipCargo.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched ship's cargo.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Ship Cargo\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The symbol of the ship.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/orbit\": {\n      \"post\": {\n        \"description\": \"Attempt to move your ship into orbit at its current location. The request will only succeed if your ship is capable of moving into orbit at the time of the request.\\n\\nOrbiting ships are able to do actions that require the ship to be above surface such as navigating or extracting, but cannot access elements in their current waypoint, such as the market or a shipyard.\\n\\nThe endpoint is idempotent - successive calls will succeed even if the ship is already in orbit.\",\n        \"operationId\": \"orbit-ship\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Orbit Ship 200 Response\",\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"nav\": {\n                          \"$ref\": \"../models/ShipNav.json\"\n                        }\n                      },\n                      \"type\": \"object\",\n                      \"required\": [\"nav\"]\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"The ship has successfully moved into orbit at its current location.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Orbit Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The symbol of the ship.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/refine\": {\n      \"post\": {\n        \"description\": \"Attempt to refine the raw materials on your ship. The request will only succeed if your ship is capable of refining at the time of the request. In order to be able to refine, a ship must have goods that can be refined and have installed a `Refinery` module that can refine it.\\n\\nWhen refining, 100 basic goods will be converted into 10 processed goods.\",\n        \"operationId\": \"ship-refine\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"type\": \"object\",\n                \"properties\": {\n                  \"produce\": {\n                    \"description\": \"The type of good to produce out of the refining process.\",\n                    \"type\": \"string\",\n                    \"enum\": [\"IRON\", \"COPPER\", \"SILVER\", \"GOLD\", \"ALUMINUM\", \"PLATINUM\", \"URANITE\", \"MERITIUM\", \"FUEL\"]\n                  }\n                },\n                \"required\": [\"produce\"]\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Ship Refine 201 Response\",\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"cargo\", \"cooldown\", \"produced\", \"consumed\"],\n                      \"properties\": {\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"produced\": {\n                          \"type\": \"array\",\n                          \"description\": \"Goods that were produced by this refining process.\",\n                          \"items\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                              \"tradeSymbol\": {\n                                \"type\": \"string\",\n                                \"description\": \"Symbol of the good.\"\n                              },\n                              \"units\": {\n                                \"type\": \"integer\",\n                                \"description\": \"Amount of units of the good.\"\n                              }\n                            },\n                            \"required\": [\"tradeSymbol\", \"units\"]\n                          }\n                        },\n                        \"consumed\": {\n                          \"type\": \"array\",\n                          \"description\": \"Goods that were consumed during this refining process.\",\n                          \"items\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                              \"tradeSymbol\": {\n                                \"type\": \"string\",\n                                \"description\": \"Symbol of the good.\"\n                              },\n                              \"units\": {\n                                \"type\": \"integer\",\n                                \"description\": \"Amount of units of the good.\"\n                              }\n                            },\n                            \"required\": [\"tradeSymbol\", \"units\"]\n                          }\n                        }\n                      }\n                    }\n                  },\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"The ship has successfully refined goods.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Ship Refine\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The symbol of the ship.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/chart\": {\n      \"post\": {\n        \"description\": \"Command a ship to chart the waypoint at its current location.\\n\\nMost waypoints in the universe are uncharted by default. These waypoints have their traits hidden until they have been charted by a ship.\\n\\nCharting a waypoint will record your agent as the one who created the chart, and all other agents would also be able to see the waypoint's traits. Charting a waypoint gives you a one time reward of credits based on the rarity of the waypoint's traits.\",\n        \"operationId\": \"create-chart\",\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"chart\": {\n                          \"$ref\": \"../models/Chart.json\"\n                        },\n                        \"waypoint\": {\n                          \"$ref\": \"../models/Waypoint.json\"\n                        },\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        }\n                      },\n                      \"required\": [\"chart\", \"waypoint\", \"agent\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"type\": \"object\",\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"Created\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Create Chart\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The symbol of the ship.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/cooldown\": {\n      \"get\": {\n        \"description\": \"Retrieve the details of your ship's reactor cooldown. Some actions such as activating your jump drive, scanning, or extracting resources taxes your reactor and results in a cooldown.\\n\\nYour ship cannot perform additional actions until your cooldown has expired. The duration of your cooldown is relative to the power consumption of the related modules or mounts for the action taken.\\n\\nResponse returns a 204 status code (no-content) when the ship has no cooldown.\",\n        \"operationId\": \"get-ship-cooldown\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/Cooldown.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully fetched ship's cooldown.\"\n          },\n          \"204\": {\n            \"description\": \"No cooldown.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Ship Cooldown\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The symbol of the ship.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/dock\": {\n      \"post\": {\n        \"description\": \"Attempt to dock your ship at its current location. Docking will only succeed if your ship is capable of docking at the time of the request.\\n\\nDocked ships can access elements in their current location, such as the market or a shipyard, but cannot do actions that require the ship to be above surface such as navigating or extracting.\\n\\nThe endpoint is idempotent - successive calls will succeed even if the ship is already docked.\",\n        \"operationId\": \"dock-ship\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Dock Ship 200 Response\",\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"nav\": {\n                          \"$ref\": \"../models/ShipNav.json\"\n                        }\n                      },\n                      \"required\": [\"nav\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"The ship has successfully docked at its current location.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Dock Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The symbol of the ship.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/survey\": {\n      \"post\": {\n        \"description\": \"Create surveys on a waypoint that can be extracted such as asteroid fields. A survey focuses on specific types of deposits from the extracted location. When ships extract using this survey, they are guaranteed to procure a high amount of one of the goods in the survey.\\n\\nIn order to use a survey, send the entire survey details in the body of the extract request.\\n\\nEach survey may have multiple deposits, and if a symbol shows up more than once, that indicates a higher chance of extracting that resource.\\n\\nYour ship will enter a cooldown after surveying in which it is unable to perform certain actions. Surveys will eventually expire after a period of time or will be exhausted after being extracted several times based on the survey's size. Multiple ships can use the same survey for extraction.\\n\\nA ship must have the `Surveyor` mount installed in order to use this function.\",\n        \"operationId\": \"create-survey\",\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"cooldown\", \"surveys\"],\n                      \"properties\": {\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"surveys\": {\n                          \"type\": \"array\",\n                          \"description\": \"Surveys created by this action.\",\n                          \"items\": {\n                            \"$ref\": \"../models/Survey.json\"\n                          }\n                        }\n                      }\n                    }\n                  },\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"Surveys has been created.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Create Survey\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The symbol of the ship.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/extract\": {\n      \"post\": {\n        \"description\": \"Extract resources from a waypoint that can be extracted, such as asteroid fields, into your ship. Send an optional survey as the payload to target specific yields.\\n\\nThe ship must be in orbit to be able to extract and must have mining equipments installed that can extract goods, such as the `Gas Siphon` mount for gas-based goods or `Mining Laser` mount for ore-based goods.\\n\\nThe survey property is now deprecated. See the `extract/survey` endpoint for more details.\",\n        \"operationId\": \"extract-resources\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"survey\": {\n                    \"deprecated\": true,\n                    \"$ref\": \"../models/Survey.json\"\n                  }\n                },\n                \"type\": \"object\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"extraction\": {\n                          \"$ref\": \"../models/Extraction.json\"\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"modifiers\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/WaypointModifier.json\"\n                          }\n                        },\n                        \"events\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipConditionEvent.json\"\n                          }\n                        }\n                      },\n                      \"required\": [\"extraction\", \"cooldown\", \"cargo\", \"events\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Extracted successfully.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Extract Resources\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/siphon\": {\n      \"post\": {\n        \"description\": \"Siphon gases or other resources from gas giants.\\n\\nThe ship must be in orbit to be able to siphon and must have siphon mounts and a gas processor installed.\",\n        \"operationId\": \"siphon-resources\",\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"siphon\": {\n                          \"$ref\": \"../models/Siphon.json\"\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"events\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipConditionEvent.json\"\n                          }\n                        }\n                      },\n                      \"required\": [\"siphon\", \"cooldown\", \"cargo\", \"events\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Siphon successful.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Siphon Resources\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/extract/survey\": {\n      \"post\": {\n        \"description\": \"Use a survey when extracting resources from a waypoint. This endpoint requires a survey as the payload, which allows your ship to extract specific yields.\\n\\nSend the full survey object as the payload which will be validated according to the signature. If the signature is invalid, or any properties of the survey are changed, the request will fail.\",\n        \"operationId\": \"extract-resources-with-survey\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"$ref\": \"../models/Survey.json\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"extraction\": {\n                          \"$ref\": \"../models/Extraction.json\"\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"events\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipConditionEvent.json\"\n                          }\n                        }\n                      },\n                      \"required\": [\"extraction\", \"cooldown\", \"cargo\", \"events\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Extracted successfully.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Extract Resources with Survey\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/jettison\": {\n      \"post\": {\n        \"description\": \"Jettison cargo from your ship's cargo hold.\",\n        \"operationId\": \"jettison\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"type\": \"object\",\n                \"properties\": {\n                  \"symbol\": {\n                    \"$ref\": \"../models/TradeSymbol.json\"\n                  },\n                  \"units\": {\n                    \"minimum\": 1,\n                    \"type\": \"integer\",\n                    \"description\": \"Amount of units to jettison of this good.\"\n                  }\n                },\n                \"required\": [\"symbol\", \"units\"]\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        }\n                      },\n                      \"required\": [\"cargo\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Jettison successful.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Jettison Cargo\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/jump\": {\n      \"post\": {\n        \"description\": \"Jump your ship instantly to a target connected waypoint. The ship must be in orbit to execute a jump.\\n\\nA unit of antimatter is purchased and consumed from the market when jumping. The price of antimatter is determined by the market and is subject to change. A ship can only jump to connected waypoints\",\n        \"operationId\": \"jump-ship\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"waypointSymbol\": {\n                    \"description\": \"The symbol of the waypoint to jump to. The destination must be a connected waypoint.\",\n                    \"type\": \"string\"\n                  }\n                },\n                \"required\": [\"waypointSymbol\"],\n                \"type\": \"object\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"nav\": {\n                          \"$ref\": \"../models/ShipNav.json\"\n                        },\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/MarketTransaction.json\"\n                        },\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        }\n                      },\n                      \"required\": [\"nav\", \"cooldown\", \"transaction\", \"agent\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Jump successful.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Jump Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/navigate\": {\n      \"post\": {\n        \"description\": \"Navigate to a target destination. The ship must be in orbit to use this function. The destination waypoint must be within the same system as the ship's current location. Navigating will consume the necessary fuel from the ship's manifest based on the distance to the target waypoint.\\n\\nThe returned response will detail the route information including the expected time of arrival. Most ship actions are unavailable until the ship has arrived at it's destination.\\n\\nTo travel between systems, see the ship's Warp or Jump actions.\",\n        \"operationId\": \"navigate-ship\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"waypointSymbol\": {\n                    \"description\": \"The target destination.\",\n                    \"type\": \"string\"\n                  }\n                },\n                \"required\": [\"waypointSymbol\"],\n                \"type\": \"object\"\n              }\n            }\n          },\n          \"description\": \"\"\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"fuel\": {\n                          \"$ref\": \"../models/ShipFuel.json\"\n                        },\n                        \"nav\": {\n                          \"$ref\": \"../models/ShipNav.json\"\n                        },\n                        \"events\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipConditionEvent.json\"\n                          }\n                        }\n                      },\n                      \"required\": [\"nav\", \"fuel\", \"events\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"The successful transit information including the route details and changes to ship fuel. The route includes the expected time of arrival.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Navigate Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/nav\": {\n      \"patch\": {\n        \"description\": \"Update the nav configuration of a ship.\\n\\nCurrently only supports configuring the Flight Mode of the ship, which affects its speed and fuel consumption.\",\n        \"operationId\": \"patch-ship-nav\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"flightMode\": {\n                    \"$ref\": \"../models/ShipNavFlightMode.json\"\n                  }\n                },\n                \"type\": \"object\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"Success response for updating the nav configuration of a ship.\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"nav\": {\n                          \"$ref\": \"../models/ShipNav.json\"\n                        },\n                        \"fuel\": {\n                          \"$ref\": \"../models/ShipFuel.json\"\n                        },\n                        \"events\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipConditionEvent.json\"\n                          }\n                        }\n                      },\n                      \"required\": [\"nav\", \"fuel\", \"events\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"The updated data of the ship.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Patch Ship Nav\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      },\n      \"get\": {\n        \"description\": \"Get the current nav status of a ship.\",\n        \"operationId\": \"get-ship-nav\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"$ref\": \"../models/ShipNav.json\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"The current nav status of the ship.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Ship Nav\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/warp\": {\n      \"post\": {\n        \"description\": \"Warp your ship to a target destination in another system. The ship must be in orbit to use this function and must have the `Warp Drive` module installed. Warping will consume the necessary fuel from the ship's manifest.\\n\\nThe returned response will detail the route information including the expected time of arrival. Most ship actions are unavailable until the ship has arrived at its destination.\",\n        \"operationId\": \"warp-ship\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"properties\": {\n                  \"waypointSymbol\": {\n                    \"description\": \"The target destination.\",\n                    \"type\": \"string\"\n                  }\n                },\n                \"required\": [\"waypointSymbol\"],\n                \"type\": \"object\"\n              }\n            }\n          },\n          \"description\": \"\"\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"fuel\": {\n                          \"$ref\": \"../models/ShipFuel.json\"\n                        },\n                        \"nav\": {\n                          \"$ref\": \"../models/ShipNav.json\"\n                        }\n                      },\n                      \"required\": [\"nav\", \"fuel\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"The successful transit information including the route details and changes to ship fuel. The route includes the expected time of arrival.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Warp Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/sell\": {\n      \"post\": {\n        \"description\": \"Sell cargo in your ship to a market that trades this cargo. The ship must be docked in a waypoint that has the `Marketplace` trait in order to use this function.\",\n        \"operationId\": \"sell-cargo\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"title\": \"SellCargoRequest\",\n                \"type\": \"object\",\n                \"properties\": {\n                  \"symbol\": {\n                    \"$ref\": \"../models/TradeSymbol.json\"\n                  },\n                  \"units\": {\n                    \"type\": \"integer\",\n                    \"description\": \"Amounts of units to sell of the selected good.\"\n                  }\n                },\n                \"required\": [\"symbol\", \"units\"]\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Sell Cargo 201 Response\",\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/MarketTransaction.json\"\n                        }\n                      },\n                      \"required\": [\"cargo\", \"transaction\", \"agent\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Cargo was successfully sold.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Sell Cargo\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"Symbol of a ship.\"\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/scan/systems\": {\n      \"post\": {\n        \"description\": \"Scan for nearby systems, retrieving information on the systems' distance from the ship and their waypoints. Requires a ship to have the `Sensor Array` mount installed to use.\\n\\nThe ship will enter a cooldown after using this function, during which it cannot execute certain actions.\",\n        \"operationId\": \"create-ship-system-scan\",\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"cooldown\", \"systems\"],\n                      \"properties\": {\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"systems\": {\n                          \"type\": \"array\",\n                          \"description\": \"List of scanned systems.\",\n                          \"items\": {\n                            \"$ref\": \"../models/ScannedSystem.json\"\n                          }\n                        }\n                      }\n                    }\n                  },\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"Successfully scanned for nearby systems.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Scan Systems\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/scan/waypoints\": {\n      \"post\": {\n        \"description\": \"Scan for nearby waypoints, retrieving detailed information on each waypoint in range. Scanning uncharted waypoints will allow you to ignore their uncharted state and will list the waypoints' traits.\\n\\nRequires a ship to have the `Sensor Array` mount installed to use.\\n\\nThe ship will enter a cooldown after using this function, during which it cannot execute certain actions.\",\n        \"operationId\": \"create-ship-waypoint-scan\",\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"cooldown\", \"waypoints\"],\n                      \"properties\": {\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"waypoints\": {\n                          \"type\": \"array\",\n                          \"description\": \"List of scanned waypoints.\",\n                          \"items\": {\n                            \"$ref\": \"../models/ScannedWaypoint.json\"\n                          }\n                        }\n                      }\n                    }\n                  },\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"Successfully scanned for nearby waypoints.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Scan Waypoints\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/scan/ships\": {\n      \"post\": {\n        \"description\": \"Scan for nearby ships, retrieving information for all ships in range.\\n\\nRequires a ship to have the `Sensor Array` mount installed to use.\\n\\nThe ship will enter a cooldown after using this function, during which it cannot execute certain actions.\",\n        \"operationId\": \"create-ship-ship-scan\",\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"cooldown\", \"ships\"],\n                      \"properties\": {\n                        \"cooldown\": {\n                          \"$ref\": \"../models/Cooldown.json\"\n                        },\n                        \"ships\": {\n                          \"type\": \"array\",\n                          \"description\": \"List of scanned ships.\",\n                          \"items\": {\n                            \"$ref\": \"../models/ScannedShip.json\"\n                          }\n                        }\n                      }\n                    }\n                  },\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"Successfully scanned for nearby ships.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Scan Ships\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/refuel\": {\n      \"post\": {\n        \"description\": \"Refuel your ship by buying fuel from the local market.\\n\\nRequires the ship to be docked in a waypoint that has the `Marketplace` trait, and the market must be selling fuel in order to refuel.\\n\\nEach fuel bought from the market replenishes 100 units in your ship's fuel.\\n\\nShips will always be refuel to their frame's maximum fuel capacity when using this action.\",\n        \"operationId\": \"refuel-ship\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"type\": \"object\",\n                \"properties\": {\n                  \"units\": {\n                    \"type\": \"integer\",\n                    \"description\": \"The amount of fuel to fill in the ship's tanks. When not specified, the ship will be refueled to its maximum fuel capacity. If the amount specified is greater than the ship's remaining capacity, the ship will only be refueled to its maximum fuel capacity. The amount specified is not in market units but in ship fuel units.\",\n                    \"example\": 100,\n                    \"minimum\": 1\n                  },\n                  \"fromCargo\": {\n                    \"type\": \"boolean\",\n                    \"description\": \"Wether to use the FUEL thats in your cargo or not. Default: false\",\n                    \"example\": false\n                  }\n                }\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"fuel\": {\n                          \"$ref\": \"../models/ShipFuel.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/MarketTransaction.json\"\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        }\n                      },\n                      \"required\": [\"agent\", \"fuel\", \"transaction\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Refueled successfully.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Refuel Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/purchase\": {\n      \"post\": {\n        \"description\": \"Purchase cargo from a market.\\n\\nThe ship must be docked in a waypoint that has `Marketplace` trait, and the market must be selling a good to be able to purchase it.\\n\\nThe maximum amount of units of a good that can be purchased in each transaction are denoted by the `tradeVolume` value of the good, which can be viewed by using the Get Market action.\\n\\nPurchased goods are added to the ship's cargo hold.\",\n        \"operationId\": \"purchase-cargo\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"title\": \"Purchase Cargo Request\",\n                \"type\": \"object\",\n                \"properties\": {\n                  \"symbol\": {\n                    \"$ref\": \"../models/TradeSymbol.json\"\n                  },\n                  \"units\": {\n                    \"type\": \"integer\",\n                    \"description\": \"Amounts of units to purchase.\"\n                  }\n                },\n                \"required\": [\"symbol\", \"units\"]\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Purchase Cargo 201 Response\",\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/MarketTransaction.json\"\n                        }\n                      },\n                      \"required\": [\"cargo\", \"transaction\", \"agent\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Purchased goods successfully.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Purchase Cargo\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The ship's symbol.\"\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/transfer\": {\n      \"post\": {\n        \"description\": \"Transfer cargo between ships.\\n\\nThe receiving ship must be in the same waypoint as the transferring ship, and it must able to hold the additional cargo after the transfer is complete. Both ships also must be in the same state, either both are docked or both are orbiting.\\n\\nThe response body's cargo shows the cargo of the transferring ship after the transfer is complete.\",\n        \"operationId\": \"transfer-cargo\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"title\": \"Transfer Cargo Request\",\n                \"type\": \"object\",\n                \"properties\": {\n                  \"tradeSymbol\": {\n                    \"$ref\": \"../models/TradeSymbol.json\"\n                  },\n                  \"units\": {\n                    \"type\": \"integer\",\n                    \"description\": \"Amount of units to transfer.\"\n                  },\n                  \"shipSymbol\": {\n                    \"type\": \"string\",\n                    \"description\": \"The symbol of the ship to transfer to.\"\n                  }\n                },\n                \"required\": [\"tradeSymbol\", \"units\", \"shipSymbol\"]\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Transfer Cargo 200 Response\",\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"cargo\"],\n                      \"properties\": {\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        }\n                      }\n                    }\n                  },\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"Transfer successful.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Transfer Cargo\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The transferring ship's symbol.\"\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/negotiate/contract\": {\n      \"post\": {\n        \"description\": \"Negotiate a new contract with the HQ.\\n\\nIn order to negotiate a new contract, an agent must not have ongoing or offered contracts over the allowed maximum amount. Currently the maximum contracts an agent can have at a time is 1.\\n\\nOnce a contract is negotiated, it is added to the list of contracts offered to the agent, which the agent can then accept. \\n\\nThe ship must be present at any waypoint with a faction present to negotiate a contract with that faction.\",\n        \"operationId\": \"negotiateContract\",\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Negotiate Contract 200 Response\",\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"contract\": {\n                          \"$ref\": \"../models/Contract.json\"\n                        }\n                      },\n                      \"required\": [\"contract\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully negotiated a new contract.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Negotiate Contract\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The ship's symbol.\"\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/mounts\": {\n      \"get\": {\n        \"description\": \"Get the mounts installed on a ship.\",\n        \"operationId\": \"get-mounts\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Get Mounts 200 Response\",\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"items\": {\n                        \"$ref\": \"../models/ShipMount.json\"\n                      },\n                      \"type\": \"array\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Got installed mounts.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Mounts\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The ship's symbol.\"\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/mounts/install\": {\n      \"post\": {\n        \"description\": \"Install a mount on a ship.\\n\\nIn order to install a mount, the ship must be docked and located in a waypoint that has a `Shipyard` trait. The ship also must have the mount to install in its cargo hold.\\n\\nAn installation fee will be deduced by the Shipyard for installing the mount on the ship. \",\n        \"operationId\": \"install-mount\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"title\": \"Install Mount Request\",\n                \"properties\": {\n                  \"symbol\": {\n                    \"type\": \"string\"\n                  }\n                },\n                \"required\": [\"symbol\"],\n                \"type\": \"object\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Install Mount 201 Response\",\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"agent\", \"mounts\", \"cargo\", \"transaction\"],\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"mounts\": {\n                          \"type\": \"array\",\n                          \"description\": \"List of installed mounts after the installation of the new mount.\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipMount.json\"\n                          }\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/ShipModificationTransaction.json\"\n                        }\n                      }\n                    }\n                  },\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"Successfully installed the mount.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Install Mount\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The ship's symbol.\"\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/mounts/remove\": {\n      \"post\": {\n        \"description\": \"Remove a mount from a ship.\\n\\nThe ship must be docked in a waypoint that has the `Shipyard` trait, and must have the desired mount that it wish to remove installed.\\n\\nA removal fee will be deduced from the agent by the Shipyard.\",\n        \"operationId\": \"remove-mount\",\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"title\": \"Remove Mount Request\",\n                \"type\": \"object\",\n                \"properties\": {\n                  \"symbol\": {\n                    \"type\": \"string\",\n                    \"description\": \"The symbol of the mount to remove.\"\n                  }\n                },\n                \"required\": [\"symbol\"]\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Remove Mount 201 Response\",\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"agent\", \"mounts\", \"cargo\", \"transaction\"],\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"mounts\": {\n                          \"type\": \"array\",\n                          \"description\": \"List of installed mounts after the removal of the selected mount.\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipMount.json\"\n                          }\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/ShipModificationTransaction.json\"\n                        }\n                      }\n                    }\n                  },\n                  \"required\": [\"data\"]\n                }\n              }\n            },\n            \"description\": \"Successfully removed the mount.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Remove Mount\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The ship's symbol.\"\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/scrap\": {\n      \"get\": {\n        \"x-preview-feature\": true,\n        \"description\": \"Get the amount of value that will be returned when scrapping a ship.\",\n        \"operationId\": \"get-scrap-ship\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"transaction\": {\n                          \"$ref\": \"../models/ScrapTransaction.json\"\n                        }\n                      },\n                      \"required\": [\"transaction\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully retrieved the amount of value that will be returned when scrapping a ship.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Scrap Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      },\n      \"post\": {\n        \"x-preview-feature\": true,\n        \"description\": \"Scrap a ship, removing it from the game and returning a portion of the ship's value to the agent. The ship must be docked in a waypoint that has the `Shipyard` trait in order to use this function. To preview the amount of value that will be returned, use the Get Ship action.\",\n        \"operationId\": \"scrap-ship\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/ScrapTransaction.json\"\n                        }\n                      },\n                      \"required\": [\"agent\", \"transaction\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Ship scrapped successfully.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Scrap Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/repair\": {\n      \"get\": {\n        \"x-preview-feature\": true,\n        \"description\": \"Get the cost of repairing a ship.\",\n        \"operationId\": \"get-repair-ship\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"transaction\": {\n                          \"$ref\": \"../models/RepairTransaction.json\"\n                        }\n                      },\n                      \"required\": [\"transaction\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Successfully retrieved the cost of repairing a ship.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Get Repair Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      },\n      \"post\": {\n        \"x-preview-feature\": true,\n        \"description\": \"Repair a ship, restoring the ship to maximum condition. The ship must be docked at a waypoint that has the `Shipyard` trait in order to use this function. To preview the cost of repairing the ship, use the Get action.\",\n        \"operationId\": \"repair-ship\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"description\": \"\",\n                  \"properties\": {\n                    \"data\": {\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"ship\": {\n                          \"$ref\": \"../models/Ship.json\"\n                        },\n                        \"transaction\": {\n                          \"$ref\": \"../models/RepairTransaction.json\"\n                        }\n                      },\n                      \"required\": [\"agent\", \"ship\", \"transaction\"],\n                      \"type\": \"object\"\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"type\": \"object\"\n                }\n              }\n            },\n            \"description\": \"Ship repaired successfully.\"\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ],\n        \"summary\": \"Repair Ship\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"description\": \"The ship symbol.\",\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            }\n          }\n        ]\n      }\n    },\n    \"/market/supply-chain\": {\n      \"get\": {\n        \"summary\": \"Get Supply Chain\",\n        \"description\": \"Describes which import and exports map to each other.\",\n        \"parameters\": [],\n        \"tags\": [\"Data\"],\n        \"operationId\": \"get-supply-chain\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"Successfully retrieved the supply chain information\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"properties\": {\n                        \"exportToImportMap\": {\n                          \"type\": \"object\",\n                          \"additionalProperties\": {\n                            \"type\": \"array\",\n                            \"items\": {\n                              \"type\": \"string\"\n                            }\n                          }\n                        }\n                      },\n                      \"required\": [\"exportToImportMap\"]\n                    }\n                  },\n                  \"required\": [\"data\"],\n                  \"x-examples\": {\n                    \"Example 1\": {\n                      \"data\": {\n                        \"exportToImportMap\": {\n                          \"LIQUID_HYDROGEN\": [\"MACHINERY\"],\n                          \"LIQUID_NITROGEN\": [\"MACHINERY\"]\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        },\n        \"security\": [\n          {\n            \"AgentToken\": []\n          }\n        ]\n      }\n    },\n    \"/my/ships/{shipSymbol}/modules\": {\n      \"get\": {\n        \"operationId\": \"get-ship-modules\",\n        \"summary\": \"Get Ship Modules\",\n        \"description\": \"Get the modules installed on a ship.\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The symbol of the ship\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"Successfully retrieved ship modules.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"type\": \"object\",\n                  \"required\": [\"data\"],\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"array\",\n                      \"items\": {\n                        \"$ref\": \"../models/ShipModule.json\"\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"/my/ships/{shipSymbol}/modules/install\": {\n      \"post\": {\n        \"operationId\": \"install-ship-module\",\n        \"summary\": \"Install Ship Module\",\n        \"description\": \"Install a module on a ship. The module must be in your cargo.\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The symbol of the ship\"\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"type\": \"object\",\n                \"required\": [\"symbol\"],\n                \"properties\": {\n                  \"symbol\": {\n                    \"type\": \"string\",\n                    \"description\": \"The symbol of the module to install\"\n                  }\n                }\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"description\": \"Successfully installed the module on the ship.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"type\": \"object\",\n                  \"required\": [\"data\"],\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"agent\", \"modules\", \"cargo\", \"transaction\"],\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"modules\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipModule.json\"\n                          }\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"transaction\": {\n                          \"type\": \"object\",\n                          \"required\": [\"waypointSymbol\", \"shipSymbol\", \"tradeSymbol\", \"totalPrice\", \"timestamp\"],\n                          \"properties\": {\n                            \"waypointSymbol\": {\n                              \"type\": \"string\"\n                            },\n                            \"shipSymbol\": {\n                              \"type\": \"string\"\n                            },\n                            \"tradeSymbol\": {\n                              \"type\": \"string\"\n                            },\n                            \"totalPrice\": {\n                              \"type\": \"integer\"\n                            },\n                            \"timestamp\": {\n                              \"type\": \"string\"\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    },\n    \"/my/ships/{shipSymbol}/modules/remove\": {\n      \"post\": {\n        \"operationId\": \"remove-ship-module\",\n        \"summary\": \"Remove Ship Module\",\n        \"description\": \"Remove a module from a ship. The module will be placed in cargo.\",\n        \"tags\": [\"Fleet\"],\n        \"parameters\": [\n          {\n            \"in\": \"path\",\n            \"name\": \"shipSymbol\",\n            \"required\": true,\n            \"schema\": {\n              \"type\": \"string\"\n            },\n            \"description\": \"The symbol of the ship\"\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/json\": {\n              \"schema\": {\n                \"type\": \"object\",\n                \"required\": [\"symbol\"],\n                \"properties\": {\n                  \"symbol\": {\n                    \"type\": \"string\",\n                    \"description\": \"The symbol of the module to remove\"\n                  }\n                }\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"201\": {\n            \"description\": \"Successfully removed the module from the ship.\",\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"title\": \"Remove Module 201 Response\",\n                  \"type\": \"object\",\n                  \"required\": [\"data\"],\n                  \"properties\": {\n                    \"data\": {\n                      \"type\": \"object\",\n                      \"required\": [\"agent\", \"modules\", \"cargo\", \"transaction\"],\n                      \"properties\": {\n                        \"agent\": {\n                          \"$ref\": \"../models/Agent.json\"\n                        },\n                        \"modules\": {\n                          \"type\": \"array\",\n                          \"items\": {\n                            \"$ref\": \"../models/ShipModule.json\"\n                          }\n                        },\n                        \"cargo\": {\n                          \"$ref\": \"../models/ShipCargo.json\"\n                        },\n                        \"transaction\": {\n                          \"type\": \"object\",\n                          \"required\": [\"waypointSymbol\", \"shipSymbol\", \"tradeSymbol\", \"totalPrice\", \"timestamp\"],\n                          \"properties\": {\n                            \"waypointSymbol\": {\n                              \"type\": \"string\"\n                            },\n                            \"shipSymbol\": {\n                              \"type\": \"string\"\n                            },\n                            \"tradeSymbol\": {\n                              \"type\": \"string\"\n                            },\n                            \"totalPrice\": {\n                              \"type\": \"integer\"\n                            },\n                            \"timestamp\": {\n                              \"type\": \"string\"\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"
  }
]