diff --git a/src/auto-captured-data.ts b/src/auto-captured-data.ts new file mode 100644 index 0000000..6a549ec --- /dev/null +++ b/src/auto-captured-data.ts @@ -0,0 +1,14254 @@ +// +// This data was captured using OpenAPI Dev Tools - https://github.com/AndrewWalsh/openapi-devtools +// Over time, stuff that's in here will be used to build the proper endpoint definitions. +// + +export const paths = { + '/body': { + post: { + summary: '/body', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + result: { + type: 'object', + properties: { + status: { + type: 'object', + properties: { + body: { + type: 'object', + properties: { + zone: { type: 'string' }, + num_incoming_ally: { type: 'integer' }, + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + ore_hour: { type: 'integer' }, + star_name: { type: 'string' }, + ore_stored: { type: 'integer' }, + energy_hour: { type: 'integer' }, + plots_available: { type: 'integer' }, + energy_stored: { type: 'integer' }, + ore: { + type: 'object', + properties: { + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + anthracite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + bauxite: { type: 'integer' }, + fluorite: { type: 'integer' }, + methane: { type: 'integer' }, + beryl: { type: 'integer' }, + rutile: { type: 'integer' }, + magnetite: { type: 'integer' }, + gypsum: { type: 'integer' }, + sulfur: { type: 'integer' }, + galena: { type: 'integer' }, + monazite: { type: 'integer' }, + trona: { type: 'integer' }, + halite: { type: 'integer' }, + uraninite: { type: 'integer' }, + zircon: { type: 'integer' }, + chromite: { type: 'integer' }, + kerogen: { type: 'integer' }, + }, + required: [ + 'goethite', + 'gold', + 'anthracite', + 'chalcopyrite', + 'bauxite', + 'fluorite', + 'methane', + 'beryl', + 'rutile', + 'magnetite', + 'gypsum', + 'sulfur', + 'galena', + 'monazite', + 'trona', + 'halite', + 'uraninite', + 'zircon', + 'chromite', + 'kerogen', + ], + }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + size: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + orbit: { type: 'integer' }, + empire: { + type: 'object', + properties: { + name: { type: 'string' }, + is_isolationist: { type: 'integer' }, + id: { type: 'integer' }, + alignment: { type: 'string' }, + }, + required: ['name', 'is_isolationist', 'id', 'alignment'], + }, + ore_capacity: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + propaganda_boost: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + water_stored: { type: 'integer' }, + water: { type: 'integer' }, + notes: { type: 'string' }, + happiness: { type: 'integer' }, + waste_stored: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + type: { type: 'string' }, + waste_hour: { type: 'integer' }, + food_stored: { type: 'integer' }, + id: { type: 'integer' }, + population: { type: 'integer' }, + surface_version: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + needs_surface_refresh: { type: 'integer' }, + star_id: { type: 'integer' }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + neutral_entry: { type: 'string' }, + }, + required: [ + 'zone', + 'num_incoming_ally', + 'food_hour', + 'food_capacity', + 'ore_hour', + 'star_name', + 'ore_stored', + 'energy_hour', + 'plots_available', + 'energy_stored', + 'ore', + 'x', + 'water_hour', + 'build_queue_size', + 'size', + 'waste_capacity', + 'building_count', + 'orbit', + 'empire', + 'ore_capacity', + 'num_incoming_enemy', + 'y', + 'image', + 'propaganda_boost', + 'build_queue_len', + 'water_stored', + 'water', + 'notes', + 'happiness', + 'waste_stored', + 'energy_capacity', + 'type', + 'waste_hour', + 'food_stored', + 'id', + 'population', + 'surface_version', + 'num_incoming_own', + 'happiness_hour', + 'needs_surface_refresh', + 'star_id', + 'water_capacity', + 'name', + 'neutral_entry', + ], + }, + server: { + type: 'object', + properties: { + version: { type: 'number' }, + time: { type: 'string' }, + rpc_limit: { type: 'integer' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + }, + required: ['version', 'time', 'rpc_limit', 'star_map_size'], + }, + empire: { + type: 'object', + properties: { + self_destruct_date: { type: 'string' }, + stations: { type: 'object' }, + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + empire_id: { type: 'integer' }, + star_id: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + empire_name: { type: 'string' }, + orbit: { type: 'integer' }, + zone: { type: 'string' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + star_name: { type: 'string' }, + }, + required: [ + 'empire_id', + 'star_id', + 'name', + 'x', + 'empire_name', + 'orbit', + 'zone', + 'id', + 'y', + 'star_name', + ], + }, + }, + }, + required: ['colonies'], + }, + tech_level: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + rpc_count: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + essentia: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + id: { type: 'integer' }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + status_message: { type: 'string' }, + next_colony_srcs: { type: 'integer' }, + self_destruct_active: { type: 'integer' }, + }, + required: [ + 'self_destruct_date', + 'stations', + 'next_colony_cost', + 'latest_message_id', + 'bodies', + 'tech_level', + 'next_station_cost', + 'rpc_count', + 'colonies', + 'essentia', + 'is_isolationist', + 'planets', + 'id', + 'name', + 'has_new_messages', + 'insurrect_value', + 'home_planet_id', + 'status_message', + 'next_colony_srcs', + 'self_destruct_active', + ], + }, + }, + required: ['body', 'server', 'empire'], + }, + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521681': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521685': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521686': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521687': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521688': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521689': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521690': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521693': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521696': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521697': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521698': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521699': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521700': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521701': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521702': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521703': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521704': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521705': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521706': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521707': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521708': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521711': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521712': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521713': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521714': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521715': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521716': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521717': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521718': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521938': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521939': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521940': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521941': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521942': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521943': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521944': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521945': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521946': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521947': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521948': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521949': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521950': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + body: { + type: 'object', + properties: { surface_image: { type: 'string' } }, + required: ['surface_image'], + }, + }, + required: ['status', 'buildings', 'body'], + }, + }, + required: ['jsonrpc', 'id', 'result'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/map': { + post: { + summary: '/map', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + result: { + type: 'object', + properties: { + stars: { + type: 'array', + items: { + type: 'object', + properties: { + name: { type: 'string' }, + color: { type: 'string' }, + y: { type: 'integer' }, + id: { type: 'integer' }, + zone: { type: 'string' }, + influence: { type: 'null' }, + x: { type: 'integer' }, + bodies: { + type: 'array', + items: { + type: 'object', + properties: { + body_has_fissure: { type: 'integer' }, + x: { type: 'integer' }, + size: { type: 'integer' }, + name: { type: 'string' }, + orbit: { type: 'integer' }, + type: { type: 'string' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + empire: { + type: 'object', + properties: { + name: { type: 'string' }, + is_isolationist: { type: 'integer' }, + alignment: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['name', 'is_isolationist', 'alignment', 'id'], + }, + }, + required: [ + 'body_has_fissure', + 'x', + 'size', + 'name', + 'orbit', + 'type', + 'id', + 'y', + 'image', + ], + }, + }, + }, + required: ['name', 'color', 'y', 'id', 'zone', 'influence', 'x'], + }, + }, + status: { + type: 'object', + properties: { + server: { + type: 'object', + properties: { + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + rpc_limit: { type: 'integer' }, + time: { type: 'string' }, + version: { type: 'number' }, + }, + required: ['star_map_size', 'rpc_limit', 'time', 'version'], + }, + empire: { + type: 'object', + properties: { + self_destruct_active: { type: 'integer' }, + next_colony_srcs: { type: 'integer' }, + status_message: { type: 'string' }, + home_planet_id: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + id: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + is_isolationist: { type: 'integer' }, + essentia: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + rpc_count: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + tech_level: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + empire_id: { type: 'integer' }, + star_id: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + empire_name: { type: 'string' }, + orbit: { type: 'integer' }, + zone: { type: 'string' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + star_name: { type: 'string' }, + }, + required: [ + 'empire_id', + 'star_id', + 'name', + 'x', + 'empire_name', + 'orbit', + 'zone', + 'id', + 'y', + 'star_name', + ], + }, + }, + }, + required: ['colonies'], + }, + latest_message_id: { type: 'integer' }, + next_colony_cost: { type: 'integer' }, + self_destruct_date: { type: 'string' }, + stations: { type: 'object' }, + }, + required: [ + 'self_destruct_active', + 'next_colony_srcs', + 'status_message', + 'home_planet_id', + 'insurrect_value', + 'name', + 'has_new_messages', + 'id', + 'planets', + 'is_isolationist', + 'essentia', + 'colonies', + 'rpc_count', + 'next_station_cost', + 'tech_level', + 'bodies', + 'latest_message_id', + 'next_colony_cost', + 'self_destruct_date', + 'stations', + ], + }, + }, + required: ['server', 'empire'], + }, + }, + required: ['stars', 'status'], + }, + }, + required: ['jsonrpc', 'id', 'result'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { + type: 'array', + items: { + type: 'object', + properties: { + session_id: { type: 'string' }, + left: { type: 'integer' }, + right: { type: 'integer' }, + top: { type: 'integer' }, + bottom: { type: 'integer' }, + }, + required: ['session_id', 'left', 'right', 'top', 'bottom'], + }, + }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/planetarycommand': { + post: { + summary: '/planetarycommand', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + next_colony_cost: { type: 'string' }, + pod_delay: { type: 'integer' }, + ore: { + type: 'object', + properties: { + zircon_stored: { type: 'integer' }, + bauxite_stored: { type: 'integer' }, + rutile_hour: { type: 'integer' }, + halite_stored: { type: 'integer' }, + monazite_hour: { type: 'integer' }, + kerogen_hour: { type: 'integer' }, + magnetite_stored: { type: 'integer' }, + beryl_stored: { type: 'integer' }, + fluorite_stored: { type: 'integer' }, + gold_stored: { type: 'integer' }, + galena_stored: { type: 'integer' }, + chromite_hour: { type: 'integer' }, + halite_hour: { type: 'integer' }, + gold_hour: { type: 'integer' }, + chromite_stored: { type: 'integer' }, + anthracite_hour: { type: 'integer' }, + methane_stored: { type: 'integer' }, + magnetite_hour: { type: 'integer' }, + beryl_hour: { type: 'integer' }, + gypsum_hour: { type: 'integer' }, + bauxite_hour: { type: 'integer' }, + chalcopyrite_hour: { type: 'integer' }, + trona_stored: { type: 'integer' }, + kerogen_stored: { type: 'integer' }, + monazite_stored: { type: 'integer' }, + uraninite_stored: { type: 'integer' }, + goethite_hour: { type: 'integer' }, + trona_hour: { type: 'integer' }, + uraninite_hour: { type: 'integer' }, + sulfur_stored: { type: 'integer' }, + methane_hour: { type: 'integer' }, + fluorite_hour: { type: 'integer' }, + gypsum_stored: { type: 'integer' }, + chalcopyrite_stored: { type: 'integer' }, + goethite_stored: { type: 'integer' }, + sulfur_hour: { type: 'integer' }, + anthracite_stored: { type: 'integer' }, + galena_hour: { type: 'integer' }, + rutile_stored: { type: 'integer' }, + zircon_hour: { type: 'integer' }, + }, + required: [ + 'zircon_stored', + 'bauxite_stored', + 'rutile_hour', + 'halite_stored', + 'monazite_hour', + 'kerogen_hour', + 'magnetite_stored', + 'beryl_stored', + 'fluorite_stored', + 'gold_stored', + 'galena_stored', + 'chromite_hour', + 'halite_hour', + 'gold_hour', + 'chromite_stored', + 'anthracite_hour', + 'methane_stored', + 'magnetite_hour', + 'beryl_hour', + 'gypsum_hour', + 'bauxite_hour', + 'chalcopyrite_hour', + 'trona_stored', + 'kerogen_stored', + 'monazite_stored', + 'uraninite_stored', + 'goethite_hour', + 'trona_hour', + 'uraninite_hour', + 'sulfur_stored', + 'methane_hour', + 'fluorite_hour', + 'gypsum_stored', + 'chalcopyrite_stored', + 'goethite_stored', + 'sulfur_hour', + 'anthracite_stored', + 'galena_hour', + 'rutile_stored', + 'zircon_hour', + ], + }, + food: { + type: 'object', + properties: { + algae_stored: { type: 'integer' }, + cheese_hour: { type: 'integer' }, + beetle_hour: { type: 'integer' }, + burger_hour: { type: 'integer' }, + corn_hour: { type: 'integer' }, + algae_hour: { type: 'integer' }, + bread_hour: { type: 'integer' }, + cider_hour: { type: 'integer' }, + potato_stored: { type: 'integer' }, + fungus_hour: { type: 'integer' }, + meal_hour: { type: 'integer' }, + bean_stored: { type: 'integer' }, + wheat_hour: { type: 'integer' }, + potato_hour: { type: 'integer' }, + chip_hour: { type: 'integer' }, + shake_stored: { type: 'integer' }, + pancake_stored: { type: 'integer' }, + beetle_stored: { type: 'integer' }, + lapis_stored: { type: 'integer' }, + cheese_stored: { type: 'integer' }, + bean_hour: { type: 'integer' }, + meal_stored: { type: 'integer' }, + syrup_stored: { type: 'integer' }, + pancake_hour: { type: 'integer' }, + milk_hour: { type: 'integer' }, + soup_hour: { type: 'integer' }, + root_stored: { type: 'integer' }, + cider_stored: { type: 'integer' }, + lapis_hour: { type: 'integer' }, + bread_stored: { type: 'integer' }, + milk_stored: { type: 'integer' }, + apple_hour: { type: 'integer' }, + corn_stored: { type: 'integer' }, + apple_stored: { type: 'integer' }, + pie_stored: { type: 'integer' }, + wheat_stored: { type: 'integer' }, + fungus_stored: { type: 'integer' }, + shake_hour: { type: 'integer' }, + root_hour: { type: 'integer' }, + syrup_hour: { type: 'integer' }, + pie_hour: { type: 'integer' }, + burger_stored: { type: 'integer' }, + chip_stored: { type: 'integer' }, + soup_stored: { type: 'integer' }, + }, + required: [ + 'algae_stored', + 'cheese_hour', + 'beetle_hour', + 'burger_hour', + 'corn_hour', + 'algae_hour', + 'bread_hour', + 'cider_hour', + 'potato_stored', + 'fungus_hour', + 'meal_hour', + 'bean_stored', + 'wheat_hour', + 'potato_hour', + 'chip_hour', + 'shake_stored', + 'pancake_stored', + 'beetle_stored', + 'lapis_stored', + 'cheese_stored', + 'bean_hour', + 'meal_stored', + 'syrup_stored', + 'pancake_hour', + 'milk_hour', + 'soup_hour', + 'root_stored', + 'cider_stored', + 'lapis_hour', + 'bread_stored', + 'milk_stored', + 'apple_hour', + 'corn_stored', + 'apple_stored', + 'pie_stored', + 'wheat_stored', + 'fungus_stored', + 'shake_hour', + 'root_hour', + 'syrup_hour', + 'pie_hour', + 'burger_stored', + 'chip_stored', + 'soup_stored', + ], + }, + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521681': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521685': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521686': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521687': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521688': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521689': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521690': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521693': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521696': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521697': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521698': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521699': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521700': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521701': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521702': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521703': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521704': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521705': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521706': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521707': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521708': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521711': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521712': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521713': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521714': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521715': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521716': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521717': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'url', 'name'], + }, + '521718': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521938': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521939': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521940': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521941': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521942': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521943': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521944': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'url', 'name'], + }, + '521945': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521946': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521947': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521948': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521949': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521950': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + pending_build: { + type: 'object', + properties: { + end: { type: 'string' }, + start: { type: 'string' }, + seconds_remaining: { type: 'integer' }, + }, + required: ['end', 'start', 'seconds_remaining'], + }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + status: { + type: 'object', + properties: { + body: { + type: 'object', + properties: { + ore_capacity: { type: 'integer' }, + y: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + orbit: { type: 'integer' }, + empire: { + type: 'object', + properties: { + alignment: { type: 'string' }, + id: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['alignment', 'id', 'is_isolationist', 'name'], + }, + water_stored: { type: 'integer' }, + water: { type: 'integer' }, + notes: { type: 'string' }, + propaganda_boost: { type: 'integer' }, + image: { type: 'string' }, + build_queue_len: { type: 'integer' }, + happiness: { type: 'integer' }, + waste_stored: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + id: { type: 'integer' }, + type: { type: 'string' }, + waste_hour: { type: 'integer' }, + food_stored: { type: 'integer' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + neutral_entry: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + star_id: { type: 'integer' }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + num_incoming_ally: { type: 'integer' }, + zone: { type: 'string' }, + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + star_name: { type: 'string' }, + ore_stored: { type: 'integer' }, + ore_hour: { type: 'integer' }, + energy_stored: { type: 'integer' }, + ore: { + type: 'object', + properties: { + bauxite: { type: 'integer' }, + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + anthracite: { type: 'integer' }, + beryl: { type: 'integer' }, + fluorite: { type: 'integer' }, + methane: { type: 'integer' }, + sulfur: { type: 'integer' }, + gypsum: { type: 'integer' }, + rutile: { type: 'integer' }, + magnetite: { type: 'integer' }, + uraninite: { type: 'integer' }, + zircon: { type: 'integer' }, + kerogen: { type: 'integer' }, + chromite: { type: 'integer' }, + galena: { type: 'integer' }, + trona: { type: 'integer' }, + monazite: { type: 'integer' }, + halite: { type: 'integer' }, + }, + required: [ + 'bauxite', + 'goethite', + 'gold', + 'chalcopyrite', + 'anthracite', + 'beryl', + 'fluorite', + 'methane', + 'sulfur', + 'gypsum', + 'rutile', + 'magnetite', + 'uraninite', + 'zircon', + 'kerogen', + 'chromite', + 'galena', + 'trona', + 'monazite', + 'halite', + ], + }, + energy_hour: { type: 'integer' }, + plots_available: { type: 'integer' }, + size: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + }, + required: [ + 'ore_capacity', + 'y', + 'num_incoming_enemy', + 'waste_capacity', + 'building_count', + 'orbit', + 'empire', + 'water_stored', + 'water', + 'notes', + 'propaganda_boost', + 'image', + 'build_queue_len', + 'happiness', + 'waste_stored', + 'energy_capacity', + 'id', + 'type', + 'waste_hour', + 'food_stored', + 'surface_version', + 'population', + 'num_incoming_own', + 'happiness_hour', + 'neutral_entry', + 'needs_surface_refresh', + 'star_id', + 'water_capacity', + 'name', + 'num_incoming_ally', + 'zone', + 'food_hour', + 'food_capacity', + 'star_name', + 'ore_stored', + 'ore_hour', + 'energy_stored', + 'ore', + 'energy_hour', + 'plots_available', + 'size', + 'x', + 'water_hour', + 'build_queue_size', + ], + }, + server: { + type: 'object', + properties: { + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + rpc_limit: { type: 'integer' }, + version: { type: 'number' }, + time: { type: 'string' }, + }, + required: ['star_map_size', 'rpc_limit', 'version', 'time'], + }, + empire: { + type: 'object', + properties: { + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + zone: { type: 'string' }, + orbit: { type: 'integer' }, + y: { type: 'integer' }, + id: { type: 'integer' }, + star_name: { type: 'string' }, + star_id: { type: 'integer' }, + empire_id: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + empire_name: { type: 'string' }, + }, + required: [ + 'zone', + 'orbit', + 'y', + 'id', + 'star_name', + 'star_id', + 'empire_id', + 'name', + 'x', + 'empire_name', + ], + }, + }, + }, + required: ['colonies'], + }, + tech_level: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + self_destruct_date: { type: 'string' }, + stations: { type: 'object' }, + latest_message_id: { type: 'integer' }, + next_colony_cost: { type: 'integer' }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + status_message: { type: 'string' }, + next_colony_srcs: { type: 'integer' }, + self_destruct_active: { type: 'integer' }, + rpc_count: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + essentia: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + id: { type: 'integer' }, + }, + required: [ + 'bodies', + 'tech_level', + 'next_station_cost', + 'self_destruct_date', + 'stations', + 'latest_message_id', + 'next_colony_cost', + 'name', + 'has_new_messages', + 'insurrect_value', + 'home_planet_id', + 'status_message', + 'next_colony_srcs', + 'self_destruct_active', + 'rpc_count', + 'colonies', + 'essentia', + 'is_isolationist', + 'planets', + 'id', + ], + }, + }, + required: ['body', 'server', 'empire'], + }, + next_colony_srcs: { type: 'string' }, + next_station_cost: { type: 'integer' }, + building: { + type: 'object', + properties: { + energy_hour: { type: 'integer' }, + url: { type: 'string' }, + downgrade: { + type: 'object', + properties: { + can: { type: 'integer' }, + reason: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['can', 'reason', 'image'], + }, + id: { type: 'integer' }, + ore_hour: { type: 'integer' }, + waste_hour: { type: 'integer' }, + name: { type: 'string' }, + water_capacity: { type: 'integer' }, + level: { type: 'integer' }, + upgrade: { + type: 'object', + properties: { + production: { + type: 'object', + properties: { + ore_capacity: { type: 'string' }, + waste_capacity: { type: 'integer' }, + waste_hour: { type: 'string' }, + ore_hour: { type: 'string' }, + energy_hour: { type: 'string' }, + food_hour: { type: 'string' }, + water_hour: { type: 'string' }, + happiness_hour: { type: 'string' }, + energy_capacity: { type: 'string' }, + food_capacity: { type: 'string' }, + water_capacity: { type: 'string' }, + }, + required: [ + 'ore_capacity', + 'waste_capacity', + 'waste_hour', + 'ore_hour', + 'energy_hour', + 'food_hour', + 'water_hour', + 'happiness_hour', + 'energy_capacity', + 'food_capacity', + 'water_capacity', + ], + }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'integer' }, + time: { type: 'integer' }, + food: { type: 'integer' }, + ore: { type: 'integer' }, + water: { type: 'integer' }, + waste: { type: 'integer' }, + }, + required: ['energy', 'time', 'food', 'ore', 'water', 'waste'], + }, + }, + required: ['production', 'image', 'reason', 'can', 'cost'], + }, + water_hour: { type: 'integer' }, + x: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + efficiency: { type: 'integer' }, + pending_build: { type: 'null' }, + image: { type: 'string' }, + ore_capacity: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + energy: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'ore', 'water', 'food'], + }, + y: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + }, + required: [ + 'energy_hour', + 'url', + 'downgrade', + 'id', + 'ore_hour', + 'waste_hour', + 'name', + 'water_capacity', + 'level', + 'upgrade', + 'water_hour', + 'x', + 'happiness_hour', + 'efficiency', + 'pending_build', + 'image', + 'ore_capacity', + 'repair_costs', + 'y', + 'waste_capacity', + 'food_capacity', + 'energy_capacity', + 'food_hour', + ], + }, + planet: { + type: 'object', + properties: { + num_incoming_ally: { type: 'integer' }, + zone: { type: 'string' }, + food_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + energy_stored: { type: 'integer' }, + ore: { + type: 'object', + properties: { + gypsum: { type: 'integer' }, + sulfur: { type: 'integer' }, + magnetite: { type: 'integer' }, + rutile: { type: 'integer' }, + chromite: { type: 'integer' }, + kerogen: { type: 'integer' }, + zircon: { type: 'integer' }, + uraninite: { type: 'integer' }, + monazite: { type: 'integer' }, + halite: { type: 'integer' }, + trona: { type: 'integer' }, + galena: { type: 'integer' }, + bauxite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + anthracite: { type: 'integer' }, + gold: { type: 'integer' }, + goethite: { type: 'integer' }, + beryl: { type: 'integer' }, + fluorite: { type: 'integer' }, + methane: { type: 'integer' }, + }, + required: [ + 'gypsum', + 'sulfur', + 'magnetite', + 'rutile', + 'chromite', + 'kerogen', + 'zircon', + 'uraninite', + 'monazite', + 'halite', + 'trona', + 'galena', + 'bauxite', + 'chalcopyrite', + 'anthracite', + 'gold', + 'goethite', + 'beryl', + 'fluorite', + 'methane', + ], + }, + energy_hour: { type: 'integer' }, + plots_available: { type: 'integer' }, + star_name: { type: 'string' }, + ore_stored: { type: 'integer' }, + ore_hour: { type: 'integer' }, + size: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + water: { type: 'integer' }, + water_stored: { type: 'integer' }, + notes: { type: 'string' }, + propaganda_boost: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + image: { type: 'string' }, + ore_capacity: { type: 'integer' }, + y: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + orbit: { type: 'integer' }, + empire: { + type: 'object', + properties: { + name: { type: 'string' }, + is_isolationist: { type: 'integer' }, + id: { type: 'integer' }, + alignment: { type: 'string' }, + }, + required: ['name', 'is_isolationist', 'id', 'alignment'], + }, + energy_capacity: { type: 'integer' }, + waste_stored: { type: 'integer' }, + happiness: { type: 'integer' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + id: { type: 'integer' }, + waste_hour: { type: 'integer' }, + type: { type: 'string' }, + food_stored: { type: 'integer' }, + neutral_entry: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + water_capacity: { type: 'integer' }, + star_id: { type: 'integer' }, + name: { type: 'string' }, + num_incoming_own: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + }, + required: [ + 'num_incoming_ally', + 'zone', + 'food_capacity', + 'food_hour', + 'energy_stored', + 'ore', + 'energy_hour', + 'plots_available', + 'star_name', + 'ore_stored', + 'ore_hour', + 'size', + 'x', + 'water_hour', + 'build_queue_size', + 'water', + 'water_stored', + 'notes', + 'propaganda_boost', + 'build_queue_len', + 'image', + 'ore_capacity', + 'y', + 'num_incoming_enemy', + 'waste_capacity', + 'building_count', + 'orbit', + 'empire', + 'energy_capacity', + 'waste_stored', + 'happiness', + 'surface_version', + 'population', + 'id', + 'waste_hour', + 'type', + 'food_stored', + 'neutral_entry', + 'needs_surface_refresh', + 'water_capacity', + 'star_id', + 'name', + 'num_incoming_own', + 'happiness_hour', + ], + }, + insurrect_value: { type: 'string' }, + }, + required: [ + 'next_colony_cost', + 'pod_delay', + 'ore', + 'food', + 'buildings', + 'status', + 'next_colony_srcs', + 'next_station_cost', + 'building', + 'planet', + 'insurrect_value', + ], + }, + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['result', 'jsonrpc', 'id'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/fission': { + post: { + summary: '/fission', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + jsonrpc: { type: 'string' }, + result: { + type: 'object', + properties: { + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521681': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521685': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521686': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521687': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521688': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521689': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521690': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521693': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521696': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521697': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521698': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521699': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521700': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521701': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521702': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521703': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521704': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521705': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521706': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521707': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521708': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521711': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521712': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'url', 'name'], + }, + '521713': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521714': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521715': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521716': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521717': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521718': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521938': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521939': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521940': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521941': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521942': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521943': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521944': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521945': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521946': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521947': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521948': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521949': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521950': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + pending_build: { + type: 'object', + properties: { + seconds_remaining: { type: 'integer' }, + end: { type: 'string' }, + start: { type: 'string' }, + }, + required: ['seconds_remaining', 'end', 'start'], + }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + status: { + type: 'object', + properties: { + empire: { + type: 'object', + properties: { + insurrect_value: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + has_new_messages: { type: 'integer' }, + name: { type: 'string' }, + next_colony_srcs: { type: 'integer' }, + self_destruct_active: { type: 'integer' }, + status_message: { type: 'string' }, + is_isolationist: { type: 'integer' }, + rpc_count: { type: 'integer' }, + essentia: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + id: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + zone: { type: 'string' }, + orbit: { type: 'integer' }, + star_name: { type: 'string' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + empire_name: { type: 'string' }, + name: { type: 'string' }, + empire_id: { type: 'integer' }, + star_id: { type: 'integer' }, + }, + required: [ + 'zone', + 'orbit', + 'star_name', + 'id', + 'y', + 'x', + 'empire_name', + 'name', + 'empire_id', + 'star_id', + ], + }, + }, + }, + required: ['colonies'], + }, + tech_level: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + self_destruct_date: { type: 'string' }, + stations: { type: 'object' }, + latest_message_id: { type: 'integer' }, + next_colony_cost: { type: 'integer' }, + }, + required: [ + 'insurrect_value', + 'home_planet_id', + 'has_new_messages', + 'name', + 'next_colony_srcs', + 'self_destruct_active', + 'status_message', + 'is_isolationist', + 'rpc_count', + 'essentia', + 'colonies', + 'planets', + 'id', + 'bodies', + 'tech_level', + 'next_station_cost', + 'self_destruct_date', + 'stations', + 'latest_message_id', + 'next_colony_cost', + ], + }, + server: { + type: 'object', + properties: { + time: { type: 'string' }, + version: { type: 'number' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + rpc_limit: { type: 'integer' }, + }, + required: ['time', 'version', 'star_map_size', 'rpc_limit'], + }, + body: { + type: 'object', + properties: { + star_name: { type: 'string' }, + ore_stored: { type: 'integer' }, + ore_hour: { type: 'integer' }, + energy_stored: { type: 'integer' }, + ore: { + type: 'object', + properties: { + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + anthracite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + bauxite: { type: 'integer' }, + fluorite: { type: 'integer' }, + methane: { type: 'integer' }, + beryl: { type: 'integer' }, + rutile: { type: 'integer' }, + magnetite: { type: 'integer' }, + gypsum: { type: 'integer' }, + sulfur: { type: 'integer' }, + galena: { type: 'integer' }, + monazite: { type: 'integer' }, + trona: { type: 'integer' }, + halite: { type: 'integer' }, + uraninite: { type: 'integer' }, + zircon: { type: 'integer' }, + kerogen: { type: 'integer' }, + chromite: { type: 'integer' }, + }, + required: [ + 'goethite', + 'gold', + 'anthracite', + 'chalcopyrite', + 'bauxite', + 'fluorite', + 'methane', + 'beryl', + 'rutile', + 'magnetite', + 'gypsum', + 'sulfur', + 'galena', + 'monazite', + 'trona', + 'halite', + 'uraninite', + 'zircon', + 'kerogen', + 'chromite', + ], + }, + energy_hour: { type: 'integer' }, + plots_available: { type: 'integer' }, + size: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + num_incoming_ally: { type: 'integer' }, + zone: { type: 'string' }, + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + id: { type: 'integer' }, + type: { type: 'string' }, + waste_hour: { type: 'integer' }, + food_stored: { type: 'integer' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + neutral_entry: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + star_id: { type: 'integer' }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + ore_capacity: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + y: { type: 'integer' }, + orbit: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + empire: { + type: 'object', + properties: { + alignment: { type: 'string' }, + id: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['alignment', 'id', 'is_isolationist', 'name'], + }, + water_stored: { type: 'integer' }, + water: { type: 'integer' }, + notes: { type: 'string' }, + build_queue_len: { type: 'integer' }, + propaganda_boost: { type: 'integer' }, + image: { type: 'string' }, + happiness: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + waste_stored: { type: 'integer' }, + }, + required: [ + 'star_name', + 'ore_stored', + 'ore_hour', + 'energy_stored', + 'ore', + 'energy_hour', + 'plots_available', + 'size', + 'x', + 'water_hour', + 'build_queue_size', + 'num_incoming_ally', + 'zone', + 'food_hour', + 'food_capacity', + 'id', + 'type', + 'waste_hour', + 'food_stored', + 'surface_version', + 'population', + 'num_incoming_own', + 'happiness_hour', + 'neutral_entry', + 'needs_surface_refresh', + 'star_id', + 'water_capacity', + 'name', + 'ore_capacity', + 'num_incoming_enemy', + 'y', + 'orbit', + 'waste_capacity', + 'building_count', + 'empire', + 'water_stored', + 'water', + 'notes', + 'build_queue_len', + 'propaganda_boost', + 'image', + 'happiness', + 'energy_capacity', + 'waste_stored', + ], + }, + }, + required: ['empire', 'server', 'body'], + }, + building: { + type: 'object', + properties: { + food_hour: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'water', 'ore'], + }, + y: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + pending_build: { + anyOf: [ + { type: 'null' }, + { + type: 'object', + properties: { + seconds_remaining: { type: 'integer' }, + start: { type: 'string' }, + end: { type: 'string' }, + }, + required: ['seconds_remaining', 'start', 'end'], + }, + ], + }, + image: { type: 'string' }, + upgrade: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + waste: { type: 'integer' }, + water: { type: 'integer' }, + ore: { type: 'integer' }, + food: { type: 'integer' }, + time: { type: 'integer' }, + energy: { type: 'integer' }, + }, + required: ['waste', 'water', 'ore', 'food', 'time', 'energy'], + }, + can: { type: 'integer' }, + production: { + type: 'object', + properties: { + energy_hour: { type: 'string' }, + ore_capacity: { type: 'integer' }, + waste_hour: { type: 'string' }, + waste_capacity: { type: 'integer' }, + ore_hour: { type: 'string' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + water_capacity: { type: 'integer' }, + food_hour: { type: 'string' }, + happiness_hour: { type: 'string' }, + water_hour: { type: 'string' }, + }, + required: [ + 'energy_hour', + 'ore_capacity', + 'waste_hour', + 'waste_capacity', + 'ore_hour', + 'energy_capacity', + 'food_capacity', + 'water_capacity', + 'food_hour', + 'happiness_hour', + 'water_hour', + ], + }, + image: { type: 'string' }, + reason: { type: 'string' }, + }, + required: ['cost', 'can', 'production', 'image', 'reason'], + }, + water_hour: { type: 'integer' }, + x: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + efficiency: { type: 'integer' }, + water_capacity: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + downgrade: { + type: 'object', + properties: { + can: { type: 'integer' }, + image: { type: 'string' }, + reason: { type: 'string' }, + }, + required: ['can', 'image', 'reason'], + }, + id: { type: 'integer' }, + waste_hour: { type: 'integer' }, + ore_hour: { type: 'integer' }, + energy_hour: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['pending_build', 'level', 'id'], + }, + }, + required: ['buildings', 'status', 'building'], + }, + }, + required: ['id', 'jsonrpc', 'result'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + method: { type: 'string' }, + params: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: ['jsonrpc', 'id', 'method', 'params'], + }, + }, + }, + }, + }, + }, + '/spaceport': { + post: { + summary: '/spaceport', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521681': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521685': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521686': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521687': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521688': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521689': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521690': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521693': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521696': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521697': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521698': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521699': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521700': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521701': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521702': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521703': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521704': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521705': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521706': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521707': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521708': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521711': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521712': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521713': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521714': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521715': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521716': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521717': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521718': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521938': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521939': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521940': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521941': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521942': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521943': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521944': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521945': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521946': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521947': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521948': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521949': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521950': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + pending_build: { + type: 'object', + properties: { + seconds_remaining: { type: 'integer' }, + end: { type: 'string' }, + start: { type: 'string' }, + }, + required: ['seconds_remaining', 'end', 'start'], + }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: [ + 'efficiency', + 'x', + 'level', + 'name', + 'y', + 'pending_build', + 'url', + 'image', + ], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + status: { + type: 'object', + properties: { + body: { + type: 'object', + properties: { + happiness: { type: 'integer' }, + waste_stored: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + y: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + empire: { + type: 'object', + properties: { + is_isolationist: { type: 'integer' }, + name: { type: 'string' }, + id: { type: 'integer' }, + alignment: { type: 'string' }, + }, + required: ['is_isolationist', 'name', 'id', 'alignment'], + }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + orbit: { type: 'integer' }, + notes: { type: 'string' }, + water: { type: 'integer' }, + water_stored: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + propaganda_boost: { type: 'integer' }, + image: { type: 'string' }, + happiness_hour: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + neutral_entry: { type: 'string' }, + water_capacity: { type: 'integer' }, + star_id: { type: 'integer' }, + name: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + id: { type: 'integer' }, + food_stored: { type: 'integer' }, + waste_hour: { type: 'integer' }, + type: { type: 'string' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + num_incoming_ally: { type: 'integer' }, + zone: { type: 'string' }, + size: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + water_hour: { type: 'integer' }, + x: { type: 'integer' }, + ore_stored: { type: 'integer' }, + star_name: { type: 'string' }, + ore_hour: { type: 'integer' }, + ore: { + type: 'object', + properties: { + uraninite: { type: 'integer' }, + kerogen: { type: 'integer' }, + chromite: { type: 'integer' }, + zircon: { type: 'integer' }, + trona: { type: 'integer' }, + monazite: { type: 'integer' }, + halite: { type: 'integer' }, + galena: { type: 'integer' }, + sulfur: { type: 'integer' }, + gypsum: { type: 'integer' }, + rutile: { type: 'integer' }, + magnetite: { type: 'integer' }, + beryl: { type: 'integer' }, + methane: { type: 'integer' }, + fluorite: { type: 'integer' }, + bauxite: { type: 'integer' }, + gold: { type: 'integer' }, + goethite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + anthracite: { type: 'integer' }, + }, + required: [ + 'uraninite', + 'kerogen', + 'chromite', + 'zircon', + 'trona', + 'monazite', + 'halite', + 'galena', + 'sulfur', + 'gypsum', + 'rutile', + 'magnetite', + 'beryl', + 'methane', + 'fluorite', + 'bauxite', + 'gold', + 'goethite', + 'chalcopyrite', + 'anthracite', + ], + }, + energy_stored: { type: 'integer' }, + plots_available: { type: 'integer' }, + energy_hour: { type: 'integer' }, + }, + required: [ + 'happiness', + 'waste_stored', + 'energy_capacity', + 'y', + 'num_incoming_enemy', + 'ore_capacity', + 'empire', + 'waste_capacity', + 'building_count', + 'orbit', + 'notes', + 'water', + 'water_stored', + 'build_queue_len', + 'propaganda_boost', + 'image', + 'happiness_hour', + 'num_incoming_own', + 'neutral_entry', + 'water_capacity', + 'star_id', + 'name', + 'needs_surface_refresh', + 'id', + 'food_stored', + 'waste_hour', + 'type', + 'surface_version', + 'population', + 'food_hour', + 'food_capacity', + 'num_incoming_ally', + 'zone', + 'size', + 'build_queue_size', + 'water_hour', + 'x', + 'ore_stored', + 'star_name', + 'ore_hour', + 'ore', + 'energy_stored', + 'plots_available', + 'energy_hour', + ], + }, + server: { + type: 'object', + properties: { + version: { type: 'number' }, + time: { type: 'string' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + rpc_limit: { type: 'integer' }, + }, + required: ['version', 'time', 'star_map_size', 'rpc_limit'], + }, + empire: { + type: 'object', + properties: { + rpc_count: { type: 'integer' }, + essentia: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + is_isolationist: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + id: { type: 'integer' }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + status_message: { type: 'string' }, + next_colony_srcs: { type: 'integer' }, + self_destruct_active: { type: 'integer' }, + stations: { type: 'object' }, + self_destruct_date: { type: 'string' }, + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + id: { type: 'integer' }, + y: { type: 'integer' }, + star_name: { type: 'string' }, + orbit: { type: 'integer' }, + zone: { type: 'string' }, + star_id: { type: 'integer' }, + empire_id: { type: 'integer' }, + name: { type: 'string' }, + empire_name: { type: 'string' }, + x: { type: 'integer' }, + }, + required: [ + 'id', + 'y', + 'star_name', + 'orbit', + 'zone', + 'star_id', + 'empire_id', + 'name', + 'empire_name', + 'x', + ], + }, + }, + }, + required: ['colonies'], + }, + tech_level: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + }, + required: [ + 'rpc_count', + 'essentia', + 'colonies', + 'is_isolationist', + 'planets', + 'id', + 'name', + 'has_new_messages', + 'insurrect_value', + 'home_planet_id', + 'status_message', + 'next_colony_srcs', + 'self_destruct_active', + 'stations', + 'self_destruct_date', + 'next_colony_cost', + 'latest_message_id', + 'bodies', + 'tech_level', + 'next_station_cost', + ], + }, + }, + required: ['body', 'server', 'empire'], + }, + docks_available: { type: 'integer' }, + max_ships: { type: 'integer' }, + building: { + type: 'object', + properties: { + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + y: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + food: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'ore', 'water', 'energy'], + }, + waste_capacity: { type: 'integer' }, + pending_build: { type: 'null' }, + image: { type: 'string' }, + upgrade: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + time: { type: 'integer' }, + energy: { type: 'integer' }, + water: { type: 'integer' }, + waste: { type: 'integer' }, + ore: { type: 'integer' }, + food: { type: 'integer' }, + }, + required: ['time', 'energy', 'water', 'waste', 'ore', 'food'], + }, + production: { + type: 'object', + properties: { + waste_capacity: { type: 'integer' }, + waste_hour: { type: 'string' }, + ore_hour: { type: 'string' }, + ore_capacity: { type: 'integer' }, + energy_hour: { type: 'string' }, + happiness_hour: { type: 'string' }, + water_hour: { type: 'string' }, + food_hour: { type: 'string' }, + water_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + }, + required: [ + 'waste_capacity', + 'waste_hour', + 'ore_hour', + 'ore_capacity', + 'energy_hour', + 'happiness_hour', + 'water_hour', + 'food_hour', + 'water_capacity', + 'food_capacity', + 'energy_capacity', + ], + }, + image: { type: 'string' }, + reason: { type: 'string' }, + }, + required: ['can', 'cost', 'production', 'image', 'reason'], + }, + happiness_hour: { type: 'integer' }, + efficiency: { type: 'integer' }, + water_hour: { type: 'integer' }, + x: { type: 'integer' }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + downgrade: { + type: 'object', + properties: { + image: { type: 'string' }, + reason: { type: 'string' }, + can: { type: 'integer' }, + }, + required: ['image', 'reason', 'can'], + }, + id: { type: 'integer' }, + waste_hour: { type: 'integer' }, + ore_hour: { type: 'integer' }, + url: { type: 'string' }, + energy_hour: { type: 'integer' }, + }, + required: [ + 'food_hour', + 'food_capacity', + 'energy_capacity', + 'y', + 'ore_capacity', + 'repair_costs', + 'waste_capacity', + 'pending_build', + 'image', + 'upgrade', + 'happiness_hour', + 'efficiency', + 'water_hour', + 'x', + 'water_capacity', + 'name', + 'level', + 'downgrade', + 'id', + 'waste_hour', + 'ore_hour', + 'url', + 'energy_hour', + ], + }, + docked_ships: { + type: 'object', + properties: { + probe: { type: 'integer' }, + short_range_colony_ship: { type: 'integer' }, + }, + required: ['probe', 'short_range_colony_ship'], + }, + number_of_ships: { type: 'integer' }, + ships: { + type: 'array', + items: { + type: 'object', + properties: { + speed: { type: 'integer' }, + name: { type: 'string' }, + fleet_speed: { type: 'integer' }, + type: { type: 'string' }, + id: { type: 'integer' }, + hold_size: { type: 'integer' }, + stealth: { type: 'integer' }, + max_occupants: { type: 'integer' }, + payload: { type: 'array' }, + date_available: { type: 'string' }, + can_scuttle: { type: 'integer' }, + berth_level: { type: 'integer' }, + task: { type: 'string' }, + combat: { type: 'integer' }, + number_of_docks: { type: 'null' }, + type_human: { type: 'string' }, + can_recall: { type: 'integer' }, + image: { type: 'string' }, + date_started: { type: 'string' }, + }, + required: [ + 'speed', + 'name', + 'fleet_speed', + 'type', + 'id', + 'hold_size', + 'stealth', + 'max_occupants', + 'payload', + 'date_available', + 'can_scuttle', + 'berth_level', + 'task', + 'combat', + 'number_of_docks', + 'type_human', + 'can_recall', + 'image', + 'date_started', + ], + }, + }, + number_of_ships_travelling: { type: 'integer' }, + ships_travelling: { type: 'array' }, + number_of_logs: { type: 'integer' }, + battle_log: { type: 'array' }, + }, + required: ['status'], + }, + id: { type: 'integer' }, + jsonrpc: { type: 'string' }, + }, + required: ['result', 'id', 'jsonrpc'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/shipyard': { + post: { + summary: '/shipyard', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + status: { + type: 'object', + properties: { + empire: { + type: 'object', + properties: { + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + zone: { type: 'string' }, + orbit: { type: 'integer' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + star_name: { type: 'string' }, + x: { type: 'integer' }, + empire_name: { type: 'string' }, + star_id: { type: 'integer' }, + empire_id: { type: 'integer' }, + name: { type: 'string' }, + }, + required: [ + 'zone', + 'orbit', + 'id', + 'y', + 'star_name', + 'x', + 'empire_name', + 'star_id', + 'empire_id', + 'name', + ], + }, + }, + }, + required: ['colonies'], + }, + next_station_cost: { type: 'integer' }, + tech_level: { type: 'integer' }, + stations: { type: 'object' }, + self_destruct_date: { type: 'string' }, + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + status_message: { type: 'string' }, + self_destruct_active: { type: 'integer' }, + next_colony_srcs: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + essentia: { type: 'integer' }, + rpc_count: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + id: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + }, + required: [ + 'bodies', + 'next_station_cost', + 'tech_level', + 'stations', + 'self_destruct_date', + 'next_colony_cost', + 'latest_message_id', + 'name', + 'has_new_messages', + 'home_planet_id', + 'insurrect_value', + 'status_message', + 'self_destruct_active', + 'next_colony_srcs', + 'colonies', + 'essentia', + 'rpc_count', + 'is_isolationist', + 'id', + 'planets', + ], + }, + body: { + type: 'object', + properties: { + build_queue_size: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + size: { type: 'integer' }, + plots_available: { type: 'integer' }, + energy_hour: { type: 'integer' }, + ore: { + type: 'object', + properties: { + zircon: { type: 'integer' }, + chromite: { type: 'integer' }, + kerogen: { type: 'integer' }, + uraninite: { type: 'integer' }, + galena: { type: 'integer' }, + trona: { type: 'integer' }, + monazite: { type: 'integer' }, + halite: { type: 'integer' }, + gypsum: { type: 'integer' }, + sulfur: { type: 'integer' }, + magnetite: { type: 'integer' }, + rutile: { type: 'integer' }, + beryl: { type: 'integer' }, + fluorite: { type: 'integer' }, + methane: { type: 'integer' }, + bauxite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + anthracite: { type: 'integer' }, + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + }, + required: [ + 'zircon', + 'chromite', + 'kerogen', + 'uraninite', + 'galena', + 'trona', + 'monazite', + 'halite', + 'gypsum', + 'sulfur', + 'magnetite', + 'rutile', + 'beryl', + 'fluorite', + 'methane', + 'bauxite', + 'chalcopyrite', + 'anthracite', + 'goethite', + 'gold', + ], + }, + energy_stored: { type: 'integer' }, + ore_hour: { type: 'integer' }, + ore_stored: { type: 'integer' }, + star_name: { type: 'string' }, + food_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + zone: { type: 'string' }, + num_incoming_ally: { type: 'integer' }, + star_id: { type: 'integer' }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + neutral_entry: { type: 'string' }, + happiness_hour: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + population: { type: 'integer' }, + surface_version: { type: 'integer' }, + food_stored: { type: 'integer' }, + type: { type: 'string' }, + waste_hour: { type: 'integer' }, + id: { type: 'integer' }, + waste_stored: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + happiness: { type: 'integer' }, + image: { type: 'string' }, + propaganda_boost: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + notes: { type: 'string' }, + water_stored: { type: 'integer' }, + water: { type: 'integer' }, + empire: { + type: 'object', + properties: { + alignment: { type: 'string' }, + id: { type: 'integer' }, + name: { type: 'string' }, + is_isolationist: { type: 'integer' }, + }, + required: ['alignment', 'id', 'name', 'is_isolationist'], + }, + orbit: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + y: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + }, + required: [ + 'build_queue_size', + 'x', + 'water_hour', + 'size', + 'plots_available', + 'energy_hour', + 'ore', + 'energy_stored', + 'ore_hour', + 'ore_stored', + 'star_name', + 'food_capacity', + 'food_hour', + 'zone', + 'num_incoming_ally', + 'star_id', + 'water_capacity', + 'name', + 'needs_surface_refresh', + 'neutral_entry', + 'happiness_hour', + 'num_incoming_own', + 'population', + 'surface_version', + 'food_stored', + 'type', + 'waste_hour', + 'id', + 'waste_stored', + 'energy_capacity', + 'happiness', + 'image', + 'propaganda_boost', + 'build_queue_len', + 'notes', + 'water_stored', + 'water', + 'empire', + 'orbit', + 'waste_capacity', + 'building_count', + 'y', + 'num_incoming_enemy', + 'ore_capacity', + ], + }, + server: { + type: 'object', + properties: { + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + rpc_limit: { type: 'integer' }, + version: { type: 'number' }, + time: { type: 'string' }, + }, + required: ['star_map_size', 'rpc_limit', 'version', 'time'], + }, + }, + required: ['empire', 'body', 'server'], + }, + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'name', 'url', 'image'], + }, + '521681': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521685': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521686': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521687': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521688': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521689': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521690': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521693': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521696': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521697': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521698': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521699': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521700': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521701': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521702': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521703': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521704': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521705': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521706': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521707': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521708': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521711': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'url', 'name'], + }, + '521712': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521713': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521714': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521715': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521716': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521717': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521718': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521938': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521939': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521940': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'url', 'name'], + }, + '521941': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521942': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521943': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521944': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521945': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521946': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521947': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521948': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521949': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'name', 'url', 'image'], + }, + '521950': { + type: 'object', + properties: { + y: { type: 'integer' }, + pending_build: { + type: 'object', + properties: { + start: { type: 'string' }, + end: { type: 'string' }, + seconds_remaining: { type: 'integer' }, + }, + required: ['start', 'end', 'seconds_remaining'], + }, + image: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + }, + required: [ + 'y', + 'pending_build', + 'image', + 'url', + 'x', + 'efficiency', + 'name', + 'level', + ], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + building: { + type: 'object', + properties: { + image: { type: 'string' }, + pending_build: { type: 'null' }, + waste_capacity: { type: 'integer' }, + y: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + }, + required: ['energy', 'food', 'ore', 'water'], + }, + food_capacity: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + url: { type: 'string' }, + energy_hour: { type: 'integer' }, + ore_hour: { type: 'integer' }, + waste_hour: { type: 'integer' }, + id: { type: 'integer' }, + downgrade: { + type: 'object', + properties: { + can: { type: 'integer' }, + reason: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['can', 'reason', 'image'], + }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + upgrade: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + waste: { type: 'integer' }, + water: { type: 'integer' }, + ore: { type: 'integer' }, + food: { type: 'integer' }, + time: { type: 'integer' }, + energy: { type: 'integer' }, + }, + required: ['waste', 'water', 'ore', 'food', 'time', 'energy'], + }, + can: { type: 'integer' }, + production: { + type: 'object', + properties: { + ore_capacity: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + waste_hour: { type: 'string' }, + ore_hour: { type: 'string' }, + energy_hour: { type: 'string' }, + food_hour: { type: 'string' }, + water_hour: { type: 'string' }, + happiness_hour: { type: 'string' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + water_capacity: { type: 'integer' }, + }, + required: [ + 'ore_capacity', + 'waste_capacity', + 'waste_hour', + 'ore_hour', + 'energy_hour', + 'food_hour', + 'water_hour', + 'happiness_hour', + 'energy_capacity', + 'food_capacity', + 'water_capacity', + ], + }, + image: { type: 'string' }, + reason: { type: 'string' }, + }, + required: ['cost', 'can', 'production', 'image', 'reason'], + }, + }, + required: [ + 'image', + 'pending_build', + 'waste_capacity', + 'y', + 'ore_capacity', + 'repair_costs', + 'food_capacity', + 'energy_capacity', + 'food_hour', + 'url', + 'energy_hour', + 'ore_hour', + 'waste_hour', + 'id', + 'downgrade', + 'water_capacity', + 'name', + 'level', + 'happiness_hour', + 'efficiency', + 'x', + 'water_hour', + 'upgrade', + ], + }, + build_queue_max: { type: 'integer' }, + buildable: { + type: 'object', + properties: { + placebo5: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + ore: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['ore', 'seconds', 'waste', 'water', 'food', 'energy'], + }, + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'max_occupants', + 'combat', + 'speed', + 'stealth', + ], + }, + }, + required: [ + 'can', + 'cost', + 'tags', + 'image', + 'type_human', + 'reason', + 'attributes', + ], + }, + fissure_sealer: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'combat', + 'max_occupants', + 'speed', + 'stealth', + 'berth_level', + 'hold_size', + ], + }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + ore: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'waste', 'seconds', 'water', 'ore', 'energy'], + }, + can: { type: 'integer' }, + }, + required: [ + 'attributes', + 'reason', + 'image', + 'type_human', + 'tags', + 'cost', + 'can', + ], + }, + detonator: { + type: 'object', + properties: { + type_human: { type: 'string' }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'max_occupants', + 'combat', + 'stealth', + 'speed', + ], + }, + cost: { + type: 'object', + properties: { + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['waste', 'water', 'seconds', 'ore', 'food', 'energy'], + }, + can: { type: 'integer' }, + }, + required: [ + 'type_human', + 'image', + 'reason', + 'tags', + 'attributes', + 'cost', + 'can', + ], + }, + hulk_fast: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'seconds', 'waste', 'water', 'ore', 'energy'], + }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'max_occupants', + 'combat', + 'speed', + 'stealth', + 'berth_level', + 'hold_size', + ], + }, + }, + required: [ + 'can', + 'cost', + 'image', + 'tags', + 'type_human', + 'reason', + 'attributes', + ], + }, + hulk_huge: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + ore: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'waste', 'seconds', 'water', 'ore', 'energy'], + }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'max_occupants', + 'stealth', + 'combat', + 'speed', + 'berth_level', + 'hold_size', + ], + }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + }, + required: [ + 'can', + 'cost', + 'attributes', + 'image', + 'reason', + 'type_human', + 'tags', + ], + }, + thud: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + ore: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['ore', 'waste', 'water', 'seconds', 'food', 'energy'], + }, + can: { type: 'integer' }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'max_occupants', + 'speed', + 'combat', + 'stealth', + 'berth_level', + 'hold_size', + ], + }, + type_human: { type: 'string' }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: [ + 'cost', + 'can', + 'attributes', + 'type_human', + 'image', + 'tags', + 'reason', + ], + }, + barge: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'seconds', 'waste', 'water', 'ore'], + }, + can: { type: 'integer' }, + type_human: { type: 'string' }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'stealth', + 'max_occupants', + 'combat', + 'speed', + ], + }, + }, + required: [ + 'cost', + 'can', + 'type_human', + 'image', + 'reason', + 'tags', + 'attributes', + ], + }, + supply_pod3: { + type: 'object', + properties: { + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'max_occupants', + 'combat', + 'stealth', + 'speed', + 'berth_level', + 'hold_size', + ], + }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + }, + required: ['energy', 'food', 'ore', 'water', 'waste', 'seconds'], + }, + can: { type: 'integer' }, + }, + required: [ + 'image', + 'type_human', + 'reason', + 'tags', + 'attributes', + 'cost', + 'can', + ], + }, + gas_giant_settlement_ship: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'stealth', + 'max_occupants', + 'combat', + 'speed', + ], + }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + }, + required: ['energy', 'food', 'ore', 'water', 'waste', 'seconds'], + }, + can: { type: 'integer' }, + }, + required: [ + 'attributes', + 'image', + 'tags', + 'type_human', + 'reason', + 'cost', + 'can', + ], + }, + placebo3: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'seconds', 'waste', 'water', 'ore', 'food'], + }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'max_occupants', + 'stealth', + 'combat', + 'speed', + 'berth_level', + 'hold_size', + ], + }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: [ + 'can', + 'cost', + 'attributes', + 'image', + 'tags', + 'type_human', + 'reason', + ], + }, + snark2: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + ore: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'waste', 'seconds', 'water', 'ore', 'energy'], + }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'max_occupants', + 'combat', + 'stealth', + 'speed', + ], + }, + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: [ + 'can', + 'cost', + 'attributes', + 'tags', + 'image', + 'type_human', + 'reason', + ], + }, + fighter: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + speed: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'speed', + 'max_occupants', + 'combat', + 'stealth', + ], + }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'waste', 'seconds', 'water', 'ore', 'food'], + }, + }, + required: [ + 'attributes', + 'image', + 'reason', + 'type_human', + 'tags', + 'can', + 'cost', + ], + }, + placebo6: { + type: 'object', + properties: { + type_human: { type: 'string' }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'max_occupants', + 'combat', + 'speed', + 'stealth', + 'hold_size', + 'berth_level', + ], + }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['seconds', 'waste', 'water', 'ore', 'food', 'energy'], + }, + }, + required: [ + 'type_human', + 'image', + 'reason', + 'tags', + 'attributes', + 'can', + 'cost', + ], + }, + spy_shuttle: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + food: { type: 'string' }, + }, + required: ['energy', 'ore', 'waste', 'water', 'seconds', 'food'], + }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + speed: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'speed', + 'max_occupants', + 'combat', + 'stealth', + 'hold_size', + 'berth_level', + ], + }, + }, + required: [ + 'can', + 'cost', + 'image', + 'reason', + 'type_human', + 'tags', + 'attributes', + ], + }, + excavator: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + energy: { type: 'string' }, + }, + required: ['food', 'ore', 'waste', 'water', 'seconds', 'energy'], + }, + can: { type: 'integer' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'max_occupants', + 'stealth', + 'combat', + 'speed', + 'hold_size', + 'berth_level', + ], + }, + }, + required: [ + 'cost', + 'can', + 'reason', + 'image', + 'type_human', + 'tags', + 'attributes', + ], + }, + placebo: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'max_occupants', + 'speed', + 'combat', + 'stealth', + 'hold_size', + 'berth_level', + ], + }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + cost: { + type: 'object', + properties: { + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['water', 'waste', 'seconds', 'ore', 'food', 'energy'], + }, + can: { type: 'integer' }, + }, + required: [ + 'attributes', + 'image', + 'type_human', + 'reason', + 'tags', + 'cost', + 'can', + ], + }, + scow_fast: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'combat', + 'max_occupants', + 'stealth', + 'speed', + 'hold_size', + 'berth_level', + ], + }, + type_human: { type: 'string' }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'seconds', 'waste', 'water', 'ore'], + }, + }, + required: [ + 'attributes', + 'type_human', + 'image', + 'tags', + 'reason', + 'can', + 'cost', + ], + }, + placebo2: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'ore', 'waste', 'seconds', 'water', 'energy'], + }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'max_occupants', + 'combat', + 'stealth', + 'speed', + 'hold_size', + 'berth_level', + ], + }, + }, + required: [ + 'can', + 'cost', + 'image', + 'reason', + 'type_human', + 'tags', + 'attributes', + ], + }, + surveyor: { + type: 'object', + properties: { + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'combat', + 'max_occupants', + 'stealth', + 'speed', + ], + }, + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + energy: { type: 'string' }, + }, + required: ['food', 'ore', 'waste', 'water', 'seconds', 'energy'], + }, + can: { type: 'integer' }, + }, + required: [ + 'image', + 'type_human', + 'reason', + 'tags', + 'attributes', + 'cost', + 'can', + ], + }, + sweeper: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'max_occupants', + 'stealth', + 'combat', + 'speed', + ], + }, + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + }, + required: ['energy', 'food', 'ore', 'seconds', 'waste', 'water'], + }, + }, + required: [ + 'attributes', + 'tags', + 'image', + 'type_human', + 'reason', + 'can', + 'cost', + ], + }, + scow_large: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'waste', 'water', 'seconds', 'ore'], + }, + can: { type: 'integer' }, + type_human: { type: 'string' }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'stealth', + 'max_occupants', + 'combat', + 'speed', + ], + }, + }, + required: [ + 'cost', + 'can', + 'type_human', + 'image', + 'reason', + 'tags', + 'attributes', + ], + }, + hulk: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'waste', 'water', 'seconds', 'ore'], + }, + can: { type: 'integer' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'max_occupants', + 'combat', + 'stealth', + 'speed', + ], + }, + }, + required: [ + 'cost', + 'can', + 'reason', + 'image', + 'type_human', + 'tags', + 'attributes', + ], + }, + dory: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'seconds', 'waste', 'water', 'ore'], + }, + image: { type: 'string' }, + reason: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'max_occupants', + 'combat', + 'speed', + 'stealth', + ], + }, + }, + required: [ + 'can', + 'cost', + 'image', + 'reason', + 'type_human', + 'tags', + 'attributes', + ], + }, + galleon: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'combat', + 'max_occupants', + 'stealth', + 'speed', + ], + }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'waste', 'water', 'seconds', 'ore'], + }, + can: { type: 'integer' }, + }, + required: [ + 'attributes', + 'reason', + 'image', + 'type_human', + 'tags', + 'cost', + 'can', + ], + }, + stake: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + }, + required: ['energy', 'food', 'ore', 'seconds', 'waste', 'water'], + }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'max_occupants', + 'combat', + 'speed', + 'stealth', + ], + }, + }, + required: [ + 'can', + 'cost', + 'image', + 'type_human', + 'tags', + 'reason', + 'attributes', + ], + }, + space_station: { + type: 'object', + properties: { + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'max_occupants', + 'speed', + 'combat', + 'stealth', + 'hold_size', + 'berth_level', + ], + }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'ore', 'waste', 'seconds', 'water', 'food'], + }, + }, + required: [ + 'image', + 'type_human', + 'tags', + 'reason', + 'attributes', + 'can', + 'cost', + ], + }, + mining_platform_ship: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + ore: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['ore', 'water', 'waste', 'seconds', 'food', 'energy'], + }, + can: { type: 'integer' }, + type_human: { type: 'string' }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'max_occupants', + 'speed', + 'combat', + 'stealth', + ], + }, + }, + required: [ + 'cost', + 'can', + 'type_human', + 'image', + 'reason', + 'tags', + 'attributes', + ], + }, + scow: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'water', 'waste', 'seconds', 'ore', 'food'], + }, + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'max_occupants', + 'stealth', + 'combat', + 'speed', + 'hold_size', + 'berth_level', + ], + }, + }, + required: [ + 'can', + 'cost', + 'tags', + 'image', + 'type_human', + 'reason', + 'attributes', + ], + }, + probe: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + }, + required: ['energy', 'food', 'ore', 'water', 'waste', 'seconds'], + }, + attributes: { + type: 'object', + properties: { + speed: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'speed', + 'max_occupants', + 'combat', + 'stealth', + 'berth_level', + 'hold_size', + ], + }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + }, + required: [ + 'can', + 'cost', + 'attributes', + 'image', + 'type_human', + 'reason', + 'tags', + ], + }, + spaceport_seeker: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'water', 'waste', 'seconds', 'ore', 'food'], + }, + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'combat', + 'max_occupants', + 'stealth', + 'speed', + 'berth_level', + 'hold_size', + ], + }, + }, + required: [ + 'can', + 'cost', + 'tags', + 'image', + 'type_human', + 'reason', + 'attributes', + ], + }, + scow_mega: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + }, + required: ['energy', 'food', 'ore', 'waste', 'seconds', 'water'], + }, + can: { type: 'integer' }, + type_human: { type: 'string' }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'combat', + 'max_occupants', + 'stealth', + 'speed', + 'hold_size', + 'berth_level', + ], + }, + }, + required: [ + 'cost', + 'can', + 'type_human', + 'image', + 'tags', + 'reason', + 'attributes', + ], + }, + colony_ship: { + type: 'object', + properties: { + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'max_occupants', + 'combat', + 'speed', + 'stealth', + ], + }, + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'water', 'waste', 'seconds', 'ore', 'energy'], + }, + can: { type: 'integer' }, + }, + required: [ + 'image', + 'reason', + 'type_human', + 'tags', + 'attributes', + 'cost', + 'can', + ], + }, + supply_pod4: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'waste', 'seconds', 'water', 'ore'], + }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'stealth', + 'max_occupants', + 'combat', + 'speed', + ], + }, + }, + required: [ + 'can', + 'cost', + 'image', + 'type_human', + 'tags', + 'reason', + 'attributes', + ], + }, + short_range_colony_ship: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'seconds', 'waste', 'water', 'ore'], + }, + type_human: { type: 'string' }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'combat', + 'max_occupants', + 'speed', + 'stealth', + ], + }, + }, + required: [ + 'can', + 'cost', + 'type_human', + 'image', + 'reason', + 'tags', + 'attributes', + ], + }, + scanner: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'seconds', 'waste', 'water', 'ore'], + }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'stealth', + 'max_occupants', + 'combat', + 'speed', + 'hold_size', + 'berth_level', + ], + }, + }, + required: [ + 'can', + 'cost', + 'image', + 'type_human', + 'tags', + 'reason', + 'attributes', + ], + }, + cargo_ship: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + }, + required: ['energy', 'food', 'ore', 'seconds', 'waste', 'water'], + }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'combat', + 'max_occupants', + 'speed', + 'stealth', + ], + }, + }, + required: [ + 'can', + 'cost', + 'reason', + 'image', + 'type_human', + 'tags', + 'attributes', + ], + }, + drone: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'combat', + 'max_occupants', + 'speed', + 'stealth', + ], + }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + seconds: { type: 'integer' }, + waste: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'seconds', 'waste', 'water', 'ore', 'food'], + }, + }, + required: [ + 'attributes', + 'image', + 'tags', + 'type_human', + 'reason', + 'can', + 'cost', + ], + }, + bleeder: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['water', 'waste', 'seconds', 'ore', 'food', 'energy'], + }, + can: { type: 'integer' }, + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'max_occupants', + 'combat', + 'stealth', + 'speed', + ], + }, + }, + required: [ + 'cost', + 'can', + 'tags', + 'image', + 'type_human', + 'reason', + 'attributes', + ], + }, + supply_pod5: { + type: 'object', + properties: { + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + stealth: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'combat', + 'max_occupants', + 'speed', + 'stealth', + 'berth_level', + 'hold_size', + ], + }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'waste', 'water', 'seconds', 'ore', 'food'], + }, + }, + required: [ + 'tags', + 'image', + 'type_human', + 'reason', + 'attributes', + 'can', + 'cost', + ], + }, + snark: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'water', 'waste', 'seconds', 'ore', 'food'], + }, + can: { type: 'integer' }, + type_human: { type: 'string' }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'stealth', + 'max_occupants', + 'combat', + 'speed', + ], + }, + }, + required: [ + 'cost', + 'can', + 'type_human', + 'image', + 'tags', + 'reason', + 'attributes', + ], + }, + supply_pod: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'stealth', + 'max_occupants', + 'combat', + 'speed', + ], + }, + image: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'ore', 'waste', 'seconds', 'water', 'food'], + }, + can: { type: 'integer' }, + }, + required: [ + 'attributes', + 'image', + 'tags', + 'type_human', + 'reason', + 'cost', + 'can', + ], + }, + placebo4: { + type: 'object', + properties: { + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'stealth', + 'max_occupants', + 'combat', + 'speed', + 'hold_size', + 'berth_level', + ], + }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'water', 'waste', 'seconds', 'ore', 'food'], + }, + }, + required: [ + 'reason', + 'image', + 'type_human', + 'tags', + 'attributes', + 'can', + 'cost', + ], + }, + supply_pod2: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + ore: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'waste', 'seconds', 'water', 'ore', 'energy'], + }, + can: { type: 'integer' }, + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'max_occupants', + 'speed', + 'combat', + 'stealth', + ], + }, + }, + required: [ + 'cost', + 'can', + 'tags', + 'image', + 'type_human', + 'reason', + 'attributes', + ], + }, + snark3: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'water', 'waste', 'seconds', 'ore'], + }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'max_occupants', + 'speed', + 'combat', + 'stealth', + 'berth_level', + 'hold_size', + ], + }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + }, + required: [ + 'can', + 'cost', + 'attributes', + 'image', + 'reason', + 'type_human', + 'tags', + ], + }, + spy_pod: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'stealth', + 'max_occupants', + 'combat', + 'speed', + ], + }, + tags: { type: 'array', items: { type: 'string' } }, + image: { type: 'string' }, + type_human: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + cost: { + type: 'object', + properties: { + food: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'ore', 'waste', 'seconds', 'water', 'energy'], + }, + can: { type: 'integer' }, + }, + required: [ + 'attributes', + 'tags', + 'image', + 'type_human', + 'reason', + 'cost', + 'can', + ], + }, + security_ministry_seeker: { + type: 'object', + properties: { + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + }, + required: [ + 'max_occupants', + 'combat', + 'stealth', + 'speed', + 'hold_size', + 'berth_level', + ], + }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'waste', 'seconds', 'water', 'ore'], + }, + can: { type: 'integer' }, + }, + required: [ + 'image', + 'reason', + 'type_human', + 'tags', + 'attributes', + 'cost', + 'can', + ], + }, + terraforming_platform_ship: { + type: 'object', + properties: { + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + combat: { type: 'string' }, + max_occupants: { type: 'integer' }, + stealth: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'combat', + 'max_occupants', + 'stealth', + 'speed', + ], + }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + }, + required: ['energy', 'food', 'ore', 'water', 'waste', 'seconds'], + }, + can: { type: 'integer' }, + }, + required: [ + 'attributes', + 'image', + 'reason', + 'type_human', + 'tags', + 'cost', + 'can', + ], + }, + observatory_seeker: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + waste: { type: 'string' }, + seconds: { type: 'integer' }, + }, + required: ['energy', 'food', 'ore', 'water', 'waste', 'seconds'], + }, + type_human: { type: 'string' }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + attributes: { + type: 'object', + properties: { + hold_size: { type: 'string' }, + berth_level: { type: 'integer' }, + max_occupants: { type: 'integer' }, + speed: { type: 'string' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + }, + required: [ + 'hold_size', + 'berth_level', + 'max_occupants', + 'speed', + 'combat', + 'stealth', + ], + }, + }, + required: [ + 'can', + 'cost', + 'type_human', + 'image', + 'reason', + 'tags', + 'attributes', + ], + }, + freighter: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + ore: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + }, + required: ['energy', 'food', 'ore', 'waste', 'water', 'seconds'], + }, + can: { type: 'integer' }, + attributes: { + type: 'object', + properties: { + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + stealth: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + speed: { type: 'string' }, + }, + required: [ + 'berth_level', + 'hold_size', + 'stealth', + 'max_occupants', + 'combat', + 'speed', + ], + }, + type_human: { type: 'string' }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + tags: { type: 'array', items: { type: 'string' } }, + }, + required: [ + 'cost', + 'can', + 'attributes', + 'type_human', + 'image', + 'reason', + 'tags', + ], + }, + smuggler_ship: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + ore: { type: 'string' }, + waste: { type: 'string' }, + water: { type: 'string' }, + seconds: { type: 'integer' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['ore', 'waste', 'water', 'seconds', 'food', 'energy'], + }, + image: { type: 'string' }, + type_human: { type: 'string' }, + tags: { type: 'array', items: { type: 'string' } }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + attributes: { + type: 'object', + properties: { + speed: { type: 'string' }, + max_occupants: { type: 'integer' }, + combat: { type: 'string' }, + stealth: { type: 'string' }, + berth_level: { type: 'integer' }, + hold_size: { type: 'string' }, + }, + required: [ + 'speed', + 'max_occupants', + 'combat', + 'stealth', + 'berth_level', + 'hold_size', + ], + }, + }, + required: [ + 'can', + 'cost', + 'image', + 'type_human', + 'tags', + 'reason', + 'attributes', + ], + }, + }, + required: [ + 'placebo5', + 'fissure_sealer', + 'detonator', + 'hulk_fast', + 'hulk_huge', + 'thud', + 'barge', + 'supply_pod3', + 'gas_giant_settlement_ship', + 'placebo3', + 'snark2', + 'fighter', + 'placebo6', + 'spy_shuttle', + 'excavator', + 'placebo', + 'scow_fast', + 'placebo2', + 'surveyor', + 'sweeper', + 'scow_large', + 'hulk', + 'dory', + 'galleon', + 'stake', + 'space_station', + 'mining_platform_ship', + 'scow', + 'probe', + 'spaceport_seeker', + 'scow_mega', + 'colony_ship', + 'supply_pod4', + 'short_range_colony_ship', + 'scanner', + 'cargo_ship', + 'drone', + 'bleeder', + 'supply_pod5', + 'snark', + 'supply_pod', + 'placebo4', + 'supply_pod2', + 'snark3', + 'spy_pod', + 'security_ministry_seeker', + 'terraforming_platform_ship', + 'observatory_seeker', + 'freighter', + 'smuggler_ship', + ], + }, + docks_available: { type: 'integer' }, + build_queue_used: { type: 'integer' }, + }, + required: ['status'], + }, + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['result', 'jsonrpc', 'id'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/observatory': { + post: { + summary: '/observatory', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521681': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521685': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521686': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521687': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521688': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521689': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521690': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521693': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521696': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521697': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521698': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521699': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521700': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521701': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521702': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521703': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521704': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'name', 'url', 'image'], + }, + '521705': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521706': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521707': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521708': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'url', 'name'], + }, + '521711': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521712': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521713': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521714': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521715': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521716': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521717': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521718': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521938': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521939': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521940': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521941': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521942': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521943': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521944': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'name', 'url', 'image'], + }, + '521945': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521946': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521947': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521948': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521949': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521950': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + pending_build: { + type: 'object', + properties: { + start: { type: 'string' }, + end: { type: 'string' }, + seconds_remaining: { type: 'integer' }, + }, + required: ['start', 'end', 'seconds_remaining'], + }, + y: { type: 'integer' }, + }, + required: [ + 'level', + 'name', + 'efficiency', + 'x', + 'url', + 'image', + 'pending_build', + 'y', + ], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + status: { + type: 'object', + properties: { + empire: { + type: 'object', + properties: { + tech_level: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + empire_name: { type: 'string' }, + x: { type: 'integer' }, + star_id: { type: 'integer' }, + empire_id: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + id: { type: 'integer' }, + star_name: { type: 'string' }, + orbit: { type: 'integer' }, + zone: { type: 'string' }, + }, + required: [ + 'empire_name', + 'x', + 'star_id', + 'empire_id', + 'name', + 'y', + 'id', + 'star_name', + 'orbit', + 'zone', + ], + }, + }, + }, + required: ['colonies'], + }, + latest_message_id: { type: 'integer' }, + next_colony_cost: { type: 'integer' }, + self_destruct_date: { type: 'string' }, + stations: { type: 'object' }, + status_message: { type: 'string' }, + next_colony_srcs: { type: 'integer' }, + self_destruct_active: { type: 'integer' }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + id: { type: 'integer' }, + rpc_count: { type: 'integer' }, + essentia: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + is_isolationist: { type: 'integer' }, + }, + required: [ + 'tech_level', + 'next_station_cost', + 'bodies', + 'latest_message_id', + 'next_colony_cost', + 'self_destruct_date', + 'stations', + 'status_message', + 'next_colony_srcs', + 'self_destruct_active', + 'name', + 'has_new_messages', + 'insurrect_value', + 'home_planet_id', + 'planets', + 'id', + 'rpc_count', + 'essentia', + 'colonies', + 'is_isolationist', + ], + }, + body: { + type: 'object', + properties: { + food_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + num_incoming_ally: { type: 'integer' }, + zone: { type: 'string' }, + size: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + ore: { + type: 'object', + properties: { + bauxite: { type: 'integer' }, + anthracite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + gold: { type: 'integer' }, + goethite: { type: 'integer' }, + beryl: { type: 'integer' }, + methane: { type: 'integer' }, + fluorite: { type: 'integer' }, + sulfur: { type: 'integer' }, + gypsum: { type: 'integer' }, + magnetite: { type: 'integer' }, + rutile: { type: 'integer' }, + kerogen: { type: 'integer' }, + chromite: { type: 'integer' }, + zircon: { type: 'integer' }, + uraninite: { type: 'integer' }, + monazite: { type: 'integer' }, + halite: { type: 'integer' }, + trona: { type: 'integer' }, + galena: { type: 'integer' }, + }, + required: [ + 'bauxite', + 'anthracite', + 'chalcopyrite', + 'gold', + 'goethite', + 'beryl', + 'methane', + 'fluorite', + 'sulfur', + 'gypsum', + 'magnetite', + 'rutile', + 'kerogen', + 'chromite', + 'zircon', + 'uraninite', + 'monazite', + 'halite', + 'trona', + 'galena', + ], + }, + energy_stored: { type: 'integer' }, + plots_available: { type: 'integer' }, + energy_hour: { type: 'integer' }, + ore_stored: { type: 'integer' }, + star_name: { type: 'string' }, + ore_hour: { type: 'integer' }, + waste_stored: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + happiness: { type: 'integer' }, + notes: { type: 'string' }, + water: { type: 'integer' }, + water_stored: { type: 'integer' }, + image: { type: 'string' }, + propaganda_boost: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + y: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + empire: { + type: 'object', + properties: { + name: { type: 'string' }, + is_isolationist: { type: 'integer' }, + alignment: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['name', 'is_isolationist', 'alignment', 'id'], + }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + orbit: { type: 'integer' }, + neutral_entry: { type: 'string' }, + star_id: { type: 'integer' }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + id: { type: 'integer' }, + food_stored: { type: 'integer' }, + type: { type: 'string' }, + waste_hour: { type: 'integer' }, + }, + required: [ + 'food_capacity', + 'food_hour', + 'num_incoming_ally', + 'zone', + 'size', + 'build_queue_size', + 'x', + 'water_hour', + 'ore', + 'energy_stored', + 'plots_available', + 'energy_hour', + 'ore_stored', + 'star_name', + 'ore_hour', + 'waste_stored', + 'energy_capacity', + 'happiness', + 'notes', + 'water', + 'water_stored', + 'image', + 'propaganda_boost', + 'build_queue_len', + 'num_incoming_enemy', + 'y', + 'ore_capacity', + 'empire', + 'waste_capacity', + 'building_count', + 'orbit', + 'neutral_entry', + 'star_id', + 'water_capacity', + 'name', + 'needs_surface_refresh', + 'happiness_hour', + 'num_incoming_own', + 'surface_version', + 'population', + 'id', + 'food_stored', + 'type', + 'waste_hour', + ], + }, + server: { + type: 'object', + properties: { + version: { type: 'number' }, + time: { type: 'string' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + rpc_limit: { type: 'integer' }, + }, + required: ['version', 'time', 'star_map_size', 'rpc_limit'], + }, + }, + required: ['empire', 'body', 'server'], + }, + building: { + type: 'object', + properties: { + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + efficiency: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + upgrade: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + food: { type: 'integer' }, + ore: { type: 'integer' }, + waste: { type: 'integer' }, + water: { type: 'integer' }, + energy: { type: 'integer' }, + time: { type: 'integer' }, + }, + required: ['food', 'ore', 'waste', 'water', 'energy', 'time'], + }, + image: { type: 'string' }, + production: { + type: 'object', + properties: { + water_capacity: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + water_hour: { type: 'string' }, + happiness_hour: { type: 'string' }, + food_hour: { type: 'string' }, + energy_hour: { type: 'string' }, + waste_capacity: { type: 'integer' }, + waste_hour: { type: 'string' }, + ore_hour: { type: 'string' }, + ore_capacity: { type: 'integer' }, + }, + required: [ + 'water_capacity', + 'energy_capacity', + 'food_capacity', + 'water_hour', + 'happiness_hour', + 'food_hour', + 'energy_hour', + 'waste_capacity', + 'waste_hour', + 'ore_hour', + 'ore_capacity', + ], + }, + reason: { type: 'string' }, + }, + required: ['can', 'cost', 'image', 'production', 'reason'], + }, + url: { type: 'string' }, + energy_hour: { type: 'integer' }, + ore_hour: { type: 'integer' }, + waste_hour: { type: 'integer' }, + downgrade: { + type: 'object', + properties: { + image: { type: 'string' }, + reason: { type: 'string' }, + can: { type: 'integer' }, + }, + required: ['image', 'reason', 'can'], + }, + id: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + image: { type: 'string' }, + pending_build: { type: 'null' }, + waste_capacity: { type: 'integer' }, + y: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + energy: { type: 'string' }, + food: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + }, + required: ['energy', 'food', 'water', 'ore'], + }, + ore_capacity: { type: 'integer' }, + }, + required: [ + 'water_capacity', + 'name', + 'level', + 'efficiency', + 'happiness_hour', + 'x', + 'water_hour', + 'upgrade', + 'url', + 'energy_hour', + 'ore_hour', + 'waste_hour', + 'downgrade', + 'id', + 'energy_capacity', + 'food_capacity', + 'food_hour', + 'image', + 'pending_build', + 'waste_capacity', + 'y', + 'repair_costs', + 'ore_capacity', + ], + }, + travelling: { type: 'integer' }, + star_count: { type: 'integer' }, + max_probes: { type: 'integer' }, + stars: { + type: 'array', + items: { + type: 'object', + properties: { + color: { type: 'string' }, + x: { type: 'integer' }, + bodies: { + type: 'array', + items: { + type: 'object', + properties: { + star_id: { type: 'integer' }, + name: { type: 'string' }, + size: { type: 'integer' }, + x: { type: 'integer' }, + water: { type: 'integer' }, + notes: { type: ['null', 'string'] }, + ore: { + type: 'object', + properties: { + zircon: { type: 'integer' }, + chromite: { type: 'integer' }, + kerogen: { type: 'integer' }, + uraninite: { type: 'integer' }, + galena: { type: 'integer' }, + halite: { type: 'integer' }, + monazite: { type: 'integer' }, + trona: { type: 'integer' }, + sulfur: { type: 'integer' }, + gypsum: { type: 'integer' }, + magnetite: { type: 'integer' }, + rutile: { type: 'integer' }, + beryl: { type: 'integer' }, + fluorite: { type: 'integer' }, + methane: { type: 'integer' }, + bauxite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + anthracite: { type: 'integer' }, + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + }, + required: [ + 'zircon', + 'chromite', + 'kerogen', + 'uraninite', + 'galena', + 'halite', + 'monazite', + 'trona', + 'sulfur', + 'gypsum', + 'magnetite', + 'rutile', + 'beryl', + 'fluorite', + 'methane', + 'bauxite', + 'chalcopyrite', + 'anthracite', + 'goethite', + 'gold', + ], + }, + image: { type: 'string' }, + star_name: { type: 'string' }, + y: { type: 'integer' }, + id: { type: 'integer' }, + zone: { type: 'string' }, + orbit: { type: 'integer' }, + type: { type: 'string' }, + num_incoming_ally: { type: 'integer' }, + food_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + energy_stored: { type: 'integer' }, + energy_hour: { type: 'integer' }, + plots_available: { type: 'integer' }, + ore_stored: { type: 'integer' }, + ore_hour: { type: 'integer' }, + water_hour: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + water_stored: { type: 'integer' }, + propaganda_boost: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + building_count: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + empire: { + type: 'object', + properties: { + id: { type: 'integer' }, + alignment: { type: 'string' }, + name: { type: 'string' }, + is_isolationist: { type: 'integer' }, + }, + required: ['id', 'alignment', 'name', 'is_isolationist'], + }, + waste_stored: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + happiness: { type: 'integer' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + waste_hour: { type: 'integer' }, + food_stored: { type: 'integer' }, + neutral_entry: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + water_capacity: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + }, + required: [ + 'star_id', + 'name', + 'size', + 'x', + 'notes', + 'ore', + 'image', + 'star_name', + 'y', + 'id', + 'zone', + 'orbit', + 'type', + ], + }, + }, + name: { type: 'string' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + influence: { type: 'null' }, + zone: { type: 'string' }, + }, + required: [ + 'color', + 'x', + 'bodies', + 'name', + 'id', + 'y', + 'influence', + 'zone', + ], + }, + }, + }, + required: ['status'], + }, + id: { type: 'integer' }, + jsonrpc: { type: 'string' }, + }, + required: ['result', 'id', 'jsonrpc'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: ['integer', 'string'] } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/orestorage': { + post: { + summary: '/orestorage', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + ore_stored: { + type: 'object', + properties: { + bauxite: { type: 'integer' }, + anthracite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + beryl: { type: 'integer' }, + fluorite: { type: 'integer' }, + methane: { type: 'integer' }, + sulfur: { type: 'integer' }, + gypsum: { type: 'integer' }, + magnetite: { type: 'integer' }, + rutile: { type: 'integer' }, + zircon: { type: 'integer' }, + kerogen: { type: 'integer' }, + chromite: { type: 'integer' }, + uraninite: { type: 'integer' }, + galena: { type: 'integer' }, + trona: { type: 'integer' }, + monazite: { type: 'integer' }, + halite: { type: 'integer' }, + }, + required: [ + 'bauxite', + 'anthracite', + 'chalcopyrite', + 'goethite', + 'gold', + 'beryl', + 'fluorite', + 'methane', + 'sulfur', + 'gypsum', + 'magnetite', + 'rutile', + 'zircon', + 'kerogen', + 'chromite', + 'uraninite', + 'galena', + 'trona', + 'monazite', + 'halite', + ], + }, + building: { + type: 'object', + properties: { + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + y: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + energy: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'water', 'ore', 'food'], + }, + image: { type: 'string' }, + pending_build: { type: 'null' }, + efficiency: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + water_hour: { type: 'integer' }, + x: { type: 'integer' }, + upgrade: { + type: 'object', + properties: { + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + time: { type: 'integer' }, + energy: { type: 'integer' }, + ore: { type: 'integer' }, + water: { type: 'integer' }, + waste: { type: 'integer' }, + food: { type: 'integer' }, + }, + required: ['time', 'energy', 'ore', 'water', 'waste', 'food'], + }, + image: { type: 'string' }, + reason: { type: 'string' }, + production: { + type: 'object', + properties: { + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + water_capacity: { type: 'integer' }, + food_hour: { type: 'string' }, + water_hour: { type: 'string' }, + happiness_hour: { type: 'string' }, + energy_hour: { type: 'string' }, + ore_capacity: { type: 'string' }, + waste_capacity: { type: 'integer' }, + waste_hour: { type: 'string' }, + ore_hour: { type: 'string' }, + }, + required: [ + 'energy_capacity', + 'food_capacity', + 'water_capacity', + 'food_hour', + 'water_hour', + 'happiness_hour', + 'energy_hour', + 'ore_capacity', + 'waste_capacity', + 'waste_hour', + 'ore_hour', + ], + }, + }, + required: ['can', 'cost', 'image', 'reason', 'production'], + }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + waste_hour: { type: 'integer' }, + ore_hour: { type: 'integer' }, + id: { type: 'integer' }, + downgrade: { + type: 'object', + properties: { + reason: { type: 'string' }, + image: { type: 'string' }, + can: { type: 'integer' }, + }, + required: ['reason', 'image', 'can'], + }, + url: { type: 'string' }, + energy_hour: { type: 'integer' }, + }, + required: [ + 'food_hour', + 'food_capacity', + 'energy_capacity', + 'waste_capacity', + 'y', + 'ore_capacity', + 'repair_costs', + 'image', + 'pending_build', + 'efficiency', + 'happiness_hour', + 'water_hour', + 'x', + 'upgrade', + 'water_capacity', + 'name', + 'level', + 'waste_hour', + 'ore_hour', + 'id', + 'downgrade', + 'url', + 'energy_hour', + ], + }, + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521681': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521685': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521686': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521687': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521688': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521689': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521690': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'url', 'name'], + }, + '521693': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521696': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521697': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521698': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521699': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521700': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521701': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521702': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521703': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521704': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521705': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521706': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521707': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521708': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521711': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521712': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521713': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521714': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521715': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521716': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521717': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521718': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521938': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'name', 'level', 'url', 'image'], + }, + '521939': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521940': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521941': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521942': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'name', 'url', 'image'], + }, + '521943': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521944': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521945': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521946': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521947': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521948': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'url', 'name'], + }, + '521949': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521950': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + pending_build: { + type: 'object', + properties: { + seconds_remaining: { type: 'integer' }, + start: { type: 'string' }, + end: { type: 'string' }, + }, + required: ['seconds_remaining', 'start', 'end'], + }, + }, + required: [ + 'efficiency', + 'x', + 'level', + 'name', + 'y', + 'url', + 'image', + 'pending_build', + ], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + status: { + type: 'object', + properties: { + empire: { + type: 'object', + properties: { + next_colony_srcs: { type: 'integer' }, + self_destruct_active: { type: 'integer' }, + status_message: { type: 'string' }, + insurrect_value: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + has_new_messages: { type: 'integer' }, + name: { type: 'string' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + id: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + rpc_count: { type: 'integer' }, + essentia: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + tech_level: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + star_name: { type: 'string' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + zone: { type: 'string' }, + orbit: { type: 'integer' }, + star_id: { type: 'integer' }, + empire_id: { type: 'integer' }, + name: { type: 'string' }, + empire_name: { type: 'string' }, + x: { type: 'integer' }, + }, + required: [ + 'star_name', + 'id', + 'y', + 'zone', + 'orbit', + 'star_id', + 'empire_id', + 'name', + 'empire_name', + 'x', + ], + }, + }, + }, + required: ['colonies'], + }, + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + self_destruct_date: { type: 'string' }, + stations: { type: 'object' }, + }, + required: [ + 'next_colony_srcs', + 'self_destruct_active', + 'status_message', + 'insurrect_value', + 'home_planet_id', + 'has_new_messages', + 'name', + 'planets', + 'id', + 'is_isolationist', + 'rpc_count', + 'essentia', + 'colonies', + 'tech_level', + 'next_station_cost', + 'bodies', + 'next_colony_cost', + 'latest_message_id', + 'self_destruct_date', + 'stations', + ], + }, + body: { + type: 'object', + properties: { + ore_hour: { type: 'integer' }, + star_name: { type: 'string' }, + ore_stored: { type: 'integer' }, + energy_hour: { type: 'integer' }, + plots_available: { type: 'integer' }, + energy_stored: { type: 'integer' }, + ore: { + type: 'object', + properties: { + bauxite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + anthracite: { type: 'integer' }, + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + beryl: { type: 'integer' }, + methane: { type: 'integer' }, + fluorite: { type: 'integer' }, + sulfur: { type: 'integer' }, + gypsum: { type: 'integer' }, + magnetite: { type: 'integer' }, + rutile: { type: 'integer' }, + zircon: { type: 'integer' }, + kerogen: { type: 'integer' }, + chromite: { type: 'integer' }, + uraninite: { type: 'integer' }, + galena: { type: 'integer' }, + trona: { type: 'integer' }, + monazite: { type: 'integer' }, + halite: { type: 'integer' }, + }, + required: [ + 'bauxite', + 'chalcopyrite', + 'anthracite', + 'goethite', + 'gold', + 'beryl', + 'methane', + 'fluorite', + 'sulfur', + 'gypsum', + 'magnetite', + 'rutile', + 'zircon', + 'kerogen', + 'chromite', + 'uraninite', + 'galena', + 'trona', + 'monazite', + 'halite', + ], + }, + water_hour: { type: 'integer' }, + x: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + size: { type: 'integer' }, + zone: { type: 'string' }, + num_incoming_ally: { type: 'integer' }, + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + type: { type: 'string' }, + waste_hour: { type: 'integer' }, + food_stored: { type: 'integer' }, + id: { type: 'integer' }, + population: { type: 'integer' }, + surface_version: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + needs_surface_refresh: { type: 'integer' }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + star_id: { type: 'integer' }, + neutral_entry: { type: 'string' }, + building_count: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + orbit: { type: 'integer' }, + empire: { + type: 'object', + properties: { + name: { type: 'string' }, + is_isolationist: { type: 'integer' }, + id: { type: 'integer' }, + alignment: { type: 'string' }, + }, + required: ['name', 'is_isolationist', 'id', 'alignment'], + }, + ore_capacity: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + y: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + propaganda_boost: { type: 'integer' }, + image: { type: 'string' }, + water_stored: { type: 'integer' }, + water: { type: 'integer' }, + notes: { type: 'string' }, + happiness: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + waste_stored: { type: 'integer' }, + }, + required: [ + 'ore_hour', + 'star_name', + 'ore_stored', + 'energy_hour', + 'plots_available', + 'energy_stored', + 'ore', + 'water_hour', + 'x', + 'build_queue_size', + 'size', + 'zone', + 'num_incoming_ally', + 'food_hour', + 'food_capacity', + 'type', + 'waste_hour', + 'food_stored', + 'id', + 'population', + 'surface_version', + 'num_incoming_own', + 'happiness_hour', + 'needs_surface_refresh', + 'water_capacity', + 'name', + 'star_id', + 'neutral_entry', + 'building_count', + 'waste_capacity', + 'orbit', + 'empire', + 'ore_capacity', + 'num_incoming_enemy', + 'y', + 'build_queue_len', + 'propaganda_boost', + 'image', + 'water_stored', + 'water', + 'notes', + 'happiness', + 'energy_capacity', + 'waste_stored', + ], + }, + server: { + type: 'object', + properties: { + time: { type: 'string' }, + version: { type: 'number' }, + rpc_limit: { type: 'integer' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + }, + required: ['time', 'version', 'rpc_limit', 'star_map_size'], + }, + }, + required: ['empire', 'body', 'server'], + }, + }, + required: ['ore_stored', 'building', 'buildings', 'status'], + }, + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['result', 'jsonrpc', 'id'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: 'string' } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/waterstorage': { + post: { + summary: '/waterstorage', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + status: { + type: 'object', + properties: { + empire: { + type: 'object', + properties: { + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + stations: { type: 'object' }, + self_destruct_date: { type: 'string' }, + next_station_cost: { type: 'integer' }, + tech_level: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + star_name: { type: 'string' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + orbit: { type: 'integer' }, + zone: { type: 'string' }, + empire_name: { type: 'string' }, + x: { type: 'integer' }, + name: { type: 'string' }, + empire_id: { type: 'integer' }, + star_id: { type: 'integer' }, + }, + required: [ + 'star_name', + 'id', + 'y', + 'orbit', + 'zone', + 'empire_name', + 'x', + 'name', + 'empire_id', + 'star_id', + ], + }, + }, + }, + required: ['colonies'], + }, + id: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + essentia: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + rpc_count: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + status_message: { type: 'string' }, + self_destruct_active: { type: 'integer' }, + next_colony_srcs: { type: 'integer' }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + }, + required: [ + 'next_colony_cost', + 'latest_message_id', + 'stations', + 'self_destruct_date', + 'next_station_cost', + 'tech_level', + 'bodies', + 'id', + 'planets', + 'essentia', + 'colonies', + 'rpc_count', + 'is_isolationist', + 'status_message', + 'self_destruct_active', + 'next_colony_srcs', + 'name', + 'has_new_messages', + 'home_planet_id', + 'insurrect_value', + ], + }, + server: { + type: 'object', + properties: { + version: { type: 'number' }, + time: { type: 'string' }, + rpc_limit: { type: 'integer' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + }, + required: ['version', 'time', 'rpc_limit', 'star_map_size'], + }, + body: { + type: 'object', + properties: { + water_stored: { type: 'integer' }, + water: { type: 'integer' }, + notes: { type: 'string' }, + propaganda_boost: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + image: { type: 'string' }, + ore_capacity: { type: 'integer' }, + y: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + building_count: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + orbit: { type: 'integer' }, + empire: { + type: 'object', + properties: { + id: { type: 'integer' }, + alignment: { type: 'string' }, + is_isolationist: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['id', 'alignment', 'is_isolationist', 'name'], + }, + energy_capacity: { type: 'integer' }, + waste_stored: { type: 'integer' }, + happiness: { type: 'integer' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + id: { type: 'integer' }, + type: { type: 'string' }, + waste_hour: { type: 'integer' }, + food_stored: { type: 'integer' }, + neutral_entry: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + water_capacity: { type: 'integer' }, + star_id: { type: 'integer' }, + name: { type: 'string' }, + num_incoming_own: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + num_incoming_ally: { type: 'integer' }, + zone: { type: 'string' }, + food_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + energy_stored: { type: 'integer' }, + ore: { + type: 'object', + properties: { + uraninite: { type: 'integer' }, + zircon: { type: 'integer' }, + kerogen: { type: 'integer' }, + chromite: { type: 'integer' }, + galena: { type: 'integer' }, + monazite: { type: 'integer' }, + trona: { type: 'integer' }, + halite: { type: 'integer' }, + sulfur: { type: 'integer' }, + gypsum: { type: 'integer' }, + rutile: { type: 'integer' }, + magnetite: { type: 'integer' }, + beryl: { type: 'integer' }, + methane: { type: 'integer' }, + fluorite: { type: 'integer' }, + bauxite: { type: 'integer' }, + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + anthracite: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + }, + required: [ + 'uraninite', + 'zircon', + 'kerogen', + 'chromite', + 'galena', + 'monazite', + 'trona', + 'halite', + 'sulfur', + 'gypsum', + 'rutile', + 'magnetite', + 'beryl', + 'methane', + 'fluorite', + 'bauxite', + 'goethite', + 'gold', + 'anthracite', + 'chalcopyrite', + ], + }, + energy_hour: { type: 'integer' }, + plots_available: { type: 'integer' }, + star_name: { type: 'string' }, + ore_stored: { type: 'integer' }, + ore_hour: { type: 'integer' }, + size: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + }, + required: [ + 'water_stored', + 'water', + 'notes', + 'propaganda_boost', + 'build_queue_len', + 'image', + 'ore_capacity', + 'y', + 'num_incoming_enemy', + 'building_count', + 'waste_capacity', + 'orbit', + 'empire', + 'energy_capacity', + 'waste_stored', + 'happiness', + 'surface_version', + 'population', + 'id', + 'type', + 'waste_hour', + 'food_stored', + 'neutral_entry', + 'needs_surface_refresh', + 'water_capacity', + 'star_id', + 'name', + 'num_incoming_own', + 'happiness_hour', + 'num_incoming_ally', + 'zone', + 'food_capacity', + 'food_hour', + 'energy_stored', + 'ore', + 'energy_hour', + 'plots_available', + 'star_name', + 'ore_stored', + 'ore_hour', + 'size', + 'x', + 'water_hour', + 'build_queue_size', + ], + }, + }, + required: ['empire', 'server', 'body'], + }, + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521681': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521685': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521686': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521687': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521688': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521689': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521690': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521693': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521696': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521697': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521698': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521699': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521700': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521701': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521702': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521703': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521704': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521705': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521706': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521707': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'name', 'url', 'image'], + }, + '521708': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521711': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521712': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521713': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521714': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'name', 'url', 'image'], + }, + '521715': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521716': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521717': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521718': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'name', 'url', 'image'], + }, + '521938': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521939': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521940': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521941': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521942': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521943': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521944': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521945': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521946': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521947': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521948': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521949': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521950': { + type: 'object', + properties: { + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + pending_build: { + type: 'object', + properties: { + seconds_remaining: { type: 'integer' }, + start: { type: 'string' }, + end: { type: 'string' }, + }, + required: ['seconds_remaining', 'start', 'end'], + }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + }, + required: [ + 'y', + 'image', + 'url', + 'pending_build', + 'x', + 'efficiency', + 'name', + 'level', + ], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + building: { + type: 'object', + properties: { + id: { type: 'integer' }, + downgrade: { + type: 'object', + properties: { + image: { type: 'string' }, + reason: { type: 'string' }, + can: { type: 'integer' }, + }, + required: ['image', 'reason', 'can'], + }, + waste_hour: { type: 'integer' }, + ore_hour: { type: 'integer' }, + url: { type: 'string' }, + energy_hour: { type: 'integer' }, + upgrade: { + type: 'object', + properties: { + production: { + type: 'object', + properties: { + waste_hour: { type: 'string' }, + waste_capacity: { type: 'integer' }, + ore_hour: { type: 'string' }, + ore_capacity: { type: 'integer' }, + energy_hour: { type: 'string' }, + happiness_hour: { type: 'string' }, + water_hour: { type: 'string' }, + food_hour: { type: 'string' }, + water_capacity: { type: 'string' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + }, + required: [ + 'waste_hour', + 'waste_capacity', + 'ore_hour', + 'ore_capacity', + 'energy_hour', + 'happiness_hour', + 'water_hour', + 'food_hour', + 'water_capacity', + 'energy_capacity', + 'food_capacity', + ], + }, + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + cost: { + type: 'object', + properties: { + time: { type: 'integer' }, + energy: { type: 'integer' }, + waste: { type: 'integer' }, + water: { type: 'integer' }, + ore: { type: 'integer' }, + food: { type: 'integer' }, + }, + required: ['time', 'energy', 'waste', 'water', 'ore', 'food'], + }, + can: { type: 'integer' }, + }, + required: ['production', 'image', 'reason', 'cost', 'can'], + }, + efficiency: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + water_capacity: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + y: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + food: { type: 'string' }, + water: { type: 'string' }, + ore: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['food', 'water', 'ore', 'energy'], + }, + waste_capacity: { type: 'integer' }, + pending_build: { type: 'null' }, + image: { type: 'string' }, + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + }, + required: [ + 'id', + 'downgrade', + 'waste_hour', + 'ore_hour', + 'url', + 'energy_hour', + 'upgrade', + 'efficiency', + 'happiness_hour', + 'x', + 'water_hour', + 'water_capacity', + 'name', + 'level', + 'y', + 'ore_capacity', + 'repair_costs', + 'waste_capacity', + 'pending_build', + 'image', + 'food_hour', + 'food_capacity', + 'energy_capacity', + ], + }, + }, + required: ['status', 'buildings', 'building'], + }, + id: { type: 'integer' }, + jsonrpc: { type: 'string' }, + }, + required: ['result', 'id', 'jsonrpc'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: 'string' } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/energyreserve': { + post: { + summary: '/energyreserve', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + building: { + type: 'object', + properties: { + name: { type: 'string' }, + water_capacity: { type: 'integer' }, + level: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + efficiency: { type: 'integer' }, + upgrade: { + type: 'object', + properties: { + cost: { + type: 'object', + properties: { + food: { type: 'integer' }, + waste: { type: 'integer' }, + water: { type: 'integer' }, + ore: { type: 'integer' }, + energy: { type: 'integer' }, + time: { type: 'integer' }, + }, + required: ['food', 'waste', 'water', 'ore', 'energy', 'time'], + }, + can: { type: 'integer' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + image: { type: 'string' }, + production: { + type: 'object', + properties: { + food_hour: { type: 'string' }, + happiness_hour: { type: 'string' }, + water_hour: { type: 'string' }, + energy_capacity: { type: 'string' }, + food_capacity: { type: 'integer' }, + water_capacity: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + waste_hour: { type: 'string' }, + waste_capacity: { type: 'integer' }, + ore_hour: { type: 'string' }, + energy_hour: { type: 'string' }, + }, + required: [ + 'food_hour', + 'happiness_hour', + 'water_hour', + 'energy_capacity', + 'food_capacity', + 'water_capacity', + 'ore_capacity', + 'waste_hour', + 'waste_capacity', + 'ore_hour', + 'energy_hour', + ], + }, + }, + required: ['cost', 'can', 'reason', 'image', 'production'], + }, + energy_hour: { type: 'integer' }, + url: { type: 'string' }, + ore_hour: { type: 'integer' }, + waste_hour: { type: 'integer' }, + downgrade: { + type: 'object', + properties: { + can: { type: 'integer' }, + image: { type: 'string' }, + reason: { type: 'string' }, + }, + required: ['can', 'image', 'reason'], + }, + id: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + image: { type: 'string' }, + pending_build: { type: 'null' }, + waste_capacity: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + energy: { type: 'string' }, + ore: { type: 'string' }, + water: { type: 'string' }, + food: { type: 'string' }, + }, + required: ['energy', 'ore', 'water', 'food'], + }, + y: { type: 'integer' }, + }, + required: [ + 'name', + 'water_capacity', + 'level', + 'x', + 'water_hour', + 'happiness_hour', + 'efficiency', + 'upgrade', + 'energy_hour', + 'url', + 'ore_hour', + 'waste_hour', + 'downgrade', + 'id', + 'energy_capacity', + 'food_capacity', + 'food_hour', + 'image', + 'pending_build', + 'waste_capacity', + 'ore_capacity', + 'repair_costs', + 'y', + ], + }, + status: { + type: 'object', + properties: { + empire: { + type: 'object', + properties: { + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + self_destruct_date: { type: 'string' }, + stations: { type: 'object' }, + next_station_cost: { type: 'integer' }, + tech_level: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + empire_id: { type: 'integer' }, + name: { type: 'string' }, + star_id: { type: 'integer' }, + x: { type: 'integer' }, + empire_name: { type: 'string' }, + zone: { type: 'string' }, + orbit: { type: 'integer' }, + id: { type: 'integer' }, + y: { type: 'integer' }, + star_name: { type: 'string' }, + }, + required: [ + 'empire_id', + 'name', + 'star_id', + 'x', + 'empire_name', + 'zone', + 'orbit', + 'id', + 'y', + 'star_name', + ], + }, + }, + }, + required: ['colonies'], + }, + id: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + essentia: { type: 'integer' }, + rpc_count: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + status_message: { type: 'string' }, + self_destruct_active: { type: 'integer' }, + next_colony_srcs: { type: 'integer' }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + }, + required: [ + 'next_colony_cost', + 'latest_message_id', + 'self_destruct_date', + 'stations', + 'next_station_cost', + 'tech_level', + 'bodies', + 'id', + 'planets', + 'colonies', + 'essentia', + 'rpc_count', + 'is_isolationist', + 'status_message', + 'self_destruct_active', + 'next_colony_srcs', + 'name', + 'has_new_messages', + 'home_planet_id', + 'insurrect_value', + ], + }, + body: { + type: 'object', + properties: { + num_incoming_ally: { type: 'integer' }, + zone: { type: 'string' }, + food_hour: { type: 'integer' }, + food_capacity: { type: 'integer' }, + ore_stored: { type: 'integer' }, + star_name: { type: 'string' }, + ore_hour: { type: 'integer' }, + ore: { + type: 'object', + properties: { + beryl: { type: 'integer' }, + methane: { type: 'integer' }, + fluorite: { type: 'integer' }, + bauxite: { type: 'integer' }, + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + anthracite: { type: 'integer' }, + uraninite: { type: 'integer' }, + zircon: { type: 'integer' }, + kerogen: { type: 'integer' }, + chromite: { type: 'integer' }, + galena: { type: 'integer' }, + halite: { type: 'integer' }, + monazite: { type: 'integer' }, + trona: { type: 'integer' }, + gypsum: { type: 'integer' }, + sulfur: { type: 'integer' }, + rutile: { type: 'integer' }, + magnetite: { type: 'integer' }, + }, + required: [ + 'beryl', + 'methane', + 'fluorite', + 'bauxite', + 'goethite', + 'gold', + 'chalcopyrite', + 'anthracite', + 'uraninite', + 'zircon', + 'kerogen', + 'chromite', + 'galena', + 'halite', + 'monazite', + 'trona', + 'gypsum', + 'sulfur', + 'rutile', + 'magnetite', + ], + }, + energy_stored: { type: 'integer' }, + plots_available: { type: 'integer' }, + energy_hour: { type: 'integer' }, + size: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + water_hour: { type: 'integer' }, + x: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + y: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + empire: { + type: 'object', + properties: { + name: { type: 'string' }, + is_isolationist: { type: 'integer' }, + alignment: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['name', 'is_isolationist', 'alignment', 'id'], + }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + orbit: { type: 'integer' }, + notes: { type: 'string' }, + water: { type: 'integer' }, + water_stored: { type: 'integer' }, + propaganda_boost: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + image: { type: 'string' }, + happiness: { type: 'integer' }, + waste_stored: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + id: { type: 'integer' }, + food_stored: { type: 'integer' }, + waste_hour: { type: 'integer' }, + type: { type: 'string' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + num_incoming_own: { type: 'integer' }, + neutral_entry: { type: 'string' }, + name: { type: 'string' }, + water_capacity: { type: 'integer' }, + star_id: { type: 'integer' }, + needs_surface_refresh: { type: 'integer' }, + }, + required: [ + 'num_incoming_ally', + 'zone', + 'food_hour', + 'food_capacity', + 'ore_stored', + 'star_name', + 'ore_hour', + 'ore', + 'energy_stored', + 'plots_available', + 'energy_hour', + 'size', + 'build_queue_size', + 'water_hour', + 'x', + 'num_incoming_enemy', + 'y', + 'ore_capacity', + 'empire', + 'waste_capacity', + 'building_count', + 'orbit', + 'notes', + 'water', + 'water_stored', + 'propaganda_boost', + 'build_queue_len', + 'image', + 'happiness', + 'waste_stored', + 'energy_capacity', + 'id', + 'food_stored', + 'waste_hour', + 'type', + 'surface_version', + 'population', + 'happiness_hour', + 'num_incoming_own', + 'neutral_entry', + 'name', + 'water_capacity', + 'star_id', + 'needs_surface_refresh', + ], + }, + server: { + type: 'object', + properties: { + time: { type: 'string' }, + version: { type: 'number' }, + rpc_limit: { type: 'integer' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + }, + required: ['time', 'version', 'rpc_limit', 'star_map_size'], + }, + }, + required: ['empire', 'body', 'server'], + }, + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521681': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521685': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521686': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521687': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'y', 'x', 'efficiency'], + }, + '521688': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521689': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521690': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521693': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521696': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521697': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521698': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521699': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521700': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'y', 'x', 'efficiency'], + }, + '521701': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521702': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521703': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521704': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521705': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521706': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521707': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521708': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521711': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521712': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521713': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521714': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521715': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521716': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521717': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'name', 'url'], + }, + '521718': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521938': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521939': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521940': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'level', 'name', 'url'], + }, + '521941': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521942': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521943': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521944': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521945': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521946': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521947': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521948': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521949': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'level', 'url', 'name'], + }, + '521950': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + pending_build: { + type: 'object', + properties: { + start: { type: 'string' }, + end: { type: 'string' }, + seconds_remaining: { type: 'integer' }, + }, + required: ['start', 'end', 'seconds_remaining'], + }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + }, + required: [ + 'level', + 'name', + 'efficiency', + 'x', + 'pending_build', + 'url', + 'image', + 'y', + ], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + }, + required: ['building', 'status', 'buildings'], + }, + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['result', 'jsonrpc', 'id'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: 'string' } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/foodreserve': { + post: { + summary: '/foodreserve', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + result: { + type: 'object', + properties: { + status: { + type: 'object', + properties: { + empire: { + type: 'object', + properties: { + is_isolationist: { type: 'integer' }, + rpc_count: { type: 'integer' }, + essentia: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + id: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + has_new_messages: { type: 'integer' }, + name: { type: 'string' }, + next_colony_srcs: { type: 'integer' }, + self_destruct_active: { type: 'integer' }, + status_message: { type: 'string' }, + stations: { type: 'object' }, + self_destruct_date: { type: 'string' }, + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + zone: { type: 'string' }, + orbit: { type: 'integer' }, + star_name: { type: 'string' }, + y: { type: 'integer' }, + id: { type: 'integer' }, + x: { type: 'integer' }, + empire_name: { type: 'string' }, + empire_id: { type: 'integer' }, + name: { type: 'string' }, + star_id: { type: 'integer' }, + }, + required: [ + 'zone', + 'orbit', + 'star_name', + 'y', + 'id', + 'x', + 'empire_name', + 'empire_id', + 'name', + 'star_id', + ], + }, + }, + }, + required: ['colonies'], + }, + tech_level: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + }, + required: [ + 'is_isolationist', + 'rpc_count', + 'essentia', + 'colonies', + 'planets', + 'id', + 'insurrect_value', + 'home_planet_id', + 'has_new_messages', + 'name', + 'next_colony_srcs', + 'self_destruct_active', + 'status_message', + 'stations', + 'self_destruct_date', + 'next_colony_cost', + 'latest_message_id', + 'bodies', + 'tech_level', + 'next_station_cost', + ], + }, + body: { + type: 'object', + properties: { + energy_capacity: { type: 'integer' }, + waste_stored: { type: 'integer' }, + happiness: { type: 'integer' }, + water_stored: { type: 'integer' }, + water: { type: 'integer' }, + notes: { type: 'string' }, + image: { type: 'string' }, + propaganda_boost: { type: 'integer' }, + build_queue_len: { type: 'integer' }, + ore_capacity: { type: 'integer' }, + num_incoming_enemy: { type: 'integer' }, + y: { type: 'integer' }, + waste_capacity: { type: 'integer' }, + building_count: { type: 'integer' }, + orbit: { type: 'integer' }, + empire: { + type: 'object', + properties: { + alignment: { type: 'string' }, + id: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['alignment', 'id', 'is_isolationist', 'name'], + }, + neutral_entry: { type: 'string' }, + needs_surface_refresh: { type: 'integer' }, + water_capacity: { type: 'integer' }, + star_id: { type: 'integer' }, + name: { type: 'string' }, + num_incoming_own: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + surface_version: { type: 'integer' }, + population: { type: 'integer' }, + id: { type: 'integer' }, + waste_hour: { type: 'integer' }, + type: { type: 'string' }, + food_stored: { type: 'integer' }, + food_capacity: { type: 'integer' }, + food_hour: { type: 'integer' }, + num_incoming_ally: { type: 'integer' }, + zone: { type: 'string' }, + size: { type: 'integer' }, + x: { type: 'integer' }, + water_hour: { type: 'integer' }, + build_queue_size: { type: 'integer' }, + energy_stored: { type: 'integer' }, + ore: { + type: 'object', + properties: { + bauxite: { type: 'integer' }, + goethite: { type: 'integer' }, + gold: { type: 'integer' }, + chalcopyrite: { type: 'integer' }, + anthracite: { type: 'integer' }, + beryl: { type: 'integer' }, + fluorite: { type: 'integer' }, + methane: { type: 'integer' }, + sulfur: { type: 'integer' }, + gypsum: { type: 'integer' }, + rutile: { type: 'integer' }, + magnetite: { type: 'integer' }, + uraninite: { type: 'integer' }, + zircon: { type: 'integer' }, + chromite: { type: 'integer' }, + kerogen: { type: 'integer' }, + galena: { type: 'integer' }, + monazite: { type: 'integer' }, + trona: { type: 'integer' }, + halite: { type: 'integer' }, + }, + required: [ + 'bauxite', + 'goethite', + 'gold', + 'chalcopyrite', + 'anthracite', + 'beryl', + 'fluorite', + 'methane', + 'sulfur', + 'gypsum', + 'rutile', + 'magnetite', + 'uraninite', + 'zircon', + 'chromite', + 'kerogen', + 'galena', + 'monazite', + 'trona', + 'halite', + ], + }, + energy_hour: { type: 'integer' }, + plots_available: { type: 'integer' }, + star_name: { type: 'string' }, + ore_stored: { type: 'integer' }, + ore_hour: { type: 'integer' }, + }, + required: [ + 'energy_capacity', + 'waste_stored', + 'happiness', + 'water_stored', + 'water', + 'notes', + 'image', + 'propaganda_boost', + 'build_queue_len', + 'ore_capacity', + 'num_incoming_enemy', + 'y', + 'waste_capacity', + 'building_count', + 'orbit', + 'empire', + 'neutral_entry', + 'needs_surface_refresh', + 'water_capacity', + 'star_id', + 'name', + 'num_incoming_own', + 'happiness_hour', + 'surface_version', + 'population', + 'id', + 'waste_hour', + 'type', + 'food_stored', + 'food_capacity', + 'food_hour', + 'num_incoming_ally', + 'zone', + 'size', + 'x', + 'water_hour', + 'build_queue_size', + 'energy_stored', + 'ore', + 'energy_hour', + 'plots_available', + 'star_name', + 'ore_stored', + 'ore_hour', + ], + }, + server: { + type: 'object', + properties: { + rpc_limit: { type: 'integer' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + time: { type: 'string' }, + version: { type: 'number' }, + }, + required: ['rpc_limit', 'star_map_size', 'time', 'version'], + }, + }, + required: ['empire', 'body', 'server'], + }, + buildings: { + type: 'object', + properties: { + '521680': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521681': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521685': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521686': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'name', 'url', 'x', 'efficiency', 'y'], + }, + '521687': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521688': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'url', 'level', 'name'], + }, + '521689': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521690': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'name', 'level', 'url', 'image'], + }, + '521693': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521696': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521697': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521698': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521699': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'x', 'efficiency', 'y'], + }, + '521700': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521701': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521702': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521703': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'name', 'url', 'image'], + }, + '521704': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'url', 'level', 'name'], + }, + '521705': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'y', 'x', 'efficiency'], + }, + '521706': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521707': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521708': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521711': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'efficiency', 'x', 'y'], + }, + '521712': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521713': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521714': { + type: 'object', + properties: { + image: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + }, + required: ['image', 'level', 'url', 'name', 'y', 'x', 'efficiency'], + }, + '521715': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521716': { + type: 'object', + properties: { + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'url', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521717': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'level', 'url', 'name', 'image'], + }, + '521718': { + type: 'object', + properties: { + level: { type: 'integer' }, + name: { type: 'string' }, + url: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['level', 'name', 'url', 'image', 'y', 'efficiency', 'x'], + }, + '521938': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521939': { + type: 'object', + properties: { + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + }, + required: ['url', 'level', 'name', 'image', 'y', 'efficiency', 'x'], + }, + '521940': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521941': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'url', 'level', 'name', 'image'], + }, + '521942': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521943': { + type: 'object', + properties: { + y: { type: 'integer' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['y', 'efficiency', 'x', 'url', 'level', 'name', 'image'], + }, + '521944': { + type: 'object', + properties: { + y: { type: 'integer' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['y', 'x', 'efficiency', 'image', 'name', 'level', 'url'], + }, + '521945': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + level: { type: 'integer' }, + url: { type: 'string' }, + name: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['efficiency', 'x', 'y', 'level', 'url', 'name', 'image'], + }, + '521946': { + type: 'object', + properties: { + image: { type: 'string' }, + url: { type: 'string' }, + level: { type: 'integer' }, + name: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'url', 'level', 'name', 'x', 'efficiency', 'y'], + }, + '521947': { + type: 'object', + properties: { + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['image', 'name', 'level', 'url', 'x', 'efficiency', 'y'], + }, + '521948': { + type: 'object', + properties: { + x: { type: 'integer' }, + efficiency: { type: 'integer' }, + y: { type: 'integer' }, + image: { type: 'string' }, + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + }, + required: ['x', 'efficiency', 'y', 'image', 'name', 'level', 'url'], + }, + '521949': { + type: 'object', + properties: { + name: { type: 'string' }, + level: { type: 'integer' }, + url: { type: 'string' }, + image: { type: 'string' }, + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + y: { type: 'integer' }, + }, + required: ['name', 'level', 'url', 'image', 'efficiency', 'x', 'y'], + }, + '521950': { + type: 'object', + properties: { + efficiency: { type: 'integer' }, + x: { type: 'integer' }, + name: { type: 'string' }, + level: { type: 'integer' }, + y: { type: 'integer' }, + pending_build: { + type: 'object', + properties: { + start: { type: 'string' }, + end: { type: 'string' }, + seconds_remaining: { type: 'integer' }, + }, + required: ['start', 'end', 'seconds_remaining'], + }, + url: { type: 'string' }, + image: { type: 'string' }, + }, + required: [ + 'efficiency', + 'x', + 'name', + 'level', + 'y', + 'pending_build', + 'url', + 'image', + ], + }, + }, + required: [ + '521680', + '521681', + '521685', + '521686', + '521687', + '521688', + '521689', + '521690', + '521693', + '521696', + '521697', + '521698', + '521699', + '521700', + '521701', + '521702', + '521703', + '521704', + '521705', + '521706', + '521707', + '521708', + '521711', + '521712', + '521713', + '521714', + '521715', + '521716', + '521717', + '521718', + '521938', + '521939', + '521940', + '521941', + '521942', + '521943', + '521944', + '521945', + '521946', + '521947', + '521948', + '521949', + '521950', + ], + }, + building: { + type: 'object', + properties: { + waste_capacity: { type: 'integer' }, + y: { type: 'integer' }, + repair_costs: { + type: 'object', + properties: { + water: { type: 'string' }, + ore: { type: 'string' }, + food: { type: 'string' }, + energy: { type: 'string' }, + }, + required: ['water', 'ore', 'food', 'energy'], + }, + ore_capacity: { type: 'integer' }, + image: { type: 'string' }, + pending_build: { type: 'null' }, + food_hour: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'integer' }, + ore_hour: { type: 'integer' }, + waste_hour: { type: 'integer' }, + id: { type: 'integer' }, + downgrade: { + type: 'object', + properties: { + can: { type: 'integer' }, + reason: { type: 'string' }, + image: { type: 'string' }, + }, + required: ['can', 'reason', 'image'], + }, + url: { type: 'string' }, + energy_hour: { type: 'integer' }, + efficiency: { type: 'integer' }, + happiness_hour: { type: 'integer' }, + water_hour: { type: 'integer' }, + x: { type: 'integer' }, + upgrade: { + type: 'object', + properties: { + image: { type: 'string' }, + reason: { type: 'array', items: { type: ['integer', 'string'] } }, + production: { + type: 'object', + properties: { + happiness_hour: { type: 'string' }, + water_hour: { type: 'string' }, + food_hour: { type: 'string' }, + water_capacity: { type: 'integer' }, + energy_capacity: { type: 'integer' }, + food_capacity: { type: 'string' }, + waste_hour: { type: 'string' }, + waste_capacity: { type: 'integer' }, + ore_hour: { type: 'string' }, + ore_capacity: { type: 'integer' }, + energy_hour: { type: 'string' }, + }, + required: [ + 'happiness_hour', + 'water_hour', + 'food_hour', + 'water_capacity', + 'energy_capacity', + 'food_capacity', + 'waste_hour', + 'waste_capacity', + 'ore_hour', + 'ore_capacity', + 'energy_hour', + ], + }, + can: { type: 'integer' }, + cost: { + type: 'object', + properties: { + energy: { type: 'integer' }, + time: { type: 'integer' }, + food: { type: 'integer' }, + ore: { type: 'integer' }, + waste: { type: 'integer' }, + water: { type: 'integer' }, + }, + required: ['energy', 'time', 'food', 'ore', 'waste', 'water'], + }, + }, + required: ['image', 'reason', 'production', 'can', 'cost'], + }, + water_capacity: { type: 'integer' }, + level: { type: 'integer' }, + name: { type: 'string' }, + }, + required: [ + 'waste_capacity', + 'y', + 'repair_costs', + 'ore_capacity', + 'image', + 'pending_build', + 'food_hour', + 'energy_capacity', + 'food_capacity', + 'ore_hour', + 'waste_hour', + 'id', + 'downgrade', + 'url', + 'energy_hour', + 'efficiency', + 'happiness_hour', + 'water_hour', + 'x', + 'upgrade', + 'water_capacity', + 'level', + 'name', + ], + }, + food_stored: { + type: 'object', + properties: { + pie: { type: 'integer' }, + cheese: { type: 'integer' }, + bean: { type: 'integer' }, + potato: { type: 'integer' }, + chip: { type: 'integer' }, + apple: { type: 'integer' }, + soup: { type: 'integer' }, + meal: { type: 'integer' }, + shake: { type: 'integer' }, + cider: { type: 'integer' }, + lapis: { type: 'integer' }, + beetle: { type: 'integer' }, + algae: { type: 'integer' }, + bread: { type: 'integer' }, + root: { type: 'integer' }, + wheat: { type: 'integer' }, + syrup: { type: 'integer' }, + pancake: { type: 'integer' }, + milk: { type: 'integer' }, + fungus: { type: 'integer' }, + corn: { type: 'integer' }, + burger: { type: 'integer' }, + }, + required: [ + 'pie', + 'cheese', + 'bean', + 'potato', + 'chip', + 'apple', + 'soup', + 'meal', + 'shake', + 'cider', + 'lapis', + 'beetle', + 'algae', + 'bread', + 'root', + 'wheat', + 'syrup', + 'pancake', + 'milk', + 'fungus', + 'corn', + 'burger', + ], + }, + }, + required: ['status', 'buildings', 'building', 'food_stored'], + }, + }, + required: ['jsonrpc', 'id', 'result'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: 'string' } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/inbox': { + post: { + summary: '/inbox', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + messages: { + type: 'array', + items: { + type: 'object', + properties: { + subject: { type: 'string' }, + has_replied: { type: 'integer' }, + body_preview: { type: 'string' }, + id: { type: 'string' }, + from: { type: 'string' }, + from_id: { type: 'integer' }, + tags: { type: 'array', items: { type: 'string' } }, + to: { type: 'string' }, + to_id: { type: 'integer' }, + date: { type: 'string' }, + has_read: { type: 'integer' }, + }, + required: [ + 'subject', + 'has_replied', + 'body_preview', + 'id', + 'from', + 'from_id', + 'tags', + 'to', + 'to_id', + 'date', + 'has_read', + ], + }, + }, + message_count: { type: 'integer' }, + status: { + type: 'object', + properties: { + server: { + type: 'object', + properties: { + time: { type: 'string' }, + version: { type: 'number' }, + rpc_limit: { type: 'integer' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + }, + required: ['time', 'version', 'rpc_limit', 'star_map_size'], + }, + empire: { + type: 'object', + properties: { + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + essentia: { type: 'integer' }, + rpc_count: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + id: { type: 'integer' }, + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + name: { type: 'string' }, + has_new_messages: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + insurrect_value: { type: 'integer' }, + status_message: { type: 'string' }, + self_destruct_active: { type: 'integer' }, + next_colony_srcs: { type: 'integer' }, + self_destruct_date: { type: 'string' }, + stations: { type: 'object' }, + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + star_name: { type: 'string' }, + y: { type: 'integer' }, + id: { type: 'integer' }, + orbit: { type: 'integer' }, + zone: { type: 'string' }, + name: { type: 'string' }, + empire_id: { type: 'integer' }, + star_id: { type: 'integer' }, + empire_name: { type: 'string' }, + x: { type: 'integer' }, + }, + required: [ + 'star_name', + 'y', + 'id', + 'orbit', + 'zone', + 'name', + 'empire_id', + 'star_id', + 'empire_name', + 'x', + ], + }, + }, + }, + required: ['colonies'], + }, + next_station_cost: { type: 'integer' }, + tech_level: { type: 'integer' }, + }, + required: [ + 'colonies', + 'essentia', + 'rpc_count', + 'is_isolationist', + 'id', + 'planets', + 'name', + 'has_new_messages', + 'home_planet_id', + 'insurrect_value', + 'status_message', + 'self_destruct_active', + 'next_colony_srcs', + 'self_destruct_date', + 'stations', + 'next_colony_cost', + 'latest_message_id', + 'bodies', + 'next_station_cost', + 'tech_level', + ], + }, + }, + required: ['server', 'empire'], + }, + }, + required: ['messages', 'message_count', 'status'], + }, + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['result', 'jsonrpc', 'id'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { + type: 'array', + items: { + anyOf: [ + { type: 'string' }, + { + type: 'object', + properties: { page_number: { type: 'integer' } }, + required: ['page_number'], + }, + ], + }, + }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, + '/stats': { + post: { + summary: '/stats', + description: '**Host**: http://lacuna.ocean74.net', + responses: { + '200': { + content: { + 'application/json-rpc': { + schema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + page_number: { type: 'integer' }, + status: { + type: 'object', + properties: { + empire: { + type: 'object', + properties: { + planets: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + id: { type: 'integer' }, + rpc_count: { type: 'integer' }, + colonies: { + type: 'object', + properties: { '467647': { type: 'string' } }, + required: ['467647'], + }, + essentia: { type: 'integer' }, + is_isolationist: { type: 'integer' }, + status_message: { type: 'string' }, + next_colony_srcs: { type: 'integer' }, + self_destruct_active: { type: 'integer' }, + has_new_messages: { type: 'integer' }, + name: { type: 'string' }, + insurrect_value: { type: 'integer' }, + home_planet_id: { type: 'integer' }, + next_colony_cost: { type: 'integer' }, + latest_message_id: { type: 'integer' }, + stations: { type: 'object' }, + self_destruct_date: { type: 'string' }, + tech_level: { type: 'integer' }, + next_station_cost: { type: 'integer' }, + bodies: { + type: 'object', + properties: { + colonies: { + type: 'array', + items: { + type: 'object', + properties: { + y: { type: 'integer' }, + id: { type: 'integer' }, + star_name: { type: 'string' }, + zone: { type: 'string' }, + orbit: { type: 'integer' }, + empire_name: { type: 'string' }, + x: { type: 'integer' }, + name: { type: 'string' }, + empire_id: { type: 'integer' }, + star_id: { type: 'integer' }, + }, + required: [ + 'y', + 'id', + 'star_name', + 'zone', + 'orbit', + 'empire_name', + 'x', + 'name', + 'empire_id', + 'star_id', + ], + }, + }, + }, + required: ['colonies'], + }, + }, + required: [ + 'planets', + 'id', + 'rpc_count', + 'colonies', + 'essentia', + 'is_isolationist', + 'status_message', + 'next_colony_srcs', + 'self_destruct_active', + 'has_new_messages', + 'name', + 'insurrect_value', + 'home_planet_id', + 'next_colony_cost', + 'latest_message_id', + 'stations', + 'self_destruct_date', + 'tech_level', + 'next_station_cost', + 'bodies', + ], + }, + server: { + type: 'object', + properties: { + rpc_limit: { type: 'integer' }, + star_map_size: { + type: 'object', + properties: { + y: { type: 'array', items: { type: 'integer' } }, + x: { type: 'array', items: { type: 'integer' } }, + }, + required: ['y', 'x'], + }, + time: { type: 'string' }, + version: { type: 'number' }, + }, + required: ['rpc_limit', 'star_map_size', 'time', 'version'], + }, + }, + required: ['empire', 'server'], + }, + empires: { + type: 'array', + items: { + type: 'object', + properties: { + dirtiest: { type: 'integer' }, + offense_success_rate: { type: 'integer' }, + empire_name: { type: 'string' }, + empire_size: { type: 'integer' }, + colony_count: { type: 'integer' }, + defense_success_rate: { type: 'integer' }, + empire_id: { type: 'integer' }, + building_count: { type: 'integer' }, + average_building_level: { type: 'number' }, + population: { type: 'integer' }, + alliance_name: { type: 'null' }, + alliance_id: { type: 'null' }, + }, + required: [ + 'dirtiest', + 'offense_success_rate', + 'empire_name', + 'empire_size', + 'colony_count', + 'defense_success_rate', + 'empire_id', + 'building_count', + 'average_building_level', + 'population', + 'alliance_name', + 'alliance_id', + ], + }, + }, + total_empires: { type: 'integer' }, + }, + required: ['page_number', 'status', 'empires', 'total_empires'], + }, + jsonrpc: { type: 'string' }, + id: { type: 'integer' }, + }, + required: ['result', 'jsonrpc', 'id'], + }, + }, + }, + description: '', + headers: { 'X-Served-By': { required: false, schema: { type: 'string' } } }, + }, + }, + security: [], + requestBody: { + content: { + 'application/json': { + schema: { + type: 'object', + properties: { + id: { type: 'integer' }, + method: { type: 'string' }, + jsonrpc: { type: 'string' }, + params: { type: 'array', items: { type: 'string' } }, + }, + required: ['id', 'method', 'jsonrpc', 'params'], + }, + }, + }, + }, + }, + }, +};