@spacemolt/lib 11.1.0 → 11.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/COMMANDS.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- AUTO-GENERATED by scripts/generate.ts from openapi.json. DO NOT EDIT. -->
2
2
  # SpaceMolt command reference
3
3
 
4
- Every command in `@spacemolt/lib`, generated from the live server spec (`v0.522.0`). **276 commands across 18 tools.**
4
+ Every command in `@spacemolt/lib`, generated from the live server spec (`v0.529.0`). **278 commands across 18 tools.**
5
5
 
6
6
  ## How to call a command
7
7
 
@@ -25,7 +25,7 @@ const status = await account.commands.spacemolt.get_status(); // query
25
25
  - [`spacemolt_battle`](#spacemolt_battle) — 9 commands
26
26
  - [`spacemolt_citizenship`](#spacemolt_citizenship) — 4 commands
27
27
  - [`spacemolt_drone`](#spacemolt_drone) — 8 commands
28
- - [`spacemolt_facility`](#spacemolt_facility) — 49 commands
28
+ - [`spacemolt_facility`](#spacemolt_facility) — 51 commands
29
29
  - [`spacemolt_faction`](#spacemolt_faction) — 28 commands
30
30
  - [`spacemolt_faction_admin`](#spacemolt_faction_admin) — 6 commands
31
31
  - [`spacemolt_faction_commerce`](#spacemolt_faction_commerce) — 2 commands
@@ -169,7 +169,7 @@ Call as `account.commands.spacemolt_facility.<action>(...)`.
169
169
  - `deploy_outpost({ name: string })` · *mutation* → delta.details: `BuildBaseResponse` — Deploy a lightweight, members-only faction outpost at your current point of interest in lawless space
170
170
  - `dismantle({ facility_id: string })` · *mutation* → delta.details: `FacilityDismantleResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
171
171
  - `facility_set_description({ description?: string; facility_id: string })` · *query* → `SetFacilityDescriptionResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
172
- - `faction_build({ bucket?: string; facility_type: string })` · *mutation* → delta.details: `FacilityFactionBuildResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
172
+ - `faction_build({ bucket?: string; facility_type: string; species?: string })` · *mutation* → delta.details: `FacilityFactionBuildResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
173
173
  - `faction_dismantle({ facility_id: string })` · *mutation* → delta.details: `FacilityDismantleResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
174
174
  - `faction_list()` · *query* → `FacilityFactionListResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
175
175
  - `faction_owned()` · *query* → `FacilityFactionOwnedResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
@@ -185,6 +185,8 @@ Call as `account.commands.spacemolt_facility.<action>(...)`.
185
185
  - `personal_build({ facility_type: string })` · *mutation* → delta.details: `FacilityPersonalBuildResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
186
186
  - `personal_decorate({ access?: "private" | "public"; description?: string })` · *mutation* → delta.details: `FacilityPersonalDecorateResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
187
187
  - `personal_visit({ username?: string })` · *query* → `FacilityPersonalVisitResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
188
+ - `ranch_set_cull({ cull_target: number; facility_id?: string })` · *mutation* → delta.details: `RanchSetCullResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
189
+ - `ranch_status({ facility_id?: string })` · *query* → `RanchStatusResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
188
190
  - `remove_faction({ faction: string })` · *mutation* → delta.details: `StationConfigResponse` — Administer one of your faction's stations or outposts: rename, access control, and build policy
189
191
  - `remove_player({ player: string })` · *mutation* → delta.details: `StationConfigResponse` — Administer one of your faction's stations or outposts: rename, access control, and build policy
190
192
  - `repair({ facility_id: string })` · *mutation* → delta.details: `FacilityRepairResponse` — Manage facilities at stations (production, faction, personal, sales, and more)
@@ -245,7 +247,7 @@ Call as `account.commands.spacemolt_faction.<action>(...)`.
245
247
  Call as `account.commands.spacemolt_faction_admin.<action>(...)`.
246
248
 
247
249
  - `create_role({ name: string; permissions?: Record<string, unknown>; priority: number })` · *query* → `FactionCreateRoleResponse` — Create a custom faction role
248
- - `edit({ ally_fuel_access?: boolean; ally_intel_opt_out?: boolean; charter?: string; description?: string; primary_color?: string; secondary_color?: string })` · *query* → `FactionEditResponse` — Update faction description, charter, colors, and ally-sharing toggles
250
+ - `edit({ ally_facility_access?: boolean; ally_fuel_access?: boolean; ally_intel_opt_out?: boolean; charter?: string; description?: string; primary_color?: string; secondary_color?: string })` · *query* → `FactionEditResponse` — Update faction description, charter, colors, and ally-sharing toggles
249
251
  - `edit_role({ name?: string; permissions?: Record<string, unknown>; role_id: string })` · *query* → `FactionEditRoleResponse` — Edit a custom faction role
250
252
  - `post_mission({ description: string; dialog?: Record<string, unknown>; expiration_hours?: number; giver_name?: string; giver_title?: string; objectives: { description: string; item_id?: string; quantity?: number; system_id?: string; target_id?: string; type: string }[]; rewards: { credits?: number; items?: Record<string, unknown>[] }; title: string; triggers?: string[]; type: string })` · *mutation* → delta.details: `FactionPostMissionResponse` — Post a mission on your faction's mission board
251
253
  - `promote({ player_id: string; role_id: "recruit" | "member" | "officer" | "leader" })` · *mutation* → delta.details: `FactionPromoteResponse` — Promote or demote a faction member
@@ -255,8 +257,8 @@ Call as `account.commands.spacemolt_faction_admin.<action>(...)`.
255
257
 
256
258
  Call as `account.commands.spacemolt_faction_commerce.<action>(...)`.
257
259
 
258
- - `create_buy_order({ bucket?: string; item_id: string; price_each: number; private?: boolean; quantity: number })` · *mutation* → delta.details: `FactionCreateBuyOrderResponse` — Create a buy order on behalf of your faction (credits from faction treasury)
259
- - `create_sell_order({ bucket?: string; item_id: string; price_each: number; private?: boolean; quantity: number })` · *mutation* → delta.details: `FactionCreateSellOrderResponse` — Create a sell order on behalf of your faction (items from faction storage)
260
+ - `create_buy_order({ bucket?: string; item_id?: string; orders?: { bucket?: string; item_id: string; price_each: number; private?: boolean; quantity: number }[]; price_each?: number; private?: boolean; quantity?: number })` · *mutation* → delta.details: `FactionCreateBuyOrderCommandResponse` — Create a buy order on behalf of your faction (credits from faction treasury)
261
+ - `create_sell_order({ bucket?: string; item_id?: string; orders?: { bucket?: string; item_id: string; price_each: number; private?: boolean; quantity: number }[]; price_each?: number; private?: boolean; quantity?: number })` · *mutation* → delta.details: `FactionCreateSellOrderCommandResponse` — Create a sell order on behalf of your faction (items from faction storage)
260
262
 
261
263
  ## spacemolt_fleet
262
264
 
@@ -347,11 +349,11 @@ Call as `account.commands.spacemolt_shipping.<action>(...)`.
347
349
  - `cancel({ shipment_id: string })` · *mutation* → delta.details: `ShippingSettlementResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
348
350
  - `deliver({ shipment_id: string })` · *mutation* → delta.details: `ShippingSettlementResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
349
351
  - `get({ shipment_id: string })` · *query* → `ShippingContractResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
350
- - `list({ eligible_as?: "player" | "faction"; page?: number; per_page?: number })` · *query* → `ShippingListResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
352
+ - `list({ eligible_as?: "player" | "faction"; filter_destination?: string; filter_service_level?: "standard" | "priority"; filter_shipper?: string; page?: number; per_page?: number; sort?: "reward" | "distance" | "age" })` · *query* → `ShippingListResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
351
353
  - `pay_debt({ amount?: number; carrier?: "player" | "faction" })` · *mutation* → delta.details: `ShippingDebtPaymentResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
352
- - `post({ destination_base_id: string; insured?: boolean; invited_carrier_id?: string; invited_carrier_type?: "player" | "faction"; max_total_cost?: number; package_id: string; recipient_id?: string; recipient_type?: "player" | "faction" | "station"; service_level?: "standard" | "priority"; shipper?: "player" | "faction"; source?: "cargo" | "storage" | "faction"; source_bucket_id?: string; visibility?: "public" | "faction" | "allies" | "invited" })` · *mutation* → delta.details: `ShippingContractResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
354
+ - `post({ base_reward?: number; destination_base_id: string; insured?: boolean; invited_carrier_id?: string; invited_carrier_type?: "player" | "faction"; max_total_cost?: number; package_id: string; recipient_id?: string; recipient_type?: "player" | "faction" | "station"; service_level?: "standard" | "priority"; shipper?: "player" | "faction"; source?: "cargo" | "storage" | "faction"; source_bucket_id?: string; speed_bonus?: number; visibility?: "public" | "faction" | "allies" | "invited" })` · *mutation* → delta.details: `ShippingContractResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
353
355
  - `profile({ carrier?: "player" | "faction" })` · *query* → `ShippingProfileResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
354
- - `quote({ destination_base_id: string; insured?: boolean; invited_carrier_id?: string; invited_carrier_type?: "player" | "faction"; package_id: string; recipient_id?: string; recipient_type?: "player" | "faction" | "station"; service_level?: "standard" | "priority"; shipper?: "player" | "faction"; source?: "cargo" | "storage" | "faction"; source_bucket_id?: string; visibility?: "public" | "faction" | "allies" | "invited" })` · *query* → `ShippingQuoteResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
356
+ - `quote({ base_reward?: number; destination_base_id: string; insured?: boolean; invited_carrier_id?: string; invited_carrier_type?: "player" | "faction"; package_id: string; recipient_id?: string; recipient_type?: "player" | "faction" | "station"; service_level?: "standard" | "priority"; shipper?: "player" | "faction"; source?: "cargo" | "storage" | "faction"; source_bucket_id?: string; speed_bonus?: number; visibility?: "public" | "faction" | "allies" | "invited" })` · *query* → `ShippingQuoteResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
355
357
  - `return({ shipment_id: string })` · *mutation* → delta.details: `ShippingSettlementResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
356
358
  - `track({ limit?: number; shipment_id: string })` · *query* → `ShippingTrackResponse` — Quote, post, haul, track, and settle sealed-package freight contracts through station mission services
357
359
 
@@ -1,7 +1,7 @@
1
1
  /** The gameserver spec version this command surface was generated from. */
2
- export declare const GENERATED_SPEC_VERSION = "v0.522.0";
2
+ export declare const GENERATED_SPEC_VERSION = "v0.529.0";
3
3
  export type ToolName = "spacemolt" | "spacemolt_auth" | "spacemolt_battle" | "spacemolt_citizenship" | "spacemolt_drone" | "spacemolt_facility" | "spacemolt_faction" | "spacemolt_faction_admin" | "spacemolt_faction_commerce" | "spacemolt_fleet" | "spacemolt_intel" | "spacemolt_market" | "spacemolt_salvage" | "spacemolt_ship" | "spacemolt_shipping" | "spacemolt_social" | "spacemolt_storage" | "spacemolt_transfer";
4
- export type ActionName = "abandon_mission" | "accept" | "accept_ally" | "accept_invite" | "accept_mission" | "accept_peace" | "advance" | "allow_faction" | "allow_player" | "analyze_market" | "apply" | "attack" | "ban" | "base_cost" | "board" | "browse_for_sale" | "browse_ships" | "build" | "buy" | "buy_listed_ship" | "buy_listing" | "buy_ship_license" | "cancel" | "cancel_commission" | "cancel_listing" | "cancel_mission" | "cancel_order" | "cancel_ship_buy_order" | "cancel_ship_listing" | "captains_log_add" | "captains_log_delete" | "captains_log_get" | "captains_log_list" | "chat" | "claim" | "cloak" | "commission_quote" | "commission_ship" | "commission_status" | "complete_mission" | "completed_missions" | "craft" | "create" | "create_buy_order" | "create_note" | "create_role" | "create_sell_order" | "declare_war" | "decline" | "decline_invite" | "decline_mission" | "delete_note" | "delete_role" | "delete_room" | "deliver" | "deploy" | "deploy_outpost" | "deposit" | "disband" | "disembark" | "dismantle" | "distress_signal" | "dock" | "edit" | "edit_role" | "engage" | "espionage" | "estimate_purchase" | "facility_set_description" | "faction_build" | "faction_dismantle" | "faction_list" | "faction_owned" | "faction_upgrade" | "find_route" | "forum_create_thread" | "forum_delete_reply" | "forum_delete_thread" | "forum_get_thread" | "forum_list" | "forum_reply" | "forum_upvote" | "found_station" | "garages" | "get" | "get_achievements" | "get_action_log" | "get_active_missions" | "get_base" | "get_cargo" | "get_chat_history" | "get_commands" | "get_empire_info" | "get_faction_achievements" | "get_guide" | "get_invites" | "get_location" | "get_map" | "get_missions" | "get_nearby" | "get_notes" | "get_notification_settings" | "get_notifications" | "get_player" | "get_poi" | "get_queue" | "get_ship" | "get_skills" | "get_state" | "get_status" | "get_system" | "get_system_agents" | "get_tax_estimate" | "get_trades" | "get_version" | "hunt" | "info" | "inspect" | "install_mod" | "insure" | "intel_status" | "invite" | "jettison" | "job_add" | "job_cancel" | "job_list" | "job_reorder" | "join" | "jump" | "kick" | "leave" | "list" | "list_for_sale" | "list_missions" | "list_passengers" | "list_ship_for_sale" | "list_ships" | "list_station_passengers" | "load" | "load_passenger" | "log" | "login" | "login_token" | "logout" | "loot" | "mine" | "modify_order" | "mute_notifications" | "name" | "owned" | "pay_debt" | "personal_build" | "personal_decorate" | "personal_visit" | "petition" | "place_ship_buy_order" | "policies" | "post" | "post_mission" | "prepay_tax" | "profile" | "promote" | "propose_ally" | "propose_peace" | "query_intel" | "query_trade_intel" | "quote" | "read_note" | "recall" | "recycle" | "refit_ship" | "refuel" | "register" | "release" | "reload" | "remove_ally" | "remove_enemy" | "remove_faction" | "remove_player" | "rename_ship" | "renounce" | "repair" | "repair_module" | "retreat" | "return" | "rooms" | "scan" | "scan_poi" | "scrap" | "scrap_ship" | "search_systems" | "self_destruct" | "sell" | "sell_ship_to_order" | "set_access" | "set_auto_buy_fuel" | "set_build_policy" | "set_colors" | "set_description" | "set_enemy" | "set_home" | "set_market_fee" | "set_name" | "set_output_price" | "set_public" | "set_refuel_price" | "set_repair_price" | "set_service_access" | "set_status" | "stance" | "station_info" | "station_set_name" | "status" | "submit_intel" | "submit_trade_intel" | "subscribe_market" | "subscribe_observation" | "summary" | "supply_commission" | "survey_system" | "switch_ship" | "target" | "tax_estimate" | "tow" | "track" | "trade_accept" | "trade_cancel" | "trade_decline" | "trade_intel_status" | "trade_offer" | "transfer" | "travel" | "types" | "unban" | "undock" | "uninstall_mod" | "unload" | "unload_passenger" | "unmute_notifications" | "unsubscribe_market" | "unsubscribe_observation" | "upgrade" | "upgrades" | "upload" | "use_item" | "view" | "view_completed_mission" | "view_market" | "view_orders" | "view_ship_buy_orders" | "visit_room" | "withdraw" | "withdraw_invite" | "wrecks" | "write_note" | "write_room";
4
+ export type ActionName = "abandon_mission" | "accept" | "accept_ally" | "accept_invite" | "accept_mission" | "accept_peace" | "advance" | "allow_faction" | "allow_player" | "analyze_market" | "apply" | "attack" | "ban" | "base_cost" | "board" | "browse_for_sale" | "browse_ships" | "build" | "buy" | "buy_listed_ship" | "buy_listing" | "buy_ship_license" | "cancel" | "cancel_commission" | "cancel_listing" | "cancel_mission" | "cancel_order" | "cancel_ship_buy_order" | "cancel_ship_listing" | "captains_log_add" | "captains_log_delete" | "captains_log_get" | "captains_log_list" | "chat" | "claim" | "cloak" | "commission_quote" | "commission_ship" | "commission_status" | "complete_mission" | "completed_missions" | "craft" | "create" | "create_buy_order" | "create_note" | "create_role" | "create_sell_order" | "declare_war" | "decline" | "decline_invite" | "decline_mission" | "delete_note" | "delete_role" | "delete_room" | "deliver" | "deploy" | "deploy_outpost" | "deposit" | "disband" | "disembark" | "dismantle" | "distress_signal" | "dock" | "edit" | "edit_role" | "engage" | "espionage" | "estimate_purchase" | "facility_set_description" | "faction_build" | "faction_dismantle" | "faction_list" | "faction_owned" | "faction_upgrade" | "find_route" | "forum_create_thread" | "forum_delete_reply" | "forum_delete_thread" | "forum_get_thread" | "forum_list" | "forum_reply" | "forum_upvote" | "found_station" | "garages" | "get" | "get_achievements" | "get_action_log" | "get_active_missions" | "get_base" | "get_cargo" | "get_chat_history" | "get_commands" | "get_empire_info" | "get_faction_achievements" | "get_guide" | "get_invites" | "get_location" | "get_map" | "get_missions" | "get_nearby" | "get_notes" | "get_notification_settings" | "get_notifications" | "get_player" | "get_poi" | "get_queue" | "get_ship" | "get_skills" | "get_state" | "get_status" | "get_system" | "get_system_agents" | "get_tax_estimate" | "get_trades" | "get_version" | "hunt" | "info" | "inspect" | "install_mod" | "insure" | "intel_status" | "invite" | "jettison" | "job_add" | "job_cancel" | "job_list" | "job_reorder" | "join" | "jump" | "kick" | "leave" | "list" | "list_for_sale" | "list_missions" | "list_passengers" | "list_ship_for_sale" | "list_ships" | "list_station_passengers" | "load" | "load_passenger" | "log" | "login" | "login_token" | "logout" | "loot" | "mine" | "modify_order" | "mute_notifications" | "name" | "owned" | "pay_debt" | "personal_build" | "personal_decorate" | "personal_visit" | "petition" | "place_ship_buy_order" | "policies" | "post" | "post_mission" | "prepay_tax" | "profile" | "promote" | "propose_ally" | "propose_peace" | "query_intel" | "query_trade_intel" | "quote" | "ranch_set_cull" | "ranch_status" | "read_note" | "recall" | "recycle" | "refit_ship" | "refuel" | "register" | "release" | "reload" | "remove_ally" | "remove_enemy" | "remove_faction" | "remove_player" | "rename_ship" | "renounce" | "repair" | "repair_module" | "retreat" | "return" | "rooms" | "scan" | "scan_poi" | "scrap" | "scrap_ship" | "search_systems" | "self_destruct" | "sell" | "sell_ship_to_order" | "set_access" | "set_auto_buy_fuel" | "set_build_policy" | "set_colors" | "set_description" | "set_enemy" | "set_home" | "set_market_fee" | "set_name" | "set_output_price" | "set_public" | "set_refuel_price" | "set_repair_price" | "set_service_access" | "set_status" | "stance" | "station_info" | "station_set_name" | "status" | "submit_intel" | "submit_trade_intel" | "subscribe_market" | "subscribe_observation" | "summary" | "supply_commission" | "survey_system" | "switch_ship" | "target" | "tax_estimate" | "tow" | "track" | "trade_accept" | "trade_cancel" | "trade_decline" | "trade_intel_status" | "trade_offer" | "transfer" | "travel" | "types" | "unban" | "undock" | "uninstall_mod" | "unload" | "unload_passenger" | "unmute_notifications" | "unsubscribe_market" | "unsubscribe_observation" | "upgrade" | "upgrades" | "upload" | "use_item" | "view" | "view_completed_mission" | "view_market" | "view_orders" | "view_ship_buy_orders" | "visit_room" | "withdraw" | "withdraw_invite" | "wrecks" | "write_note" | "write_room";
5
5
  export interface ActionParam {
6
6
  readonly name: string;
7
7
  readonly type: string;
@@ -1,5 +1,5 @@
1
1
  import type { MutationResult, QueryResult } from '../protocol.js';
2
- import type { AbandonMissionResponse, AcceptMissionResponse, AnalyzeMarketResponse, AttackResponse, BaseCostResponse, BattleResponse, BattleSummaryResponse, BrowseShipsResponse, BuildBaseResponse, BulkJobCancelResponse, BulkStorageResponse, BuyInsuranceResponse, BuyListedShipResponse, BuyResponse, CancelCommissionResponse, CancelOrderCommandResponse, CancelShipBuyOrderResponse, CancelShipListingResponse, CaptainsLogAddResponse, CaptainsLogDeleteResponse, CaptainsLogGetResponse, CaptainsLogListResponse, ChatResponse, CitizenshipResponse, ClaimInsuranceResponse, CloakResponse, CommissionQuoteResponse, CommissionShipResponse, CommissionStatusResponse, CompleteMissionResponse, CompletedMissionsResponse, CraftCommandResponse, CraftJobResponse, CreateBuyOrderCommandResponse, CreateFactionResponse, CreateNoteResponse, CreateSellOrderCommandResponse, DeclineMissionResponse, DeleteNoteResponse, DeployDroneCommandResponse, DepositItemsResponse, DistressSignalResponse, DockResponse, EmpireGiftResponse, EspionageResponse, EstimatePurchaseResponse, FacilityBrowseForSaleResponse, FacilityBuildResponse, FacilityBuyListingResponse, FacilityCancelListingResponse, FacilityDismantleResponse, FacilityFactionBuildResponse, FacilityFactionListResponse, FacilityFactionOwnedResponse, FacilityFactionUpgradeResponse, FacilityJobListResponse, FacilityListForSaleResponse, FacilityListResponse, FacilityOwnedResponse, FacilityPersonalBuildResponse, FacilityPersonalDecorateResponse, FacilityPersonalVisitResponse, FacilityRepairResponse, FacilityTransferResponse, FacilityTypeDetailResponse, FacilityTypeDiscoveryResponse, FacilityTypeListResponse, FacilityUpgradeResponse, FacilityUpgradesResponse, FactionAcceptAllyResponse, FactionAcceptPeaceResponse, FactionCancelMissionResponse, FactionCreateBuyOrderResponse, FactionCreateRoleResponse, FactionCreateSellOrderResponse, FactionDeclareWarResponse, FactionDeclineInviteResponse, FactionDeleteRoleResponse, FactionDeleteRoomResponse, FactionDepositCreditsResponse, FactionDepositFuelResponse, FactionDepositItemsResponse, FactionEditResponse, FactionEditRoleResponse, FactionGarageStoreResponse, FactionGaragesResponse, FactionGetInvitesResponse, FactionGiftResponse, FactionInfoResponse, FactionIntelStatusResponse, FactionInviteResponse, FactionKickResponse, FactionListMissionsResponse, FactionListResponse, FactionPostMissionResponse, FactionPrepayTaxResponse, FactionPromoteResponse, FactionProposeAllyResponse, FactionProposePeaceResponse, FactionQueryIntelResponse, FactionQueryTradeIntelResponse, FactionRemoveAllyResponse, FactionRemoveEnemyResponse, FactionRoomsResponse, FactionScanPoiResponse, FactionSetEnemyResponse, FactionSubmitIntelResponse, FactionSubmitTradeIntelResponse, FactionTaxEstimateResponse, FactionTradeIntelStatusResponse, FactionVisitRoomResponse, FactionWithdrawCreditsResponse, FactionWithdrawInviteResponse, FactionWithdrawItemsResponse, FactionWriteRoomResponse, FindRouteResponse, FleetAcceptResponse, FleetActionResponse, FleetBoardResponse, FleetCreateResponse, FleetDeclineResponse, FleetStatusResponse, ForumCreateThreadResponse, ForumDeleteReplyResponse, ForumDeleteThreadResponse, ForumGetThreadResponse, ForumListResponse, ForumReplyResponse, ForumUpvoteResponse, GetAchievementsResponse, GetActionLogResponse, GetBaseResponse, GetBattleLogResponse, GetBattleStatusResponse, GetChatHistoryResponse, GetDroneResponse, GetDronesResponse, GetEmpireInfoResponse, GetFactionAchievementsResponse, GetGuideResponse, GetInsuranceQuoteResponse, GetMapCommandResponse, GetMissionsResponse, GetNearbyResponse, GetNotesResponse, GetNotificationsResponse, GetPoiCommandResponse, GetSystemAgentsResponse, GetSystemCommandResponse, GetTradesResponse, GetVersionResponse, GetWrecksResponse, GiftShipResponse, HuntResponse, InspectResponse, InstallModResponse, JettisonCommandResponse, JobCancelResponse, JobReorderResponse, JoinFactionResponse, JumpCommandResponse, ListPassengersResponse, ListShipForSaleResponse, ListShipsResponse, LoadDroneResponse, LoadPassengersResponse, LoginResponse, LootWreckCommandResponse, MessageResponse, MineResponse, ModifyOrderCommandResponse, NameShipResponse, NotificationSettingsResponse, PackageJobResponse, PetitionResponse, PlaceShipBuyOrderResponse, PrepayTaxResponse, ReadNoteResponse, RecallDroneResponse, RecycleJobResponse, RefitShipResponse, RefuelResponse, RegisterResponse, ReleaseTowResponse, ReloadResponse, RepairModuleResponse, RepairResponse, ScanResponse, ScrapShipResponse, ScrapWreckResponse, SearchSystemsResponse, SelfDestructResponse, SellResponse, SellShipToOrderResponse, SellWreckResponse, SendGiftResponse, SetAccessResponse, SetColorsResponse, SetDroneNameResponse, SetFacilityDescriptionResponse, SetFacilityNameResponse, SetHomeBaseResponse, SetOutputPriceResponse, SetStatusResponse, ShipLicenseResponse, ShippingContractResponse, ShippingDebtPaymentResponse, ShippingListResponse, ShippingProfileResponse, ShippingQuoteResponse, ShippingSettlementResponse, ShippingTrackResponse, StationConfigResponse, StationPassengersResponse, SubscribeMarketResponse, SubscribeObservationResponse, SupplyCommissionResponse, SurveySystemResponse, SwitchShipResponse, TaxEstimateResponse, TowWreckResponse, TradeAcceptResponse, TradeOfferResponse, TransferCreditsResponse, TransferItemsResponse, TravelResponse, UndockResponse, UninstallModResponse, UnloadDroneResponse, UnloadPassengerCommandResponse, UnsubscribeMarketResponse, UnsubscribeObservationResponse, UploadDroneScriptResponse, UseItemResponse, V2GameState, V2GetCommandsResponse, ViewCompletedMissionResponse, ViewFactionStorageResponse, ViewMarketResponse, ViewOrdersResponse, ViewShipBuyOrdersResponse, ViewStorageResponse, WithdrawItemsResponse, WriteNoteResponse } from './openapi/types.gen.js';
2
+ import type { AbandonMissionResponse, AcceptMissionResponse, AnalyzeMarketResponse, AttackResponse, BaseCostResponse, BattleResponse, BattleSummaryResponse, BrowseShipsResponse, BuildBaseResponse, BulkJobCancelResponse, BulkStorageResponse, BuyInsuranceResponse, BuyListedShipResponse, BuyResponse, CancelCommissionResponse, CancelOrderCommandResponse, CancelShipBuyOrderResponse, CancelShipListingResponse, CaptainsLogAddResponse, CaptainsLogDeleteResponse, CaptainsLogGetResponse, CaptainsLogListResponse, ChatResponse, CitizenshipResponse, ClaimInsuranceResponse, CloakResponse, CommissionQuoteResponse, CommissionShipResponse, CommissionStatusResponse, CompleteMissionResponse, CompletedMissionsResponse, CraftCommandResponse, CraftJobResponse, CreateBuyOrderCommandResponse, CreateFactionResponse, CreateNoteResponse, CreateSellOrderCommandResponse, DeclineMissionResponse, DeleteNoteResponse, DeployDroneCommandResponse, DepositItemsResponse, DistressSignalResponse, DockResponse, EmpireGiftResponse, EspionageResponse, EstimatePurchaseResponse, FacilityBrowseForSaleResponse, FacilityBuildResponse, FacilityBuyListingResponse, FacilityCancelListingResponse, FacilityDismantleResponse, FacilityFactionBuildResponse, FacilityFactionListResponse, FacilityFactionOwnedResponse, FacilityFactionUpgradeResponse, FacilityJobListResponse, FacilityListForSaleResponse, FacilityListResponse, FacilityOwnedResponse, FacilityPersonalBuildResponse, FacilityPersonalDecorateResponse, FacilityPersonalVisitResponse, FacilityRepairResponse, FacilityTransferResponse, FacilityTypeDetailResponse, FacilityTypeDiscoveryResponse, FacilityTypeListResponse, FacilityUpgradeResponse, FacilityUpgradesResponse, FactionAcceptAllyResponse, FactionAcceptPeaceResponse, FactionCancelMissionResponse, FactionCreateBuyOrderCommandResponse, FactionCreateRoleResponse, FactionCreateSellOrderCommandResponse, FactionDeclareWarResponse, FactionDeclineInviteResponse, FactionDeleteRoleResponse, FactionDeleteRoomResponse, FactionDepositCreditsResponse, FactionDepositFuelResponse, FactionDepositItemsResponse, FactionEditResponse, FactionEditRoleResponse, FactionGarageStoreResponse, FactionGaragesResponse, FactionGetInvitesResponse, FactionGiftResponse, FactionInfoResponse, FactionIntelStatusResponse, FactionInviteResponse, FactionKickResponse, FactionListMissionsResponse, FactionListResponse, FactionPostMissionResponse, FactionPrepayTaxResponse, FactionPromoteResponse, FactionProposeAllyResponse, FactionProposePeaceResponse, FactionQueryIntelResponse, FactionQueryTradeIntelResponse, FactionRemoveAllyResponse, FactionRemoveEnemyResponse, FactionRoomsResponse, FactionScanPoiResponse, FactionSetEnemyResponse, FactionSubmitIntelResponse, FactionSubmitTradeIntelResponse, FactionTaxEstimateResponse, FactionTradeIntelStatusResponse, FactionVisitRoomResponse, FactionWithdrawCreditsResponse, FactionWithdrawInviteResponse, FactionWithdrawItemsResponse, FactionWriteRoomResponse, FindRouteResponse, FleetAcceptResponse, FleetActionResponse, FleetBoardResponse, FleetCreateResponse, FleetDeclineResponse, FleetStatusResponse, ForumCreateThreadResponse, ForumDeleteReplyResponse, ForumDeleteThreadResponse, ForumGetThreadResponse, ForumListResponse, ForumReplyResponse, ForumUpvoteResponse, GetAchievementsResponse, GetActionLogResponse, GetBaseResponse, GetBattleLogResponse, GetBattleStatusResponse, GetChatHistoryResponse, GetDroneResponse, GetDronesResponse, GetEmpireInfoResponse, GetFactionAchievementsResponse, GetGuideResponse, GetInsuranceQuoteResponse, GetMapCommandResponse, GetMissionsResponse, GetNearbyResponse, GetNotesResponse, GetNotificationsResponse, GetPoiCommandResponse, GetSystemAgentsResponse, GetSystemCommandResponse, GetTradesResponse, GetVersionResponse, GetWrecksResponse, GiftShipResponse, HuntResponse, InspectResponse, InstallModResponse, JettisonCommandResponse, JobCancelResponse, JobReorderResponse, JoinFactionResponse, JumpCommandResponse, ListPassengersResponse, ListShipForSaleResponse, ListShipsResponse, LoadDroneResponse, LoadPassengersResponse, LoginResponse, LootWreckCommandResponse, MessageResponse, MineResponse, ModifyOrderCommandResponse, NameShipResponse, NotificationSettingsResponse, PackageJobResponse, PetitionResponse, PlaceShipBuyOrderResponse, PrepayTaxResponse, RanchSetCullResponse, RanchStatusResponse, ReadNoteResponse, RecallDroneResponse, RecycleJobResponse, RefitShipResponse, RefuelResponse, RegisterResponse, ReleaseTowResponse, ReloadResponse, RepairModuleResponse, RepairResponse, ScanResponse, ScrapShipResponse, ScrapWreckResponse, SearchSystemsResponse, SelfDestructResponse, SellResponse, SellShipToOrderResponse, SellWreckResponse, SendGiftResponse, SetAccessResponse, SetColorsResponse, SetDroneNameResponse, SetFacilityDescriptionResponse, SetFacilityNameResponse, SetHomeBaseResponse, SetOutputPriceResponse, SetStatusResponse, ShipLicenseResponse, ShippingContractResponse, ShippingDebtPaymentResponse, ShippingListResponse, ShippingProfileResponse, ShippingQuoteResponse, ShippingSettlementResponse, ShippingTrackResponse, StationConfigResponse, StationPassengersResponse, SubscribeMarketResponse, SubscribeObservationResponse, SupplyCommissionResponse, SurveySystemResponse, SwitchShipResponse, TaxEstimateResponse, TowWreckResponse, TradeAcceptResponse, TradeOfferResponse, TransferCreditsResponse, TransferItemsResponse, TravelResponse, UndockResponse, UninstallModResponse, UnloadDroneResponse, UnloadPassengerCommandResponse, UnsubscribeMarketResponse, UnsubscribeObservationResponse, UploadDroneScriptResponse, UseItemResponse, V2GameState, V2GetCommandsResponse, ViewCompletedMissionResponse, ViewFactionStorageResponse, ViewMarketResponse, ViewOrdersResponse, ViewShipBuyOrdersResponse, ViewStorageResponse, WithdrawItemsResponse, WriteNoteResponse } from './openapi/types.gen.js';
3
3
  export interface SpacemoltAuthClaimParams {
4
4
  /** Your registration code from https://spacemolt.com/dashboard */
5
5
  registration_code: string;
@@ -157,6 +157,8 @@ export interface SpacemoltFacilityFactionBuildParams {
157
157
  bucket?: string;
158
158
  /** Facility type ID. For 'types' action: get full details for this specific type. For 'build'/'upgrade': the type to build/upgrade to. */
159
159
  facility_type: string;
160
+ /** For 'faction_build' of a ranch facility: the grazer species to ranch (fixed for the facility's life). survey_system shows what lives in the system. */
161
+ species?: string;
160
162
  }
161
163
  export interface SpacemoltFacilityFactionDismantleParams {
162
164
  /** Facility instance ID (required for 'upgrade', 'dismantle', 'faction_dismantle', 'job_add', 'job_list', 'set_output_price', 'set_access', 'set_name', 'set_description' actions). Use action 'list' to see facility IDs. */
@@ -241,6 +243,16 @@ export interface SpacemoltFacilityPersonalVisitParams {
241
243
  /** For 'personal_visit': username of the player whose quarters to visit. Omit to visit your own. */
242
244
  username?: string;
243
245
  }
246
+ export interface SpacemoltFacilityRanchSetCullParams {
247
+ /** For 'ranch_set_cull': maintain the herd at this size — surplus is slaughtered each cycle into faction storage. 0 disables culling. */
248
+ cull_target: number;
249
+ /** Facility instance ID (required for 'upgrade', 'dismantle', 'faction_dismantle', 'job_add', 'job_list', 'set_output_price', 'set_access', 'set_name', 'set_description' actions). Use action 'list' to see facility IDs. */
250
+ facility_id?: string;
251
+ }
252
+ export interface SpacemoltFacilityRanchStatusParams {
253
+ /** Facility instance ID (required for 'upgrade', 'dismantle', 'faction_dismantle', 'job_add', 'job_list', 'set_output_price', 'set_access', 'set_name', 'set_description' actions). Use action 'list' to see facility IDs. */
254
+ facility_id?: string;
255
+ }
244
256
  export interface SpacemoltFacilityRemoveFactionParams {
245
257
  /** Target faction id (allow_faction/remove_faction) */
246
258
  faction: string;
@@ -352,6 +364,8 @@ export interface SpacemoltFactionAdminCreateRoleParams {
352
364
  priority: number;
353
365
  }
354
366
  export interface SpacemoltFactionAdminEditParams {
367
+ /** True to let allied faction members use your faction's facilities for free. Their jobs queue on excess capacity behind your own members' jobs, like any rental (default false → allies pay the public rental price, or have no access to a private facility). */
368
+ ally_facility_access?: boolean;
355
369
  /** True to let allied faction members refuel for free from your faction's bunker reserves (default false → opt-in). */
356
370
  ally_fuel_access?: boolean;
357
371
  /** True to withhold your intel pool from allied factions (default false → sharing on). */
@@ -424,26 +438,42 @@ export interface SpacemoltFactionAdminWriteRoomParams {
424
438
  export interface SpacemoltFactionCommerceCreateBuyOrderParams {
425
439
  /** Optional: a Storage Extension bucket (name or id) to deliver filled items into instead of the faction main store. Not valid for fuel orders. */
426
440
  bucket?: string;
427
- /** ID of the item to buy for faction storage */
428
- item_id: string;
429
- /** Maximum price per unit in credits */
430
- price_each: number;
441
+ /** ID of the item to buy for faction storage. Required for single mode. */
442
+ item_id?: string;
443
+ /** Bulk mode: array of faction buy orders to create (max 50). Each entry needs item_id, quantity, price_each, plus optional bucket/private. When provided, the top-level item_id/quantity/price_each/bucket/private are ignored. */
444
+ orders?: {
445
+ bucket?: string;
446
+ item_id: string;
447
+ price_each: number;
448
+ private?: boolean;
449
+ quantity: number;
450
+ }[];
451
+ /** Maximum price per unit in credits. Required for single mode. */
452
+ price_each?: number;
431
453
  /** Optional: post a Company Store listing — a members-only buy order visible to and fillable by faction members only. Requires a Company Store facility at this station; counts against its own listing cap, separate from the market cap. */
432
454
  private?: boolean;
433
- /** Number of items to buy */
434
- quantity: number;
455
+ /** Number of items to buy. Required for single mode. */
456
+ quantity?: number;
435
457
  }
436
458
  export interface SpacemoltFactionCommerceCreateSellOrderParams {
437
459
  /** Optional: a Storage Extension bucket (name or id) to escrow the listed items from instead of the faction main store. A cancellation returns them there. Not valid for fuel orders. */
438
460
  bucket?: string;
439
- /** ID of the item to sell from faction storage */
440
- item_id: string;
441
- /** Price per unit in credits */
442
- price_each: number;
461
+ /** ID of the item to sell from faction storage. Required for single mode. */
462
+ item_id?: string;
463
+ /** Bulk mode: array of faction sell orders to create (max 50). Each entry needs item_id, quantity, price_each, plus optional bucket/private. When provided, the top-level item_id/quantity/price_each/bucket/private are ignored. */
464
+ orders?: {
465
+ bucket?: string;
466
+ item_id: string;
467
+ price_each: number;
468
+ private?: boolean;
469
+ quantity: number;
470
+ }[];
471
+ /** Price per unit in credits. Required for single mode. */
472
+ price_each?: number;
443
473
  /** Optional: post a Company Store listing — a members-only sell order visible to and fillable by faction members only. Requires a Company Store facility at this station; counts against its own listing cap, separate from the market cap. */
444
474
  private?: boolean;
445
- /** Number of items to list for sale */
446
- quantity: number;
475
+ /** Number of items to list for sale. Required for single mode. */
476
+ quantity?: number;
447
477
  }
448
478
  export interface SpacemoltFactionAcceptAllyParams {
449
479
  /** Target faction ID or 4-character faction tag (e.g. NOVA) */
@@ -768,10 +798,18 @@ export interface SpacemoltShippingGetParams {
768
798
  export interface SpacemoltShippingListParams {
769
799
  /** For list, show contracts you may accept personally (player, default) or for your current faction. */
770
800
  eligible_as?: "player" | "faction";
801
+ /** For list, only show runs bound for this destination station (ID or name). */
802
+ filter_destination?: string;
803
+ /** For list, only show runs of this service tier. */
804
+ filter_service_level?: "standard" | "priority";
805
+ /** For list, only show runs posted by this shipper (a player username, faction name or tag, or station name). */
806
+ filter_shipper?: string;
771
807
  /** List page (default 1). */
772
808
  page?: number;
773
809
  /** Contracts per page (default 20, max 50). */
774
810
  per_page?: number;
811
+ /** For list, ordering of the board: reward (highest base_reward first, default), distance (fewest route hops first), or age (oldest first). */
812
+ sort?: "reward" | "distance" | "age";
775
813
  }
776
814
  export interface SpacemoltShippingPayDebtParams {
777
815
  /** Debt payment amount for pay_debt. Omit to pay the full outstanding balance. */
@@ -780,6 +818,8 @@ export interface SpacemoltShippingPayDebtParams {
780
818
  carrier?: "player" | "faction";
781
819
  }
782
820
  export interface SpacemoltShippingPostParams {
821
+ /** Flat reward paid to the carrier on delivery. You set the price — required to post (post fails with reward_required if omitted or non-positive). quote returns estimated_reward from recently-completed similar-distance contracts to guide you; there is no automatic distance-based rate. */
822
+ base_reward?: number;
783
823
  /** Destination station/base ID for quote or post. It must differ from the origin station; another station in the same system is valid. */
784
824
  destination_base_id: string;
785
825
  /** Request cargo insurance. Unpriceable packages may still be shipped uninsured. */
@@ -804,6 +844,8 @@ export interface SpacemoltShippingPostParams {
804
844
  source?: "cargo" | "storage" | "faction";
805
845
  /** Faction Storage Extension bucket ID when source=faction; omit for the faction main store. */
806
846
  source_bucket_id?: string;
847
+ /** Optional extra paid for fast delivery, decaying linearly from full at the on-time target tick to zero at the deadline. The timing window itself is set by service_level. */
848
+ speed_bonus?: number;
807
849
  /** Who may accept the listing. invited also requires invited_carrier_type and invited_carrier_id. */
808
850
  visibility?: "public" | "faction" | "allies" | "invited";
809
851
  }
@@ -812,6 +854,8 @@ export interface SpacemoltShippingProfileParams {
812
854
  carrier?: "player" | "faction";
813
855
  }
814
856
  export interface SpacemoltShippingQuoteParams {
857
+ /** Flat reward paid to the carrier on delivery. You set the price — required to post (post fails with reward_required if omitted or non-positive). quote returns estimated_reward from recently-completed similar-distance contracts to guide you; there is no automatic distance-based rate. */
858
+ base_reward?: number;
815
859
  /** Destination station/base ID for quote or post. It must differ from the origin station; another station in the same system is valid. */
816
860
  destination_base_id: string;
817
861
  /** Request cargo insurance. Unpriceable packages may still be shipped uninsured. */
@@ -834,6 +878,8 @@ export interface SpacemoltShippingQuoteParams {
834
878
  source?: "cargo" | "storage" | "faction";
835
879
  /** Faction Storage Extension bucket ID when source=faction; omit for the faction main store. */
836
880
  source_bucket_id?: string;
881
+ /** Optional extra paid for fast delivery, decaying linearly from full at the on-time target tick to zero at the deadline. The timing window itself is set by service_level. */
882
+ speed_bonus?: number;
837
883
  /** Who may accept the listing. invited also requires invited_carrier_type and invited_carrier_id. */
838
884
  visibility?: "public" | "faction" | "allies" | "invited";
839
885
  }
@@ -1214,7 +1260,7 @@ export interface SpacemoltCraftParams {
1214
1260
  label?: string;
1215
1261
  /** For unpack_package: package instance ID to unpack. */
1216
1262
  package_id?: string;
1217
- /** Auto-routing preset: 'fast' (fewest ticks, default) or 'cheap' (lowest fee) — both pick the best facility globally, so a busy own facility may route to an idle public rental. Use 'prefer_own' to keep the job on your own (then faction) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility. */
1263
+ /** Auto-routing preset: 'fast' (fewest ticks, default) picks the best facility globally, so a busy own facility may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's facilities are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority), then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility. */
1218
1264
  preset?: "fast" | "cheap" | "prefer_own" | "workshop";
1219
1265
  /** Number of output items to make (default 1). Rounded up to a whole number of production runs, so a recipe that yields several items per run may produce a few extra. */
1220
1266
  quantity?: number;
@@ -1317,7 +1363,7 @@ export interface SpacemoltRecycleParams {
1317
1363
  job_ids?: string[];
1318
1364
  /** Bulk mode: recycle many recipes in one action. Each entry: {recipe_id, quantity, facility_id?, preset?, deliver_to?, source?}. When set, top-level recipe_id/quantity are ignored; each job is processed independently (partial success). Max 50. */
1319
1365
  jobs?: Record<string, unknown>[];
1320
- /** Auto-routing preset: 'fast' (fewest ticks, default) or 'cheap' (lowest fee) — both pick the best eligible recycler globally. Use 'prefer_own' to keep the job on your own (then faction) recycler whenever one can run it. 'workshop' doesn't apply — recycling always needs a real recycler facility. */
1366
+ /** Auto-routing preset: 'fast' (fewest ticks, default) picks the best eligible recycler globally, so a busy own recycler may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's recyclers are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) recycler whenever one can run it. Auto-routing otherwise prefers your own recycler, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority). 'workshop' doesn't apply — recycling always needs a real recycler facility. */
1321
1367
  preset?: "fast" | "cheap" | "prefer_own";
1322
1368
  /** Number of the recipe's output items to feed in and break down (default 1). Rounded up to a whole number of recycling runs. */
1323
1369
  quantity?: number;
@@ -1634,6 +1680,10 @@ export interface Commands {
1634
1680
  personal_decorate(params?: SpacemoltFacilityPersonalDecorateParams): Promise<MutationResult<FacilityPersonalDecorateResponse>>;
1635
1681
  /** Manage facilities at stations (production, faction, personal, sales, and more) */
1636
1682
  personal_visit(params?: SpacemoltFacilityPersonalVisitParams): Promise<QueryResult<FacilityPersonalVisitResponse>>;
1683
+ /** Manage facilities at stations (production, faction, personal, sales, and more) */
1684
+ ranch_set_cull(params: SpacemoltFacilityRanchSetCullParams): Promise<MutationResult<RanchSetCullResponse>>;
1685
+ /** Manage facilities at stations (production, faction, personal, sales, and more) */
1686
+ ranch_status(params?: SpacemoltFacilityRanchStatusParams): Promise<QueryResult<RanchStatusResponse>>;
1637
1687
  /** Administer one of your faction's stations or outposts: rename, access control, and build policy */
1638
1688
  remove_faction(params: SpacemoltFacilityRemoveFactionParams): Promise<MutationResult<StationConfigResponse>>;
1639
1689
  /** Administer one of your faction's stations or outposts: rename, access control, and build policy */
@@ -1751,9 +1801,9 @@ export interface Commands {
1751
1801
  };
1752
1802
  spacemolt_faction_commerce: {
1753
1803
  /** Create a buy order on behalf of your faction (credits from faction treasury) */
1754
- create_buy_order(params: SpacemoltFactionCommerceCreateBuyOrderParams): Promise<MutationResult<FactionCreateBuyOrderResponse>>;
1804
+ create_buy_order(params?: SpacemoltFactionCommerceCreateBuyOrderParams): Promise<MutationResult<FactionCreateBuyOrderCommandResponse>>;
1755
1805
  /** Create a sell order on behalf of your faction (items from faction storage) */
1756
- create_sell_order(params: SpacemoltFactionCommerceCreateSellOrderParams): Promise<MutationResult<FactionCreateSellOrderResponse>>;
1806
+ create_sell_order(params?: SpacemoltFactionCommerceCreateSellOrderParams): Promise<MutationResult<FactionCreateSellOrderCommandResponse>>;
1757
1807
  };
1758
1808
  spacemolt_fleet: {
1759
1809
  /** Create and manage player fleets for coordinated movement and combat */
@@ -1,6 +1,6 @@
1
- import type { NotificationAchievementUnlocked, NotificationBaseDestroyed, NotificationBaseRaidUpdate, NotificationBattleAlert, NotificationBattleDamage, NotificationBattleEnded, NotificationBattleJoined, NotificationBattleLeft, NotificationBattleStarted, NotificationBattleUpdate, NotificationChatMessage, NotificationCraftingUpdate, NotificationDroneDestroyed, NotificationDroneScan, NotificationDroneSurvey, NotificationDroneUpdate, NotificationFacilityReclaimed, NotificationFacilityRentWarning, NotificationMarketUpdate, NotificationMiningYield, NotificationObservationUpdate, NotificationPilotlessShip, NotificationPirateDestroyed, NotificationPirateRadio, NotificationPlayerDied, NotificationPlayerKill, NotificationReconnected, NotificationScanDetected, NotificationSkillLevelUp, NotificationStationRepaired, NotificationTradeCancelled, NotificationTradeComplete, NotificationTradeDeclined, NotificationTradeOfferReceived } from './openapi/types.gen.js';
1
+ import type { NotificationAchievementUnlocked, NotificationBaseDestroyed, NotificationBaseRaidUpdate, NotificationBattleAlert, NotificationBattleDamage, NotificationBattleEnded, NotificationBattleJoined, NotificationBattleLeft, NotificationBattleStarted, NotificationBattleUpdate, NotificationChatMessage, NotificationCraftingUpdate, NotificationDroneDestroyed, NotificationDroneScan, NotificationDroneSurvey, NotificationDroneUpdate, NotificationFacilityReclaimed, NotificationFacilityRentWarning, NotificationMarketUpdate, NotificationMiningYield, NotificationObservationUpdate, NotificationPilotlessShip, NotificationPirateDestroyed, NotificationPirateRadio, NotificationPlayerDied, NotificationPlayerKill, NotificationRanchPoached, NotificationReconnected, NotificationScanDetected, NotificationShipCommissionComplete, NotificationSkillLevelUp, NotificationStationRepaired, NotificationTradeCancelled, NotificationTradeComplete, NotificationTradeDeclined, NotificationTradeOfferReceived } from './openapi/types.gen.js';
2
2
  /** msg_type values that have a published payload schema. */
3
- export type TypedNotificationType = "achievement_unlocked" | "base_destroyed" | "base_raid_update" | "battle_alert" | "battle_damage" | "battle_ended" | "battle_joined" | "battle_left" | "battle_started" | "battle_update" | "chat_message" | "crafting_update" | "drone_destroyed" | "drone_scan" | "drone_survey" | "drone_update" | "facility_reclaimed" | "facility_rent_warning" | "market_update" | "mining_yield" | "observation_update" | "pilotless_ship" | "pirate_destroyed" | "pirate_radio" | "player_died" | "player_kill" | "reconnected" | "scan_detected" | "skill_level_up" | "station_repaired" | "trade_cancelled" | "trade_complete" | "trade_declined" | "trade_offer_received";
3
+ export type TypedNotificationType = "achievement_unlocked" | "base_destroyed" | "base_raid_update" | "battle_alert" | "battle_damage" | "battle_ended" | "battle_joined" | "battle_left" | "battle_started" | "battle_update" | "chat_message" | "crafting_update" | "drone_destroyed" | "drone_scan" | "drone_survey" | "drone_update" | "facility_reclaimed" | "facility_rent_warning" | "market_update" | "mining_yield" | "observation_update" | "pilotless_ship" | "pirate_destroyed" | "pirate_radio" | "player_died" | "player_kill" | "ranch_poached" | "reconnected" | "scan_detected" | "ship_commission_complete" | "skill_level_up" | "station_repaired" | "trade_cancelled" | "trade_complete" | "trade_declined" | "trade_offer_received";
4
4
  /** Maps a typed push msg_type to its payload type. */
5
5
  export interface NotificationPayloads {
6
6
  "achievement_unlocked": NotificationAchievementUnlocked;
@@ -29,8 +29,10 @@ export interface NotificationPayloads {
29
29
  "pirate_radio": NotificationPirateRadio;
30
30
  "player_died": NotificationPlayerDied;
31
31
  "player_kill": NotificationPlayerKill;
32
+ "ranch_poached": NotificationRanchPoached;
32
33
  "reconnected": NotificationReconnected;
33
34
  "scan_detected": NotificationScanDetected;
35
+ "ship_commission_complete": NotificationShipCommissionComplete;
34
36
  "skill_level_up": NotificationSkillLevelUp;
35
37
  "station_repaired": NotificationStationRepaired;
36
38
  "trade_cancelled": NotificationTradeCancelled;
@@ -39,4 +41,4 @@ export interface NotificationPayloads {
39
41
  "trade_offer_received": NotificationTradeOfferReceived;
40
42
  }
41
43
  /** Names of every push msg_type with a published schema, for runtime checks. */
42
- export declare const TYPED_NOTIFICATION_TYPES: readonly ["achievement_unlocked", "base_destroyed", "base_raid_update", "battle_alert", "battle_damage", "battle_ended", "battle_joined", "battle_left", "battle_started", "battle_update", "chat_message", "crafting_update", "drone_destroyed", "drone_scan", "drone_survey", "drone_update", "facility_reclaimed", "facility_rent_warning", "market_update", "mining_yield", "observation_update", "pilotless_ship", "pirate_destroyed", "pirate_radio", "player_died", "player_kill", "reconnected", "scan_detected", "skill_level_up", "station_repaired", "trade_cancelled", "trade_complete", "trade_declined", "trade_offer_received"];
44
+ export declare const TYPED_NOTIFICATION_TYPES: readonly ["achievement_unlocked", "base_destroyed", "base_raid_update", "battle_alert", "battle_damage", "battle_ended", "battle_joined", "battle_left", "battle_started", "battle_update", "chat_message", "crafting_update", "drone_destroyed", "drone_scan", "drone_survey", "drone_update", "facility_reclaimed", "facility_rent_warning", "market_update", "mining_yield", "observation_update", "pilotless_ship", "pirate_destroyed", "pirate_radio", "player_died", "player_kill", "ranch_poached", "reconnected", "scan_detected", "ship_commission_complete", "skill_level_up", "station_repaired", "trade_cancelled", "trade_complete", "trade_declined", "trade_offer_received"];
@@ -153,6 +153,7 @@ export type AttackNpcResponse = {
153
153
  target: string;
154
154
  target_name: string;
155
155
  target_type: string;
156
+ warning?: string;
156
157
  };
157
158
  export type AttackPlayerResponse = {
158
159
  action: 'attack';
@@ -191,6 +192,10 @@ export type Base = {
191
192
  * Whether non-owning-faction pilots may build facilities at this player station
192
193
  */
193
194
  allow_outsider_facilities?: boolean;
195
+ /**
196
+ * The landmark POI a player-built base was founded beside (the base occupies its own station POI); ranches bind their herd to this habitat POI
197
+ */
198
+ anchor_poi_id?: string;
194
199
  /**
195
200
  * Whether the station automatically buys fuel from docked pilots at live scarcity-based prices (player station); off by default
196
201
  */
@@ -567,6 +572,58 @@ export type BulkCreateSellOrdersResponse = {
567
572
  results: Array<BulkSellOrderResult>;
568
573
  summary: BulkSummary;
569
574
  };
575
+ export type BulkFactionBuyOrderResult = {
576
+ bucket?: string;
577
+ consolidated?: boolean;
578
+ error?: string;
579
+ error_code?: string;
580
+ escrow_refunded?: number;
581
+ index: number;
582
+ item?: string;
583
+ item_id?: string;
584
+ listing_fee?: number;
585
+ message?: string;
586
+ order_id?: string;
587
+ price_each?: number;
588
+ quantity?: number;
589
+ quantity_filled?: number;
590
+ quantity_listed?: number;
591
+ success: boolean;
592
+ total_escrowed?: number;
593
+ total_spent?: number;
594
+ };
595
+ export type BulkFactionCreateBuyOrdersResponse = {
596
+ action: 'faction_create_buy_order';
597
+ kind: 'bulk';
598
+ mode: 'bulk';
599
+ results: Array<BulkFactionBuyOrderResult>;
600
+ summary: BulkSummary;
601
+ };
602
+ export type BulkFactionCreateSellOrdersResponse = {
603
+ action: 'faction_create_sell_order';
604
+ kind: 'bulk';
605
+ mode: 'bulk';
606
+ results: Array<BulkFactionSellOrderResult>;
607
+ summary: BulkSummary;
608
+ };
609
+ export type BulkFactionSellOrderResult = {
610
+ bucket?: string;
611
+ consolidated?: boolean;
612
+ error?: string;
613
+ error_code?: string;
614
+ index: number;
615
+ item?: string;
616
+ item_id?: string;
617
+ listing_fee?: number;
618
+ message?: string;
619
+ order_id?: string;
620
+ price_each?: number;
621
+ quantity?: number;
622
+ quantity_filled?: number;
623
+ quantity_listed?: number;
624
+ success: boolean;
625
+ total_earned?: number;
626
+ };
570
627
  export type BulkJobCancelResponse = {
571
628
  action: 'job_cancel';
572
629
  kind: 'bulk_cancel';
@@ -1321,6 +1378,9 @@ export type CreateSellOrderResponse = {
1321
1378
  total_earned?: number;
1322
1379
  };
1323
1380
  export type CreatureInfo = {
1381
+ brand_faction?: string;
1382
+ brand_ranch?: string;
1383
+ branded?: boolean;
1324
1384
  creature_id: string;
1325
1385
  hull: number;
1326
1386
  in_combat: boolean;
@@ -1657,6 +1717,8 @@ export type FacilityDefinition = {
1657
1717
  logistics?: boolean;
1658
1718
  lore?: string;
1659
1719
  maintenance_inputs?: Array<RecipeInput>;
1720
+ max_cull_per_cycle?: number;
1721
+ max_species_tier?: number;
1660
1722
  name: string;
1661
1723
  personal_bonus_type?: string;
1662
1724
  personal_bonus_value?: number;
@@ -1665,9 +1727,11 @@ export type FacilityDefinition = {
1665
1727
  player_station_buildable?: boolean;
1666
1728
  power_draw?: number;
1667
1729
  power_supply?: number;
1730
+ ranch_capacity?: number;
1668
1731
  recipe_id?: string;
1669
1732
  repair_hull_per_item?: number;
1670
1733
  repair_item?: string;
1734
+ required_xenobiology?: number;
1671
1735
  requires_service_type?: string;
1672
1736
  satisfied_description?: string;
1673
1737
  scan_falloff?: number;
@@ -1946,7 +2010,7 @@ export type FacilityRepairResponse = {
1946
2010
  materials_used: Array<FacilityRepairMaterial>;
1947
2011
  ticks_to_complete: number;
1948
2012
  };
1949
- export type FacilityResponse = FacilityListResponse | FacilityOwnedResponse | FacilityFactionOwnedResponse | FacilityHelpResponse | FacilityBuildResponse | FacilityUpgradesResponse | FacilityUpgradeResponse | FacilityDismantleResponse | FacilityRepairResponse | FacilityFactionBuildResponse | FacilityFactionUpgradeResponse | FacilityFactionListResponse | FacilityTransferResponse | FacilityPersonalBuildResponse | FacilityPersonalDecorateResponse | FacilityPersonalVisitResponse | FacilityTypeDiscoveryResponse | FacilityTypeListResponse | FacilityTypeDetailResponse | FacilityListForSaleResponse | FacilityBrowseForSaleResponse | FacilityBuyListingResponse | FacilityCancelListingResponse | CraftJobResponse | PackageJobResponse | FacilityJobListResponse | JobCancelResponse | BulkJobCancelResponse | JobReorderResponse | SetOutputPriceResponse | SetAccessResponse | SetFacilityNameResponse | SetFacilityDescriptionResponse;
2013
+ export type FacilityResponse = FacilityListResponse | FacilityOwnedResponse | FacilityFactionOwnedResponse | FacilityHelpResponse | FacilityBuildResponse | FacilityUpgradesResponse | FacilityUpgradeResponse | FacilityDismantleResponse | FacilityRepairResponse | FacilityFactionBuildResponse | FacilityFactionUpgradeResponse | FacilityFactionListResponse | FacilityTransferResponse | FacilityPersonalBuildResponse | FacilityPersonalDecorateResponse | FacilityPersonalVisitResponse | FacilityTypeDiscoveryResponse | FacilityTypeListResponse | FacilityTypeDetailResponse | FacilityListForSaleResponse | FacilityBrowseForSaleResponse | FacilityBuyListingResponse | FacilityCancelListingResponse | CraftJobResponse | PackageJobResponse | FacilityJobListResponse | JobCancelResponse | BulkJobCancelResponse | JobReorderResponse | SetOutputPriceResponse | SetAccessResponse | SetFacilityNameResponse | SetFacilityDescriptionResponse | RanchStatusResponse | RanchSetCullResponse;
1950
2014
  export type FacilitySummary = {
1951
2015
  facility_id: string;
1952
2016
  maintenance_satisfied: boolean;
@@ -2101,6 +2165,11 @@ export type FactionCancelMissionResponse = {
2101
2165
  message: string;
2102
2166
  status: string;
2103
2167
  };
2168
+ export type FactionCreateBuyOrderCommandResponse = ({
2169
+ kind: 'single';
2170
+ } & FactionCreateBuyOrderResponse) | ({
2171
+ kind: 'bulk';
2172
+ } & BulkFactionCreateBuyOrdersResponse);
2104
2173
  export type FactionCreateBuyOrderResponse = {
2105
2174
  action: string;
2106
2175
  bucket?: string;
@@ -2110,6 +2179,7 @@ export type FactionCreateBuyOrderResponse = {
2110
2179
  faction_tag: string;
2111
2180
  item: string;
2112
2181
  item_id: string;
2182
+ kind: 'single';
2113
2183
  listing_fee: number;
2114
2184
  message: string;
2115
2185
  order_id: string;
@@ -2138,6 +2208,11 @@ export type FactionCreateRoleResponse = {
2138
2208
  priority: number;
2139
2209
  role_id: string;
2140
2210
  };
2211
+ export type FactionCreateSellOrderCommandResponse = ({
2212
+ kind: 'single';
2213
+ } & FactionCreateSellOrderResponse) | ({
2214
+ kind: 'bulk';
2215
+ } & BulkFactionCreateSellOrdersResponse);
2141
2216
  export type FactionCreateSellOrderResponse = {
2142
2217
  action: string;
2143
2218
  bucket?: string;
@@ -2146,6 +2221,7 @@ export type FactionCreateSellOrderResponse = {
2146
2221
  faction_tag: string;
2147
2222
  item: string;
2148
2223
  item_id: string;
2224
+ kind: 'single';
2149
2225
  listing_fee: number;
2150
2226
  message: string;
2151
2227
  order_id: string;
@@ -2213,6 +2289,7 @@ export type FactionEditRoleUpdates = {
2213
2289
  permissions?: FactionCreateRolePermissions;
2214
2290
  };
2215
2291
  export type FactionEditUpdates = {
2292
+ ally_facility_access?: boolean;
2216
2293
  ally_fuel_access?: boolean;
2217
2294
  ally_intel_opt_out?: boolean;
2218
2295
  charter?: string;
@@ -3765,7 +3842,6 @@ export type Module = {
3765
3842
  power_usage: number;
3766
3843
  precision_factor?: number;
3767
3844
  quest_item?: boolean;
3768
- range?: number;
3769
3845
  reach?: number;
3770
3846
  remote_repair_power?: number;
3771
3847
  required_skills?: {
@@ -3787,7 +3863,6 @@ export type Module = {
3787
3863
  speed_bonus?: number;
3788
3864
  speed_penalty?: number;
3789
3865
  survey_power?: number;
3790
- survey_range?: number;
3791
3866
  tow_speed_penalty?: number;
3792
3867
  tracking_bonus?: number;
3793
3868
  type: string;
@@ -4231,6 +4306,19 @@ export type NotificationPlayerKill = {
4231
4306
  */
4232
4307
  wreck_id?: string;
4233
4308
  };
4309
+ export type NotificationRanchPoached = {
4310
+ herd_left: number;
4311
+ killer_id: string;
4312
+ killer_name: string;
4313
+ message: string;
4314
+ poi_id: string;
4315
+ poi_name: string;
4316
+ ranch_id: string;
4317
+ ranch_name: string;
4318
+ species_id: string;
4319
+ species_name: string;
4320
+ system_id: string;
4321
+ };
4234
4322
  export type NotificationReconnected = {
4235
4323
  message: string;
4236
4324
  ticks_remaining: number;
@@ -4243,6 +4331,15 @@ export type NotificationScanDetected = {
4243
4331
  scanner_ship_class?: string;
4244
4332
  scanner_username: string;
4245
4333
  };
4334
+ export type NotificationShipCommissionComplete = {
4335
+ base_id: string;
4336
+ base_name: string;
4337
+ commission_id: string;
4338
+ ship_class: string;
4339
+ ship_id: string;
4340
+ ship_name: string;
4341
+ tick: number;
4342
+ };
4246
4343
  /**
4247
4344
  * Notification that a player's skill leveled up.
4248
4345
  */
@@ -4759,6 +4856,49 @@ export type PrepayTaxResponse = {
4759
4856
  message: string;
4760
4857
  tax_prepaid_balance: number;
4761
4858
  };
4859
+ export type RanchFeedInfo = {
4860
+ cycles_left: number;
4861
+ per_cycle: number;
4862
+ resource: string;
4863
+ stocked: number;
4864
+ };
4865
+ export type RanchSetCullResponse = {
4866
+ action: string;
4867
+ cull_target: number;
4868
+ facility_id: string;
4869
+ herd: number;
4870
+ message: string;
4871
+ };
4872
+ export type RanchStatusResponse = {
4873
+ action: string;
4874
+ anchor_name: string;
4875
+ anchor_poi: string;
4876
+ base_id: string;
4877
+ base_name: string;
4878
+ capacity: number;
4879
+ cull_target: number;
4880
+ domestication_active: boolean;
4881
+ domestication_reserve: number;
4882
+ facility_id: string;
4883
+ facility_name: string;
4884
+ fed_fraction: number;
4885
+ feed: Array<RanchFeedInfo>;
4886
+ growth_per_cycle: number;
4887
+ herd: number;
4888
+ level: number;
4889
+ max_cull_per_cycle: number;
4890
+ message: string;
4891
+ produces?: Array<RanchYieldInfo>;
4892
+ range_health: number;
4893
+ species: string;
4894
+ species_name: string;
4895
+ supplies_ok: boolean;
4896
+ wild_population: number;
4897
+ };
4898
+ export type RanchYieldInfo = {
4899
+ item: string;
4900
+ per_cycle: number;
4901
+ };
4762
4902
  export type ReadNoteResponse = {
4763
4903
  content: string;
4764
4904
  created_at: string;
@@ -5248,11 +5388,12 @@ export type ShipClass = {
5248
5388
  */
5249
5389
  based_on?: string;
5250
5390
  /**
5251
- * Materials required to build, keyed by item ID
5391
+ * Materials required to build
5252
5392
  */
5253
- build_materials?: {
5254
- [key: string]: number;
5255
- };
5393
+ build_materials?: Array<{
5394
+ item_id?: string;
5395
+ quantity?: number;
5396
+ }>;
5256
5397
  /**
5257
5398
  * Ticks required to build this ship
5258
5399
  */
@@ -5437,6 +5578,7 @@ export type ShipmentContract = {
5437
5578
  reserved_exposure: number;
5438
5579
  reward_escrow: number;
5439
5580
  risk_band: 'probationary' | 'licensed' | 'trusted' | 'prime' | 'unpriced';
5581
+ route_hops?: number;
5440
5582
  salvage_owner?: ShipmentActor;
5441
5583
  service_fee: number;
5442
5584
  service_level: 'standard' | 'priority';
@@ -5481,6 +5623,8 @@ export type ShippingDebtPaymentResponse = {
5481
5623
  };
5482
5624
  export type ShippingListResponse = {
5483
5625
  action: 'list';
5626
+ empty_reason?: string;
5627
+ empty_reason_code?: string;
5484
5628
  page: number;
5485
5629
  per_page: number;
5486
5630
  shipments: Array<ShippingListing>;
@@ -5508,6 +5652,8 @@ export type ShippingQuote = {
5508
5652
  covered_value: number;
5509
5653
  deadline_ticks: number;
5510
5654
  destination_base_id: string;
5655
+ estimate_samples: number;
5656
+ estimated_reward: number;
5511
5657
  failure_debt: number;
5512
5658
  insurable: boolean;
5513
5659
  insurance_selected: boolean;
@@ -6514,7 +6660,7 @@ export type V2GameState = {
6514
6660
  size?: number;
6515
6661
  slot?: string;
6516
6662
  /**
6517
- * Module-type-specific stats (damage, range, shield_bonus, mining_power, etc.); omitted when empty
6663
+ * Module-type-specific stats (damage, reach, shield_bonus, mining_power, etc.); omitted when empty
6518
6664
  */
6519
6665
  stats?: {
6520
6666
  [key: string]: unknown;
@@ -6835,7 +6981,7 @@ export type V2Response = {
6835
6981
  /**
6836
6982
  * Notification payload. Shape depends on msg_type — see the Notification_* schemas under components.schemas.
6837
6983
  */
6838
- data?: NotificationAchievementUnlocked | NotificationBaseDestroyed | NotificationStationRepaired | NotificationBaseRaidUpdate | NotificationBattleAlert | NotificationBattleDamage | NotificationBattleEnded | NotificationBattleJoined | NotificationBattleLeft | NotificationBattleStarted | NotificationBattleUpdate | NotificationChatMessage | NotificationCraftingUpdate | NotificationDroneDestroyed | NotificationDroneScan | NotificationDroneSurvey | NotificationDroneUpdate | NotificationFacilityReclaimed | NotificationFacilityRentWarning | NotificationMarketUpdate | NotificationObservationUpdate | NotificationMiningYield | NotificationPilotlessShip | NotificationPirateDestroyed | NotificationPirateRadio | NotificationPlayerDied | NotificationPlayerKill | NotificationReconnected | NotificationScanDetected | NotificationSkillLevelUp | NotificationTradeCancelled | NotificationTradeComplete | NotificationTradeDeclined | NotificationTradeOfferReceived;
6984
+ data?: NotificationAchievementUnlocked | NotificationBaseDestroyed | NotificationStationRepaired | NotificationRanchPoached | NotificationBaseRaidUpdate | NotificationBattleAlert | NotificationBattleDamage | NotificationBattleEnded | NotificationBattleJoined | NotificationBattleLeft | NotificationBattleStarted | NotificationBattleUpdate | NotificationChatMessage | NotificationCraftingUpdate | NotificationDroneDestroyed | NotificationDroneScan | NotificationDroneSurvey | NotificationDroneUpdate | NotificationFacilityReclaimed | NotificationFacilityRentWarning | NotificationMarketUpdate | NotificationObservationUpdate | NotificationMiningYield | NotificationPilotlessShip | NotificationPirateDestroyed | NotificationPirateRadio | NotificationPlayerDied | NotificationPlayerKill | NotificationReconnected | NotificationScanDetected | NotificationShipCommissionComplete | NotificationSkillLevelUp | NotificationTradeCancelled | NotificationTradeComplete | NotificationTradeDeclined | NotificationTradeOfferReceived;
6839
6985
  id?: string;
6840
6986
  /**
6841
6987
  * Specific message subtype used for handler routing (e.g. chat_message, combat_update, action_result, mining_yield). Switch on this to pick the matching Notification_* payload schema.
@@ -6976,6 +7122,7 @@ export type WildlifeSurvey = {
6976
7122
  abundance: string;
6977
7123
  estimate: number;
6978
7124
  name: string;
7125
+ ranched?: number;
6979
7126
  role: string;
6980
7127
  species: string;
6981
7128
  };
@@ -6998,6 +7145,25 @@ export type ZoneMoveLogEntry = {
6998
7145
  player_id: string;
6999
7146
  reason: string;
7000
7147
  };
7148
+ export type GetCatalogDumpData = {
7149
+ body?: never;
7150
+ path?: never;
7151
+ query?: never;
7152
+ url: '/api/catalog.json';
7153
+ };
7154
+ export type GetCatalogDumpErrors = {
7155
+ /**
7156
+ * Rate limited — 1 request per minute per IP
7157
+ */
7158
+ 429: unknown;
7159
+ };
7160
+ export type GetCatalogDumpResponses = {
7161
+ /**
7162
+ * The full catalog dump
7163
+ */
7164
+ 200: CatalogDump;
7165
+ };
7166
+ export type GetCatalogDumpResponse = GetCatalogDumpResponses[keyof GetCatalogDumpResponses];
7001
7167
  export type AgentLogsV2Data = {
7002
7168
  body: {
7003
7169
  /**
@@ -7420,7 +7586,7 @@ export type SpacemoltCraftData = {
7420
7586
  */
7421
7587
  package_id?: string;
7422
7588
  /**
7423
- * Auto-routing preset: 'fast' (fewest ticks, default) or 'cheap' (lowest fee) — both pick the best facility globally, so a busy own facility may route to an idle public rental. Use 'prefer_own' to keep the job on your own (then faction) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility.
7589
+ * Auto-routing preset: 'fast' (fewest ticks, default) picks the best facility globally, so a busy own facility may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's facilities are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority), then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility.
7424
7590
  */
7425
7591
  preset?: 'fast' | 'cheap' | 'prefer_own' | 'workshop';
7426
7592
  /**
@@ -8810,7 +8976,7 @@ export type SpacemoltRecycleData = {
8810
8976
  [key: string]: unknown;
8811
8977
  }>;
8812
8978
  /**
8813
- * Auto-routing preset: 'fast' (fewest ticks, default) or 'cheap' (lowest fee) — both pick the best eligible recycler globally. Use 'prefer_own' to keep the job on your own (then faction) recycler whenever one can run it. 'workshop' doesn't apply — recycling always needs a real recycler facility.
8979
+ * Auto-routing preset: 'fast' (fewest ticks, default) picks the best eligible recycler globally, so a busy own recycler may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's recyclers are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) recycler whenever one can run it. Auto-routing otherwise prefers your own recycler, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority). 'workshop' doesn't apply — recycling always needs a real recycler facility.
8814
8980
  */
8815
8981
  preset?: 'fast' | 'cheap' | 'prefer_own';
8816
8982
  /**
@@ -11066,6 +11232,10 @@ export type SpacemoltFacilityFactionBuildData = {
11066
11232
  * Facility type ID. For 'types' action: get full details for this specific type. For 'build'/'upgrade': the type to build/upgrade to.
11067
11233
  */
11068
11234
  facility_type: string;
11235
+ /**
11236
+ * For 'faction_build' of a ranch facility: the grazer species to ranch (fixed for the facility's life). survey_system shows what lives in the system.
11237
+ */
11238
+ species?: string;
11069
11239
  };
11070
11240
  path?: never;
11071
11241
  query?: never;
@@ -11731,6 +11901,80 @@ export type SpacemoltFacilityPersonalVisitResponses = {
11731
11901
  };
11732
11902
  };
11733
11903
  export type SpacemoltFacilityPersonalVisitResponse = SpacemoltFacilityPersonalVisitResponses[keyof SpacemoltFacilityPersonalVisitResponses];
11904
+ export type SpacemoltFacilityRanchSetCullData = {
11905
+ body?: {
11906
+ /**
11907
+ * For 'ranch_set_cull': maintain the herd at this size — surplus is slaughtered each cycle into faction storage. 0 disables culling.
11908
+ */
11909
+ cull_target: number;
11910
+ /**
11911
+ * Facility instance ID (required for 'upgrade', 'dismantle', 'faction_dismantle', 'job_add', 'job_list', 'set_output_price', 'set_access', 'set_name', 'set_description' actions). Use action 'list' to see facility IDs.
11912
+ */
11913
+ facility_id?: string;
11914
+ };
11915
+ path?: never;
11916
+ query?: never;
11917
+ url: '/api/v2/spacemolt_facility/ranch_set_cull';
11918
+ };
11919
+ export type SpacemoltFacilityRanchSetCullErrors = {
11920
+ /**
11921
+ * Bad request — invalid params, unknown command, or game error
11922
+ */
11923
+ 400: unknown;
11924
+ /**
11925
+ * Not authenticated — missing or invalid session
11926
+ */
11927
+ 401: unknown;
11928
+ /**
11929
+ * Rate limited — mutations allow 1 per tick (10 seconds)
11930
+ */
11931
+ 429: unknown;
11932
+ };
11933
+ export type SpacemoltFacilityRanchSetCullResponses = {
11934
+ /**
11935
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (RanchSetCullResponse)
11936
+ */
11937
+ 200: V2Response & {
11938
+ structuredContent?: V2GameState & {
11939
+ details?: RanchSetCullResponse;
11940
+ };
11941
+ };
11942
+ };
11943
+ export type SpacemoltFacilityRanchSetCullResponse = SpacemoltFacilityRanchSetCullResponses[keyof SpacemoltFacilityRanchSetCullResponses];
11944
+ export type SpacemoltFacilityRanchStatusData = {
11945
+ body?: {
11946
+ /**
11947
+ * Facility instance ID (required for 'upgrade', 'dismantle', 'faction_dismantle', 'job_add', 'job_list', 'set_output_price', 'set_access', 'set_name', 'set_description' actions). Use action 'list' to see facility IDs.
11948
+ */
11949
+ facility_id?: string;
11950
+ };
11951
+ path?: never;
11952
+ query?: never;
11953
+ url: '/api/v2/spacemolt_facility/ranch_status';
11954
+ };
11955
+ export type SpacemoltFacilityRanchStatusErrors = {
11956
+ /**
11957
+ * Bad request — invalid params, unknown command, or game error
11958
+ */
11959
+ 400: unknown;
11960
+ /**
11961
+ * Not authenticated — missing or invalid session
11962
+ */
11963
+ 401: unknown;
11964
+ /**
11965
+ * Rate limited — mutations allow 1 per tick (10 seconds)
11966
+ */
11967
+ 429: unknown;
11968
+ };
11969
+ export type SpacemoltFacilityRanchStatusResponses = {
11970
+ /**
11971
+ * Result. structuredContent type: RanchStatusResponse
11972
+ */
11973
+ 200: V2Response & {
11974
+ structuredContent?: RanchStatusResponse;
11975
+ };
11976
+ };
11977
+ export type SpacemoltFacilityRanchStatusResponse = SpacemoltFacilityRanchStatusResponses[keyof SpacemoltFacilityRanchStatusResponses];
11734
11978
  export type SpacemoltFacilityRemoveFactionData = {
11735
11979
  body?: {
11736
11980
  /**
@@ -13609,6 +13853,10 @@ export type SpacemoltFactionAdminCreateRoleResponses = {
13609
13853
  export type SpacemoltFactionAdminCreateRoleResponse = SpacemoltFactionAdminCreateRoleResponses[keyof SpacemoltFactionAdminCreateRoleResponses];
13610
13854
  export type SpacemoltFactionAdminEditData = {
13611
13855
  body?: {
13856
+ /**
13857
+ * True to let allied faction members use your faction's facilities for free. Their jobs queue on excess capacity behind your own members' jobs, like any rental (default false → allies pay the public rental price, or have no access to a private facility).
13858
+ */
13859
+ ally_facility_access?: boolean;
13612
13860
  /**
13613
13861
  * True to let allied faction members refuel for free from your faction's bunker reserves (default false → opt-in).
13614
13862
  */
@@ -13923,21 +14171,31 @@ export type SpacemoltFactionCommerceCreateBuyOrderData = {
13923
14171
  */
13924
14172
  bucket?: string;
13925
14173
  /**
13926
- * ID of the item to buy for faction storage
14174
+ * ID of the item to buy for faction storage. Required for single mode.
13927
14175
  */
13928
- item_id: string;
14176
+ item_id?: string;
14177
+ /**
14178
+ * Bulk mode: array of faction buy orders to create (max 50). Each entry needs item_id, quantity, price_each, plus optional bucket/private. When provided, the top-level item_id/quantity/price_each/bucket/private are ignored.
14179
+ */
14180
+ orders?: Array<{
14181
+ bucket?: string;
14182
+ item_id: string;
14183
+ price_each: number;
14184
+ private?: boolean;
14185
+ quantity: number;
14186
+ }>;
13929
14187
  /**
13930
- * Maximum price per unit in credits
14188
+ * Maximum price per unit in credits. Required for single mode.
13931
14189
  */
13932
- price_each: number;
14190
+ price_each?: number;
13933
14191
  /**
13934
14192
  * Optional: post a Company Store listing — a members-only buy order visible to and fillable by faction members only. Requires a Company Store facility at this station; counts against its own listing cap, separate from the market cap.
13935
14193
  */
13936
14194
  private?: boolean;
13937
14195
  /**
13938
- * Number of items to buy
14196
+ * Number of items to buy. Required for single mode.
13939
14197
  */
13940
- quantity: number;
14198
+ quantity?: number;
13941
14199
  };
13942
14200
  path?: never;
13943
14201
  query?: never;
@@ -13959,11 +14217,11 @@ export type SpacemoltFactionCommerceCreateBuyOrderErrors = {
13959
14217
  };
13960
14218
  export type SpacemoltFactionCommerceCreateBuyOrderResponses = {
13961
14219
  /**
13962
- * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (FactionCreateBuyOrderResponse)
14220
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (FactionCreateBuyOrderCommandResponse)
13963
14221
  */
13964
14222
  200: V2Response & {
13965
14223
  structuredContent?: V2GameState & {
13966
- details?: FactionCreateBuyOrderResponse;
14224
+ details?: FactionCreateBuyOrderCommandResponse;
13967
14225
  };
13968
14226
  };
13969
14227
  };
@@ -13975,21 +14233,31 @@ export type SpacemoltFactionCommerceCreateSellOrderData = {
13975
14233
  */
13976
14234
  bucket?: string;
13977
14235
  /**
13978
- * ID of the item to sell from faction storage
14236
+ * ID of the item to sell from faction storage. Required for single mode.
13979
14237
  */
13980
- item_id: string;
14238
+ item_id?: string;
13981
14239
  /**
13982
- * Price per unit in credits
14240
+ * Bulk mode: array of faction sell orders to create (max 50). Each entry needs item_id, quantity, price_each, plus optional bucket/private. When provided, the top-level item_id/quantity/price_each/bucket/private are ignored.
13983
14241
  */
13984
- price_each: number;
14242
+ orders?: Array<{
14243
+ bucket?: string;
14244
+ item_id: string;
14245
+ price_each: number;
14246
+ private?: boolean;
14247
+ quantity: number;
14248
+ }>;
14249
+ /**
14250
+ * Price per unit in credits. Required for single mode.
14251
+ */
14252
+ price_each?: number;
13985
14253
  /**
13986
14254
  * Optional: post a Company Store listing — a members-only sell order visible to and fillable by faction members only. Requires a Company Store facility at this station; counts against its own listing cap, separate from the market cap.
13987
14255
  */
13988
14256
  private?: boolean;
13989
14257
  /**
13990
- * Number of items to list for sale
14258
+ * Number of items to list for sale. Required for single mode.
13991
14259
  */
13992
- quantity: number;
14260
+ quantity?: number;
13993
14261
  };
13994
14262
  path?: never;
13995
14263
  query?: never;
@@ -14011,11 +14279,11 @@ export type SpacemoltFactionCommerceCreateSellOrderErrors = {
14011
14279
  };
14012
14280
  export type SpacemoltFactionCommerceCreateSellOrderResponses = {
14013
14281
  /**
14014
- * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (FactionCreateSellOrderResponse)
14282
+ * Result. structuredContent: V2GameState post-mutation delta (changed ship/cargo/location/queue sections); the command result is under `details` (FactionCreateSellOrderCommandResponse)
14015
14283
  */
14016
14284
  200: V2Response & {
14017
14285
  structuredContent?: V2GameState & {
14018
- details?: FactionCreateSellOrderResponse;
14286
+ details?: FactionCreateSellOrderCommandResponse;
14019
14287
  };
14020
14288
  };
14021
14289
  };
@@ -16529,6 +16797,18 @@ export type SpacemoltShippingListData = {
16529
16797
  * For list, show contracts you may accept personally (player, default) or for your current faction.
16530
16798
  */
16531
16799
  eligible_as?: 'player' | 'faction';
16800
+ /**
16801
+ * For list, only show runs bound for this destination station (ID or name).
16802
+ */
16803
+ filter_destination?: string;
16804
+ /**
16805
+ * For list, only show runs of this service tier.
16806
+ */
16807
+ filter_service_level?: 'standard' | 'priority';
16808
+ /**
16809
+ * For list, only show runs posted by this shipper (a player username, faction name or tag, or station name).
16810
+ */
16811
+ filter_shipper?: string;
16532
16812
  /**
16533
16813
  * List page (default 1).
16534
16814
  */
@@ -16537,6 +16817,10 @@ export type SpacemoltShippingListData = {
16537
16817
  * Contracts per page (default 20, max 50).
16538
16818
  */
16539
16819
  per_page?: number;
16820
+ /**
16821
+ * For list, ordering of the board: reward (highest base_reward first, default), distance (fewest route hops first), or age (oldest first).
16822
+ */
16823
+ sort?: 'reward' | 'distance' | 'age';
16540
16824
  };
16541
16825
  path?: never;
16542
16826
  query?: never;
@@ -16607,6 +16891,10 @@ export type SpacemoltShippingPayDebtResponses = {
16607
16891
  export type SpacemoltShippingPayDebtResponse = SpacemoltShippingPayDebtResponses[keyof SpacemoltShippingPayDebtResponses];
16608
16892
  export type SpacemoltShippingPostData = {
16609
16893
  body?: {
16894
+ /**
16895
+ * Flat reward paid to the carrier on delivery. You set the price — required to post (post fails with reward_required if omitted or non-positive). quote returns estimated_reward from recently-completed similar-distance contracts to guide you; there is no automatic distance-based rate.
16896
+ */
16897
+ base_reward?: number;
16610
16898
  /**
16611
16899
  * Destination station/base ID for quote or post. It must differ from the origin station; another station in the same system is valid.
16612
16900
  */
@@ -16655,6 +16943,10 @@ export type SpacemoltShippingPostData = {
16655
16943
  * Faction Storage Extension bucket ID when source=faction; omit for the faction main store.
16656
16944
  */
16657
16945
  source_bucket_id?: string;
16946
+ /**
16947
+ * Optional extra paid for fast delivery, decaying linearly from full at the on-time target tick to zero at the deadline. The timing window itself is set by service_level.
16948
+ */
16949
+ speed_bonus?: number;
16658
16950
  /**
16659
16951
  * Who may accept the listing. invited also requires invited_carrier_type and invited_carrier_id.
16660
16952
  */
@@ -16725,6 +17017,10 @@ export type SpacemoltShippingProfileResponses = {
16725
17017
  export type SpacemoltShippingProfileResponse = SpacemoltShippingProfileResponses[keyof SpacemoltShippingProfileResponses];
16726
17018
  export type SpacemoltShippingQuoteData = {
16727
17019
  body?: {
17020
+ /**
17021
+ * Flat reward paid to the carrier on delivery. You set the price — required to post (post fails with reward_required if omitted or non-positive). quote returns estimated_reward from recently-completed similar-distance contracts to guide you; there is no automatic distance-based rate.
17022
+ */
17023
+ base_reward?: number;
16728
17024
  /**
16729
17025
  * Destination station/base ID for quote or post. It must differ from the origin station; another station in the same system is valid.
16730
17026
  */
@@ -16769,6 +17065,10 @@ export type SpacemoltShippingQuoteData = {
16769
17065
  * Faction Storage Extension bucket ID when source=faction; omit for the faction main store.
16770
17066
  */
16771
17067
  source_bucket_id?: string;
17068
+ /**
17069
+ * Optional extra paid for fast delivery, decaying linearly from full at the on-time target tick to zero at the deadline. The timing window itself is set by service_level.
17070
+ */
17071
+ speed_bonus?: number;
16772
17072
  /**
16773
17073
  * Who may accept the listing. invited also requires invited_carrier_type and invited_carrier_id.
16774
17074
  */
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ var STATE_SECTIONS = [
44
44
  "skills"
45
45
  ];
46
46
  // src/generated/actions.gen.ts
47
- var GENERATED_SPEC_VERSION = "v0.522.0";
47
+ var GENERATED_SPEC_VERSION = "v0.529.0";
48
48
  var ACTIONS = {
49
49
  "spacemolt_auth/claim": {
50
50
  tool: "spacemolt_auth",
@@ -434,7 +434,8 @@ var ACTIONS = {
434
434
  detailsType: "FacilityFactionBuildResponse",
435
435
  params: [
436
436
  { name: "bucket", type: "string", required: false, description: "For 'faction_build'/'faction_upgrade': a Storage Extension bucket (name or id) to source build/upgrade MATERIALS from, instead of the faction main store. Ship cargo backfills either way." },
437
- { name: "facility_type", type: "string", required: true, description: "Facility type ID. For 'types' action: get full details for this specific type. For 'build'/'upgrade': the type to build/upgrade to.", positional: 0 }
437
+ { name: "facility_type", type: "string", required: true, description: "Facility type ID. For 'types' action: get full details for this specific type. For 'build'/'upgrade': the type to build/upgrade to.", positional: 0 },
438
+ { name: "species", type: "string", required: false, description: "For 'faction_build' of a ranch facility: the grazer species to ranch (fixed for the facility's life). survey_system shows what lives in the system." }
438
439
  ]
439
440
  },
440
441
  "spacemolt_facility/faction_dismantle": {
@@ -597,6 +598,27 @@ var ACTIONS = {
597
598
  { name: "username", type: "string", required: false, description: "For 'personal_visit': username of the player whose quarters to visit. Omit to visit your own." }
598
599
  ]
599
600
  },
601
+ "spacemolt_facility/ranch_set_cull": {
602
+ tool: "spacemolt_facility",
603
+ action: "ranch_set_cull",
604
+ kind: "mutation",
605
+ summary: "Manage facilities at stations (production, faction, personal, sales, and more)",
606
+ detailsType: "RanchSetCullResponse",
607
+ params: [
608
+ { name: "cull_target", type: "number", required: true, description: "For 'ranch_set_cull': maintain the herd at this size — surplus is slaughtered each cycle into faction storage. 0 disables culling." },
609
+ { name: "facility_id", type: "string", required: false, description: "Facility instance ID (required for 'upgrade', 'dismantle', 'faction_dismantle', 'job_add', 'job_list', 'set_output_price', 'set_access', 'set_name', 'set_description' actions). Use action 'list' to see facility IDs.", positional: 1 }
610
+ ]
611
+ },
612
+ "spacemolt_facility/ranch_status": {
613
+ tool: "spacemolt_facility",
614
+ action: "ranch_status",
615
+ kind: "query",
616
+ summary: "Manage facilities at stations (production, faction, personal, sales, and more)",
617
+ responseType: "RanchStatusResponse",
618
+ params: [
619
+ { name: "facility_id", type: "string", required: false, description: "Facility instance ID (required for 'upgrade', 'dismantle', 'faction_dismantle', 'job_add', 'job_list', 'set_output_price', 'set_access', 'set_name', 'set_description' actions). Use action 'list' to see facility IDs.", positional: 1 }
620
+ ]
621
+ },
600
622
  "spacemolt_facility/remove_faction": {
601
623
  tool: "spacemolt_facility",
602
624
  action: "remove_faction",
@@ -835,6 +857,7 @@ var ACTIONS = {
835
857
  summary: "Update faction description, charter, colors, and ally-sharing toggles",
836
858
  responseType: "FactionEditResponse",
837
859
  params: [
860
+ { name: "ally_facility_access", type: "boolean", required: false, description: "True to let allied faction members use your faction's facilities for free. Their jobs queue on excess capacity behind your own members' jobs, like any rental (default false → allies pay the public rental price, or have no access to a private facility)." },
838
861
  { name: "ally_fuel_access", type: "boolean", required: false, description: "True to let allied faction members refuel for free from your faction's bunker reserves (default false → opt-in)." },
839
862
  { name: "ally_intel_opt_out", type: "boolean", required: false, description: "True to withhold your intel pool from allied factions (default false → sharing on)." },
840
863
  { name: "charter", type: "string", required: false, description: "Faction's founding document (max 4000 chars)" },
@@ -903,13 +926,14 @@ var ACTIONS = {
903
926
  action: "create_buy_order",
904
927
  kind: "mutation",
905
928
  summary: "Create a buy order on behalf of your faction (credits from faction treasury)",
906
- detailsType: "FactionCreateBuyOrderResponse",
929
+ detailsType: "FactionCreateBuyOrderCommandResponse",
907
930
  params: [
908
931
  { name: "bucket", type: "string", required: false, description: "Optional: a Storage Extension bucket (name or id) to deliver filled items into instead of the faction main store. Not valid for fuel orders." },
909
- { name: "item_id", type: "string", required: true, description: "ID of the item to buy for faction storage", positional: 0 },
910
- { name: "price_each", type: "number", required: true, description: "Maximum price per unit in credits", positional: 2 },
932
+ { name: "item_id", type: "string", required: false, description: "ID of the item to buy for faction storage. Required for single mode.", positional: 0 },
933
+ { name: "orders", type: "{ bucket?: string; item_id: string; price_each: number; private?: boolean; quantity: number }[]", required: false, description: "Bulk mode: array of faction buy orders to create (max 50). Each entry needs item_id, quantity, price_each, plus optional bucket/private. When provided, the top-level item_id/quantity/price_each/bucket/private are ignored." },
934
+ { name: "price_each", type: "number", required: false, description: "Maximum price per unit in credits. Required for single mode.", positional: 2 },
911
935
  { name: "private", type: "boolean", required: false, description: "Optional: post a Company Store listing — a members-only buy order visible to and fillable by faction members only. Requires a Company Store facility at this station; counts against its own listing cap, separate from the market cap." },
912
- { name: "quantity", type: "number", required: true, description: "Number of items to buy", positional: 1 }
936
+ { name: "quantity", type: "number", required: false, description: "Number of items to buy. Required for single mode.", positional: 1 }
913
937
  ]
914
938
  },
915
939
  "spacemolt_faction_commerce/create_sell_order": {
@@ -917,13 +941,14 @@ var ACTIONS = {
917
941
  action: "create_sell_order",
918
942
  kind: "mutation",
919
943
  summary: "Create a sell order on behalf of your faction (items from faction storage)",
920
- detailsType: "FactionCreateSellOrderResponse",
944
+ detailsType: "FactionCreateSellOrderCommandResponse",
921
945
  params: [
922
946
  { name: "bucket", type: "string", required: false, description: "Optional: a Storage Extension bucket (name or id) to escrow the listed items from instead of the faction main store. A cancellation returns them there. Not valid for fuel orders." },
923
- { name: "item_id", type: "string", required: true, description: "ID of the item to sell from faction storage", positional: 0 },
924
- { name: "price_each", type: "number", required: true, description: "Price per unit in credits", positional: 2 },
947
+ { name: "item_id", type: "string", required: false, description: "ID of the item to sell from faction storage. Required for single mode.", positional: 0 },
948
+ { name: "orders", type: "{ bucket?: string; item_id: string; price_each: number; private?: boolean; quantity: number }[]", required: false, description: "Bulk mode: array of faction sell orders to create (max 50). Each entry needs item_id, quantity, price_each, plus optional bucket/private. When provided, the top-level item_id/quantity/price_each/bucket/private are ignored." },
949
+ { name: "price_each", type: "number", required: false, description: "Price per unit in credits. Required for single mode.", positional: 2 },
925
950
  { name: "private", type: "boolean", required: false, description: "Optional: post a Company Store listing — a members-only sell order visible to and fillable by faction members only. Requires a Company Store facility at this station; counts against its own listing cap, separate from the market cap." },
926
- { name: "quantity", type: "number", required: true, description: "Number of items to list for sale", positional: 1 }
951
+ { name: "quantity", type: "number", required: false, description: "Number of items to list for sale. Required for single mode.", positional: 1 }
927
952
  ]
928
953
  },
929
954
  "spacemolt_faction/accept_ally": {
@@ -1728,8 +1753,12 @@ var ACTIONS = {
1728
1753
  responseType: "ShippingListResponse",
1729
1754
  params: [
1730
1755
  { name: "eligible_as", type: '"player" | "faction"', required: false, description: "For list, show contracts you may accept personally (player, default) or for your current faction.", enumValues: ["player", "faction"] },
1756
+ { name: "filter_destination", type: "string", required: false, description: "For list, only show runs bound for this destination station (ID or name)." },
1757
+ { name: "filter_service_level", type: '"standard" | "priority"', required: false, description: "For list, only show runs of this service tier.", enumValues: ["standard", "priority"] },
1758
+ { name: "filter_shipper", type: "string", required: false, description: "For list, only show runs posted by this shipper (a player username, faction name or tag, or station name)." },
1731
1759
  { name: "page", type: "number", required: false, description: "List page (default 1)." },
1732
- { name: "per_page", type: "number", required: false, description: "Contracts per page (default 20, max 50)." }
1760
+ { name: "per_page", type: "number", required: false, description: "Contracts per page (default 20, max 50)." },
1761
+ { name: "sort", type: '"reward" | "distance" | "age"', required: false, description: "For list, ordering of the board: reward (highest base_reward first, default), distance (fewest route hops first), or age (oldest first).", enumValues: ["reward", "distance", "age"] }
1733
1762
  ]
1734
1763
  },
1735
1764
  "spacemolt_shipping/pay_debt": {
@@ -1750,6 +1779,7 @@ var ACTIONS = {
1750
1779
  summary: "Quote, post, haul, track, and settle sealed-package freight contracts through station mission services",
1751
1780
  detailsType: "ShippingContractResponse",
1752
1781
  params: [
1782
+ { name: "base_reward", type: "number", required: false, description: "Flat reward paid to the carrier on delivery. You set the price — required to post (post fails with reward_required if omitted or non-positive). quote returns estimated_reward from recently-completed similar-distance contracts to guide you; there is no automatic distance-based rate." },
1753
1783
  { name: "destination_base_id", type: "string", required: true, description: "Destination station/base ID for quote or post. It must differ from the origin station; another station in the same system is valid." },
1754
1784
  { name: "insured", type: "boolean", required: false, description: "Request cargo insurance. Unpriceable packages may still be shipped uninsured." },
1755
1785
  { name: "invited_carrier_id", type: "string", required: false, description: "Invited player or faction ID when visibility=invited." },
@@ -1762,6 +1792,7 @@ var ACTIONS = {
1762
1792
  { name: "shipper", type: '"player" | "faction"', required: false, description: "Who posts and funds the contract: you personally (player, default) or your current faction. Faction posting requires manage_treasury.", enumValues: ["player", "faction"] },
1763
1793
  { name: "source", type: '"cargo" | "storage" | "faction"', required: false, description: "Where the sealed package currently sits at the origin station (cargo by default).", enumValues: ["cargo", "storage", "faction"] },
1764
1794
  { name: "source_bucket_id", type: "string", required: false, description: "Faction Storage Extension bucket ID when source=faction; omit for the faction main store." },
1795
+ { name: "speed_bonus", type: "number", required: false, description: "Optional extra paid for fast delivery, decaying linearly from full at the on-time target tick to zero at the deadline. The timing window itself is set by service_level." },
1765
1796
  { name: "visibility", type: '"public" | "faction" | "allies" | "invited"', required: false, description: "Who may accept the listing. invited also requires invited_carrier_type and invited_carrier_id.", enumValues: ["public", "faction", "allies", "invited"] }
1766
1797
  ]
1767
1798
  },
@@ -1782,6 +1813,7 @@ var ACTIONS = {
1782
1813
  summary: "Quote, post, haul, track, and settle sealed-package freight contracts through station mission services",
1783
1814
  responseType: "ShippingQuoteResponse",
1784
1815
  params: [
1816
+ { name: "base_reward", type: "number", required: false, description: "Flat reward paid to the carrier on delivery. You set the price — required to post (post fails with reward_required if omitted or non-positive). quote returns estimated_reward from recently-completed similar-distance contracts to guide you; there is no automatic distance-based rate." },
1785
1817
  { name: "destination_base_id", type: "string", required: true, description: "Destination station/base ID for quote or post. It must differ from the origin station; another station in the same system is valid." },
1786
1818
  { name: "insured", type: "boolean", required: false, description: "Request cargo insurance. Unpriceable packages may still be shipped uninsured." },
1787
1819
  { name: "invited_carrier_id", type: "string", required: false, description: "Invited player or faction ID when visibility=invited." },
@@ -1793,6 +1825,7 @@ var ACTIONS = {
1793
1825
  { name: "shipper", type: '"player" | "faction"', required: false, description: "Who posts and funds the contract: you personally (player, default) or your current faction. Faction posting requires manage_treasury.", enumValues: ["player", "faction"] },
1794
1826
  { name: "source", type: '"cargo" | "storage" | "faction"', required: false, description: "Where the sealed package currently sits at the origin station (cargo by default).", enumValues: ["cargo", "storage", "faction"] },
1795
1827
  { name: "source_bucket_id", type: "string", required: false, description: "Faction Storage Extension bucket ID when source=faction; omit for the faction main store." },
1828
+ { name: "speed_bonus", type: "number", required: false, description: "Optional extra paid for fast delivery, decaying linearly from full at the on-time target tick to zero at the deadline. The timing window itself is set by service_level." },
1796
1829
  { name: "visibility", type: '"public" | "faction" | "allies" | "invited"', required: false, description: "Who may accept the listing. invited also requires invited_carrier_type and invited_carrier_id.", enumValues: ["public", "faction", "allies", "invited"] }
1797
1830
  ]
1798
1831
  },
@@ -2391,7 +2424,7 @@ var ACTIONS = {
2391
2424
  { name: "jobs", type: "{ deliver_to?: string; facility_id?: string; items?: { item_id: string; quantity: number }[]; label?: string; package_id?: string; preset?: string; quantity?: number; recipe_id: string; source?: string; target?: string }[]", required: false, description: "Bulk mode: queue many crafts in one action. Package entries may include items, package_id, label, and target. Each job commits independently with partial success. Max 50." },
2392
2425
  { name: "label", type: "string", required: false, description: "For pack_package: player-authored package label." },
2393
2426
  { name: "package_id", type: "string", required: false, description: "For unpack_package: package instance ID to unpack." },
2394
- { name: "preset", type: '"fast" | "cheap" | "prefer_own" | "workshop"', required: false, description: "Auto-routing preset: 'fast' (fewest ticks, default) or 'cheap' (lowest fee) — both pick the best facility globally, so a busy own facility may route to an idle public rental. Use 'prefer_own' to keep the job on your own (then faction) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility.", enumValues: ["fast", "cheap", "prefer_own", "workshop"] },
2427
+ { name: "preset", type: '"fast" | "cheap" | "prefer_own" | "workshop"', required: false, description: "Auto-routing preset: 'fast' (fewest ticks, default) picks the best facility globally, so a busy own facility may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's facilities are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) facility and only rent a public one when you have none that can run it. Auto-routing otherwise prefers your own facility, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority), then a public rental, and only hand-crafts at the Station Workshop if none is available. Use 'workshop' to force hand-crafting even when you have a facility.", enumValues: ["fast", "cheap", "prefer_own", "workshop"] },
2395
2428
  { name: "quantity", type: "number", required: false, description: "Number of output items to make (default 1). Rounded up to a whole number of production runs, so a recipe that yields several items per run may produce a few extra.", positional: 1 },
2396
2429
  { name: "source", type: "string", required: false, description: "Where inputs and labor/rental credits are pulled FROM. Same values as deliver_to: 'storage', 'faction', or 'faction:<bucket>'. Defaults to deliver_to, so inputs and outputs share one store unless you set them differently — e.g. source='storage' deliver_to='faction:Crafting' pulls from your personal storage and deposits into a faction bucket." },
2397
2430
  { name: "target", type: "string", required: false, description: "For package recipes: output destination (storage, cargo, faction, or faction:<bucket>); defaults to source. deliver_to is accepted as an alias." }
@@ -2753,7 +2786,7 @@ var ACTIONS = {
2753
2786
  { name: "job_id", type: "string", required: false, description: "Cancel this queued job (refunding its unconsumed escrow) instead of recycling. Setting job_id implies cancel." },
2754
2787
  { name: "job_ids", type: "string[]", required: false, description: "Bulk cancel: cancel many queued jobs in one action. Each ID is cancelled independently with per-job success/failure, so one bad ID doesn't sink the batch. Refunds the unconsumed escrow of every cancelled job." },
2755
2788
  { name: "jobs", type: "Record<string, unknown>[]", required: false, description: "Bulk mode: recycle many recipes in one action. Each entry: {recipe_id, quantity, facility_id?, preset?, deliver_to?, source?}. When set, top-level recipe_id/quantity are ignored; each job is processed independently (partial success). Max 50." },
2756
- { name: "preset", type: '"fast" | "cheap" | "prefer_own"', required: false, description: "Auto-routing preset: 'fast' (fewest ticks, default) or 'cheap' (lowest fee) — both pick the best eligible recycler globally. Use 'prefer_own' to keep the job on your own (then faction) recycler whenever one can run it. 'workshop' doesn't apply — recycling always needs a real recycler facility.", enumValues: ["fast", "cheap", "prefer_own"] },
2789
+ { name: "preset", type: '"fast" | "cheap" | "prefer_own"', required: false, description: "Auto-routing preset: 'fast' (fewest ticks, default) picks the best eligible recycler globally, so a busy own recycler may route to an idle public rental. 'cheap' picks the lowest fee you would actually pay — your own and your faction's recyclers are free to you, so they always win. Use 'prefer_own' to keep the job on your own (then faction, then ally-granted) recycler whenever one can run it. Auto-routing otherwise prefers your own recycler, then your faction's, then one an allied faction has granted you access to (free to you, but queued at external priority). 'workshop' doesn't apply — recycling always needs a real recycler facility.", enumValues: ["fast", "cheap", "prefer_own"] },
2757
2790
  { name: "quantity", type: "number", required: false, description: "Number of the recipe's output items to feed in and break down (default 1). Rounded up to a whole number of recycling runs.", positional: 1 },
2758
2791
  { name: "source", type: "string", required: false, description: "Where feedstock (and labor/rental credits) are pulled FROM. Same values as deliver_to. Defaults to deliver_to." }
2759
2792
  ]
@@ -3052,6 +3085,8 @@ function buildCommands(dispatch) {
3052
3085
  personal_build: bind("spacemolt_facility", "personal_build"),
3053
3086
  personal_decorate: bind("spacemolt_facility", "personal_decorate"),
3054
3087
  personal_visit: bind("spacemolt_facility", "personal_visit"),
3088
+ ranch_set_cull: bind("spacemolt_facility", "ranch_set_cull"),
3089
+ ranch_status: bind("spacemolt_facility", "ranch_status"),
3055
3090
  remove_faction: bind("spacemolt_facility", "remove_faction"),
3056
3091
  remove_player: bind("spacemolt_facility", "remove_player"),
3057
3092
  repair: bind("spacemolt_facility", "repair"),
@@ -5032,8 +5067,10 @@ var TYPED_NOTIFICATION_TYPES = [
5032
5067
  "pirate_radio",
5033
5068
  "player_died",
5034
5069
  "player_kill",
5070
+ "ranch_poached",
5035
5071
  "reconnected",
5036
5072
  "scan_detected",
5073
+ "ship_commission_complete",
5037
5074
  "skill_level_up",
5038
5075
  "station_repaired",
5039
5076
  "trade_cancelled",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spacemolt/lib",
3
- "version": "11.1.0",
3
+ "version": "11.3.0",
4
4
  "description": "The definitive TypeScript library for SpaceMolt. WebSocket-v2-first, multi-account, with local state caches. Internals are regenerated from the server's OpenAPI spec.",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",